/* Stylesheet für Selfhtml Design 08 
  responsives Layout mit Grid Layout ab Z. 249   */

/* ====================================================   GLOBAL DEFINITION   ==================================================== */

/* alternatives Boxmodell */
html { 
  box-sizing: border-box; 
  padding: 0;
  margin: 0;	
} 

*, ::before, ::after { 
	box-sizing: inherit; 
}

body {
    margin: 0 auto; 
    font: normal 1em Arial, sans-serif;  /* Mindestschriftgröße wird dem Browser, bzw. dem Nutzer überlassen! */
	color: white;
	background:
		radial-gradient(#fbb988 15%, transparent 16%) 0 0,
		radial-gradient(#fbb988 15%, transparent 16%) 8px 8px,
		radial-gradient(rgba(255,255,255,.1) 15%, transparent 20%) 0 1px,
		radial-gradient(rgba(255,255,255,.1) 15%, transparent 20%) 8px 9px;
	background-color:#facc87;
	background-size:16px 16px;
}

/* ====================================================   Inhalt   ==================================================== */


a{
  text-decoration: none;
  color: #224f7d;
}

a:hover,
a:focus {
  /* background:#e6f2f7; */
  background:#facc87;
}

a[href^="http"]::before {
  content: url('../img/icons/external-link.svg');
  margin-right: 4px;
}

strong{
   color: #224f7d;
}


hr.divider {
  width: 80%;
  margin-block: 1.2rem;
  margin-inline-start: 0;
  margin-inline-end: auto;
  border: none;
  border-top: 1px dashed #F56545;
}

header {
  max-width: 80em;
  color:white;
  background: #eaf4f5;
  margin: 0 auto 1.6em;
  position: relative;
}

header::after {
  position: absolute;
  content: "";
  /* background: linear-gradient(to top, #f0ccdb 25%, #f5f09d 25%, #74b8be 50%, #eaf4f5 75%, #eaf4f5 75%); */
  background: linear-gradient(to top, #facc87 25%, #fbb988 25%, #74b8be 50%, #eaf4f5 75%, #eaf4f5 75%);
  height: 1.6em;
  left: 0;
  right: 0;
  bottom: -1.6em;
}

header h1 {
  color: #224f7d;
  padding: 0;
}

header strong {
  color: #1CA648;
  padding: 0;
}

header #logo {
  display: inline-block;
  background: url('../img/logo.png') no-repeat left center, #eaf4f5;
  background-size: 125px;
  color: #74b8be;
  margin: 0 0 0 2em;
  padding-left: 10em;
  text-decoration: none;
}

main {
  display: block;   /*für IE9-11 */	
  max-width: 70em;
  position:relative;
  padding:0 20px 0;
  margin: 0 auto;
  /* background: white; */
  background: #fefefe;
  /* background: #facc87; */
  color: #333;
}

.no-wrap-container {
  /* Verhindert Zeilenumbrüche innerhalb dieses Containers */
  white-space: nowrap;
  /* Zentriert den Inhalt vertikal */
  display: flex; 
  align-items: center;
}

.gallery{
  color: #fefefe;
}

/* slide in captions found @http://css-tricks.com/slide-in-image-captions/ */
figure { 
  padding:0; 
  margin:0 -20px;;
  display: block; 
  position: relative; 
  overflow: hidden; 
}

figure:before { 
  content: ""; 
  position: absolute; 
  background: rgba(255,255,255,0.75); 
/*  color: black;
  width: 24px;
  height: 24px;
  bottom:30px; left:30px;
  border-radius: 12px;
  text-align: center;
  font-size: 14px;
  line-height: 24px;
  transition: all 0.6s ease;
  opacity: 0.75;  */
}

figure:hover:before {
  opacity: 0;
}

.gallery img {
	width: 100%;
}

figcaption { 
  position: absolute; 
  background: rgba( 116, 94, 90,0.75); 
  color: #fefefe; 
  padding: 10px;
  width:100%; 
  opacity: 0;
  bottom: -20%; 
  left: 0;
  transition: all 0.6s ease;
}

figcaption h2 {
  margin: 0 12px;
}

figcaption p {
  margin: 12px 12px 0;
  padding: 0;
}
figure:hover figcaption {
  opacity: 1;
  bottom: 0;
}

/* article einspaltiger text der Unterseiten */

article{
  background: #fefefe; 
  padding: 10px;
  width: 100%;
}

section.article h1{
  padding-left:4px;
  color: #224f7d;
}

section.article h2{
  padding-left:4px;
  color: #224f7d;
/*  display: inline; */
}

section.article h3{
  padding-left:5px;
  color: #46a58c;
  padding-left:3px;
  margin: 0;
}

section.article a{
  text-decoration: none;
}

section p {
  text-align: justify;
  hyphens: auto;
  /* background-color: #f49e8b; */ 
}

section h2{
  padding-left:4px;
  color: #224f7d;
}

section h3{
  color: #46a58c;
  padding-left:3px;
  display: inline;
  margin: 0;
}

section h4{
  padding-left:5px;
  color: #AFE3B4;
}

section a{
  text-decoration: none;
}


.haltestelle img{
  width: 100%;
  filter: invert(1);
  transition: filter 0.3s ease;
  border-width: 2px;
  border-style: solid;
  border-color: #093A6B;
}

.haltestelle img:hover {
    filter: invert(0%); 
}

/* Services Spalte mitte */

.liebeundtanze {
  padding-left:55px;
  color: #224f7d;
  background: url('../img/rose_mit_menschen.png') no-repeat left center;
  background-size: 40px;
  }


section pre{
  font-size: 1.2em;
}

/**
section p{
  padding-bottom: 0.7em; 
  border-bottom: 1px dashed #F56545;
}
**/

section li{
  list-style-type: none;
}


  /* Navigation */

nav {
	margin: 0;	
	width: 100%;
	background: #eaf4f5;
  text-align: center;
}

nav ul {
	margin: 0;
	padding: 0;
 	font: 1.3em  Arial, Helvetica, sans-serif;
 	list-style-type: none;
}

nav li {
	display: inline;
	margin: 0;
}

nav a {
	position: relative;
	display: inline-block;
	text-decoration: none;
  color: #224f7d;
  /* color: #89820E; */
  /* color: #EEE554; */
	padding: .5em;
	padding-right: 2em;
	text-align: right;
}

[aria-current=page] {
	font-weight: bold;
	color: #1CA648;
}

nav a::after{
	content:" ▶";
	color: #1CA648;
	display: inline-block;
	width: 2em;
}

nav a:hover::after, nav a:focus::after{
	content:" ▼";
}  

nav a:hover, nav a:focus {
	background: transparent;
	color: #1CA648;
}


footer a:hover {
  color: #1CA648;
}

footer {
  max-width: 70em;
  padding: 1em;
  margin: 1em auto;
/*  color: #ccc; */
  color: #224f7d;
}

/* 
footer:has(a:hover) a {
  color: red;
}
*/

/*
footer a {
  transition: color 0.2s ease;
}

footer a:hover {
  color:  #093A6B;;
}
*/


article a:hover {
  color: #46a58c;
  background: #eaf4f5;
}


dl.grid { 
  display: grid; 
  grid-template-columns: 1fr 100%; 
}
dd { 
  margin: 0; 
  padding-left: 1em; 
}
dl.grid dd {
  margin-bottom: 1em;
}


a[href^="tel"] { white-space: nowrap; }

.copy {
	text-align: right;
}


/* ====================================================   unterseiten   ==================================================== */


/* Unterseite 1  Start*/

.galerie {
    display: grid;
    /* Eine Spalte definieren, die den gesamten verfügbaren Platz einnimmt */
    grid-template-columns: 1fr;
    gap: 10px; /* Abstand zwischen den Elementen */
}

.bild img {
  /* Weist alle Bilder derselben ersten Zeile und Spalte zu, wodurch sie überlappen */
  grid-area: 1 / 1;
  width: 50%; /* Die Breite des Bildes selbst */
  height: auto;
  
  /* Setzt einen Standardversatz, damit sie nicht exakt übereinander liegen */
  margin-top: 10px;
  margin-bottom: 10px;
  
  border-width: 2px;
  border-style: solid;
  border-color: #224f7d;
}

.bild {
  padding: 10px;
/*  border-width: 1px;
  border-style: dotted; */
  border-color: #224f7d;
}

/* Ungerade Elemente in der ersten Spalte starten */
.bild:nth-child(odd) {
    grid-column: 1 / 2;
    justify-self: start; /* Links ausrichten */
/*    background-color:  #f1f8f9; */
  background-color:  #facc87; 
}

/* Gerade Elemente in der ersten Spalte starten, aber rechts ausrichten */
.bild:nth-child(even) {
    grid-column: 1 / 2;
    justify-self: end; /* Rechts ausrichten */
    background-color: #f1f9f5;
/*    background-color: #f1f9f5; */
    text-align: right; /* Optional: Text rechtsbündig ausrichten */
}

/* Unterseite 1  Ende*/

.contact {
  background-color: #f1e9e5;
}



/* ====================================================   LAYOUT   ==================================================== */

/* Mobile first ! alle Blöcke haben 100%, Navigation unten*/

body {
  padding: 0 1em;
}

@media screen and (min-width: 35em) {    

  main, footer {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 1em;
  }
  article {
    /* grid-column: 1 / 2; */
    grid-column: span 3;
  }

  .gallery {
    grid-column: 1 / 3;
  }
  aside  {
    grid-column: 2 / 3;
  }
}


@media screen and (min-width: 50em) {   
  main, footer {
    grid-template-columns: repeat(3, 1fr);		/* 3Spalten, sobald Platz da ist */
  }
  
  article {
    /* grid-column: 1 / 2; */
    grid-column: span 3;
    }
  
  .gallery {
    grid-column: 1 / 4;
  }
  
  aside  {
    grid-column: 3 / 4;	
  }
  
  figure {
      margin: 0;
  }

  nav ul {
    padding: 0 0 0 2%;
    font: 1.2em Arial,Helvetica,sans-serif;
  }
}
