@import "tangerine.css";
@import "josefin-sans.css";


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

:root {
  --darkterracotta: #CC4E5C;
  --paleterracotta: #F2B6A6;
  --darkterracotta-transparent: #CC4E5CCC;
  --paleterracotta-transparent: #F2B6A6CC;
}

html, body {
  height: 100%;
  width: 100svw;
  margin: 0px;
  padding: 0px;
  font-size: clamp(12px, 3vh, 24px);
  overflow-x: hidden;
  font-family: 'josefin_sanslight';
}

/* ground zero */

.groundzero {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto 1fr auto;
  grid-template-areas:
    "nav"
    "main"
    "footer";
}

nav {
  grid-area: nav;
}

main {
  grid-area: main;
}

footer {
  grid-area: footer;
}

/* navigation */

.menubar {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  position: fixed;
  width: 100svw;
  height: auto;
  justify-self: center;
  z-index: 1;
  background-color: transparent;
  z-index: 99;
}

.menubar a {
  font-size: 100%;
  float: right;
}

.menubar > .menu-item {
  display: inline-block;
  font-weight: normal;
  font-size: clamp(16px, 4vmin, 24px);
  margin: 2vh 2vw;
  padding: 8px 12px;
  color: white;
  background-color: var(--darkterracotta);
  border-radius: 20px;
  cursor: pointer;
  text-decoration: none;
}

/* main */

.luebeck {
  width: 100svw;
  margin: auto;
  position: relative;
  display: grid;
  hyphens: auto;
}

/* generic styling */

.port {
  display: none;
}

* h1 {
  font-size: 350%;
  font-family: 'tangerineregular', serif;
  font-weight: normal;
  color: var(--darkterracotta);
  text-align: center;
}

* h2 {
  font-size: 135%;
}

* h3 {
  font-size: 115%;
}

* p, ul {
  text-align: left;
  font-size: 100%;
  hyphens: none;
}

h2 ~ p, p ~ p {
  margin-bottom: 0.6em;
}

* ul {
  padding-left: 1.5rem;
  list-style-position: outside;
}

* ul ul {
  padding-left: 2.5rem;
  list-style-position: outside;
}

.la {
  list-style-type: lower-alpha;
}

.link-list {
  line-height: 2.5;
}

a:link {
  color: inherit;
}

a:link {
  color: white;
}

a:visited {
  color: white;
}

a:hover {
  color: white;
}

a:active {
  color: white;
}

.link-list {
  line-height: 2.5;
}

.text ul {
  padding-left: 2vw;
  color: black;
}

  table {
   border-collapse: collapse;"
}

  tr:nth-child(1), tr:nth-child(3), tr:nth-child(7), tr:nth-child(11) {
  border-bottom: solid 2px black;
}

a:link {
  color:inherit;
}

.tcard {
  text-align: left;
  color: black;
  background-color: var(--paleterracotta);
  border-radius: 3vh;
  padding: 0vh 1vw;
}

.tcard p {
  margin-bottom: 0.6em;
  text-align: left;
}

.icard {
  padding: 1vh 1vw;
  margin: 3vh 3vw;
}

.icard img {
  border-radius: 3vh;
}

/* hl1 home */

.hl1 {
  grid-template-columns: 10svw 20svw 20svw 20svw 20svw 10svw;
  grid-template-rows: auto(repeat);
  justify-items: center;
  align-items: center;
  grid-template-areas:
  "img1     img1     img1     txt1     txt1     txt1"
  ".        .        txt2     txt2     .        ."
  ".        txt3     txt3     img3     img3     ."
  ".        .        txt4     txt4     .        ."
  ".        img2     img2     img2     img2     .";
  margin: 2vh 1vw;
  top: 7svh;
}

.hl1 > .image1 {
  grid-area: img1;
  justify-self: right;
  max-height: 100%;
  position: relative;
}

.hl1 > .image1 img {
  display: block;
  max-width: 100%;
  height: 90svh;
  padding-bottom: 2svh;
  position: relative;
}  

.hl1 > .slogan {
  grid-area: txt1;
  position: relative;
  justify-self: left;
}

.hl1 > .image2 {
  grid-area: img2;
  position: relative;
}

.hl1 > .image2 img {
  display: block;
  max-height: 70svh;
}

.hl1 > .text2 {
  grid-area: txt2;
  position: relative;
  margin-bottom: 2vh;
  margin-left: 2vw;
  margin-right: 2vw;
}

.hl1 > .text3 {
  grid-area: txt3;
  width: 90%;
  position: relative;
}

.hl1 > .text4 {
  grid-area: txt4;
  position: relative;
  margin: 2vh 1vw;
}

.hl1 > .image3 {
  grid-area: img3;
  position: relative;
}

.hl1 > .image3 img {
  display: block;
  max-height: 90svh;
  align-self: start;
  position: relative;
}

.slo1 {
  display: inline-block;
  animation-name: slide-in1;
  animation-duration: 7s;
}

.slo2 {
  display: inline-block;
  animation-name: slide-in2;
  animation-duration: 7s;
}

@keyframes slide-in1 {
  0% {
    translate: 0 45vw;
    scale: 150% 1;
  }

  15%, 75% {
    translate: 0 0;
    scale: 100% 1;
  }
}

@keyframes slide-in2 {
  0%, 25% {
    translate: 0 45vw;
    scale: 150% 1;
  }

  25%, 85% {
    translate: 0 0;
    scale: 100% 1;
  }
}

@keyframes slide-in3 {
  0%, 40% {
    translate: 0 45vw;
    scale: 150% 1;
  }

  40%, 100% {
    translate: 0 0;
    scale: 100% 1;
  }
}

/* hl2 philosophie */

.hl2 {
  grid-template-columns: 2.5svw 20svw 20svw 15svw 20svw 20svw 2.5svw;
  grid-template-rows: auto(repeat);
  justify-items: center;
  align-items: center;
  grid-template-areas:
  ".      txt1      txt1          img1         img1         img1   ."
  ".      txt2      txt2          img1         img1         img1   ."
  ".      img2      img2          .            txt3         txt3   ."
  ".      img2      img2          txt4         txt4         txt4   ."
  ".      img2      img2          txt4         txt4         txt4   ."
  ".      img4      img4          img4         img3         img3   ."
  ".      txt5      txt5          .            img3         img3   ."
  ".      .         .             .            txt6         txt6   .";

  top: 7svh;
}

.hl2 > .slogan {
  grid-area: txt1;
  position: relative;
  margin: 15vh 2vw 0vh;
}

.hl2 > .text2 {
  grid-area: txt2;
  position: relative;
  margin: 2vh 2vw;
}

.hl2 > .text3 {
  grid-area: txt3;
  align-self: top;
  position: relative;
  margin: 2vh 3vw;
}

.hl2 > .text4 {
  grid-area: txt4;
  align-self: bottom;
  position: relative;
  margin: 2vh 3vw;
}

.hl2 > .text5 {
  grid-area: txt5;
  width: 85%;
  align-self: top;
  position: relative;
}

.hl2 > .text6 {
  grid-area: txt6;
  width: 85%;
  align-self: top;
  position: relative;
}

.hl2 > .image1 {
  grid-area: img1;
  max-height: 100%;
  position: relative;
}

.hl2 > .image1 img {
  display: block;
  max-width: 100%;
  height: 90svh;
  padding-bottom: 2svh;
  position: relative;
}


.hl2 > .image2 {
  grid-area: img2;
  position: relative;
}

.hl2 > .image2 img {
  display: block;
  max-height: 90vh;
  margin: 2vh 2vw 2vh;
  justify-self: right;
  position: relative;
}

.hl2 > .image3 {
  grid-area: img3;
  align-self: bottom;
  position: relative;
}

.hl2 > .image3 img {
  display: block;
  max-height: 90svh;
  max-width: 100%;
  margin: 2vh 2vw 2vh;
  justify-self: right;
  position: relative;
}

.hl2 > .image4 {
  grid-area: img4;
  align-self: ;
  position: relative;
}

.hl2 > .image4 img {
  display: block;
  max-height: 90svh;
  max-width: 100%;
  margin: 2vh 2vw 2vh;
  align-self: ;
  position: relative;
}

.slo4 {
  display: inline-block;
  animation-name: slide-in4;
  animation-duration: 7s;
}

.slo5 {
  display: inline-block;
  animation-name: slide-in5;
  animation-duration: 7s;
}

@keyframes slide-in4 {
  0% {
    translate: 0 -45vw;
    scale: 150% 1;
  }

  15%, 75% {
    translate: 0 0;
    scale: 100% 1;
  }
}

@keyframes slide-in5 {
  0% {
    translate: 0 45vw;
    scale: 150% 1;
  }

  45%, 100% {
    translate: 0 0;
    scale: 100% 1;
  }
}

/* hl3 location */

.hl3 {
  grid-template-columns: 2.5svw 20svw 25svw 5svw 25svw 20svw 2.5svw;
  grid-template-rows: auto(repeat);
  justify-items: center;
  align-items: center;
  grid-template-areas:
  ".      txt1       txt1       txt1          txt1          txt1   ."
  ".      img1       img1       img1          img1          img1   ."
  ".      .          txt2       txt2          txt2          .      ."
  ".      img2       img2       img2          txt3          txt3   ."
  ".      img2       img2       img2          img3          img3   ."
  ".      txt5       txt5       .             img3          img3   ."
  ".      img5       img5       txt4          txt4          .      ."
  ".      img5       img5       txt4          txt4          .      ."
  ".      .          img4       img4          img4          .      .";

  top: 10svh;
}

.slogan {
  grid-area: txt1;
  position: relative;
  margin: 0vh 2vw 0vh;
}

.hl3 > .text2 {
  grid-area: txt2;
  position: relative;
  margin: 2vh 2vw;
}

.hl3 > .text3 {
  grid-area: txt3;
  position: relative;
  margin: 10vh 5vw 2vh;
}

.hl3 > .text4 {
  grid-area: txt4;
  position: relative;
  align-self: bottom;
  justify-self: left;
  margin: 2vh 2vw;
}

.hl3 > .text5 {
  grid-area: txt5;
  position: relative;
  margin: 2vh 2vw;
}

.hl3 > .image1 {
  grid-area: img1;
  position: relative;
}

.hl3 > .image1 img {
  display: block;
  max-height: 90svh;
  width: 100%;
  margin: 2vh 2vw 2vh;
  position: relative;
}

.hl3 > .image2 {
  grid-area: img2;
  justify-self: start;
  position: relative;
  z-index: 2;
}

.hl3 > .image2 img {
  display: block;
  max-height: 90svh;
  max-width: 100%;
  margin: 2vh 0vw 2vh;
  position: relative;
}

.hl3 > .image3 {
  grid-area: img3;
  position: relative;
}

.hl3 > .image3 img {
  display: block;
  max-height: 80svh;
  max-width: 100%;
  margin: 0vh 0vw 2vw 0vh;
  align-self: start;
  position: relative;
}

.hl3 > .image4 {
  grid-area: img4;
  position: relative;
  z-index: -1;
}

.hl3 > .image4 img {
  display: block;
  max-height: 90svh;
  max-width: 100%;
  position: relative;
}

.hl3 > .image5 {
  grid-area: img5;
  position: relative;
}

.hl3 > .image5 img {
  display: block;
  max-height: 80svh;
  max-width: 100%;
  margin: 2vh 2vw 2vh;
  position: relative;
}

.slo6 {
  display: inline-block;
  animation-name: slide-in6;
  animation-duration: 7s;
}

.slo7 {
  display: inline-block;
  animation-name: slide-in7;
  animation-duration: 7s;
}

.slo8 {
  display: inline-block;
  animation-name: slide-in8;
  animation-duration: 7s;
}

@keyframes slide-in6 {
  0% {
    translate: 100vw 0;
    scale: 150% 1;
  }

  15%, 75% {
    translate: 0 0;
    scale: 100% 1;
  }
}

@keyframes slide-in7 {
  0%, 25% {
    translate: 100vw 0;
    scale: 150% 1;
  }

  25%, 85% {
    translate: 0 0;
    scale: 100% 1;
  }
}

@keyframes slide-in8 {
  0%, 40% {
    translate: 100vw 0;
    scale: 150% 1;
  }

  40%, 100% {
    translate: 0 0;
    scale: 100% 1;
  }
}

/* hl4 dienstleister */

.hl4 {
  grid-template-columns: 5svw 30svw 30svw 30svw 5svw;
  grid-template-rows: auto(repeat);
  justify-items: center;
  align-items: center;
  grid-template-areas:
  ".       txts         txts         txts        ."
  ".       txti         txti         txti        ."
  ".       dl1          dl2          dl3         ."
  ".       txt1         txt2         txt3        ."
  ".       dl4          dl5          dl6         ."
  ".       .            txt5         txt6        ."
  ".       dl7          dl8          dl9         ."
  ".       txt7         txt8         txt9        ."
  ".       dl10         dl10         dl10        ."
  ".       txt10        txt10        txt10       .";
  top: 10svh;
}

.itcard  {
  width: 25vw;
  color: black;
  background-color: var(--paleterracotta);
  border-radius: 3vh 3vh 3vh 3vh;
  margin-top: 3vh;
}

.itcard img {
  border-radius: 3vh 3vh 0 0;
}

.itcard p {
  text-align: left;
  padding: 1vh 1vw;
  margin-top: 0;
  margin-bottom: 0.6em;
}

.itcard h2 {
  text-align: center;
}

.hl4 > .slogan {
  grid-area: txts;
  position: relative;
  margin: 0vh 0vw 0vh;
}

.hl4 > .intro-text {
  grid-area: txti;
  position: relative;
  max-width: 40em;
}

.hl4 > .dekor {
  grid-area: dl4;
  position: relative;
}

.hl4 > .foto {
  grid-area: dl8;
  position: relative;
}

.hl4 > .einladungen {
  grid-area: dl1;
  position: relative;
}

.hl4 > .catering {
  grid-area: dl7;
  position: relative;
}

.hl4 > .unterhaltung {
  grid-area: dl9;
  position: relative;
}

.hl4 > .floristik {
  grid-area: dl2;
  position: relative;
}

.hl4 > .transport {
  grid-area: dl5;
  position: relative;
}

.hl4 > .styling {
  grid-area: dl3;
  position: relative;
}

.hl4 > .traurede {
  grid-area: dl6;
  position: relative;
}

.hl4 > .datum {
  grid-area: dl10;
  position: relative;
  margin-top: 5vh;
}

.slo9 {
  display: inline-block;
  animation-name: slide-in9;
  animation-duration: 6s;
}

.slo10 {
  display: inline-block;
  animation-name: slide-in10;
  animation-duration: 6s;
}

@keyframes slide-in9 {
  0% {
    translate: 100vw 0;
    scale: 150% 1;
  }

  15%, 75% {
    translate: 0 0;
    scale: 100% 1;
  }
}

@keyframes slide-in10 {
  0% {
    translate: -100vw 0;
    scale: 150% 1;
  }

  45%, 100% {
    translate: 0 0;
    scale: 100% 1;
  }
}

/* hl5 kontakt */

.hl5 {
  grid-template-columns: 2.5svw 1fr 1fr 2.5svw;
  grid-template-rows: auto(repeat);
  justify-items: center;
  align-items: center;
  grid-template-areas:
  ".      txt1          txt1              ."
  ".      img2          img2              ."
  ".      txt2          txt2              ."
  ".      img1          img1              ."
  "foot   foot          foot              foot";

}

.bdh {
  display: block;
  text-align: center;
}

.hl5 > .image1 {
  grid-area: img1;
  display: block;
  position: relative;
}

.hl5 > .image1 img {
  max-width: 512px;
  height: auto;
  padding-bottom: 2svh;
  position: relative;
}

.hl5 > .image2 {
  grid-area: img2;
  display: block;
  position: relative;
  max-width: 65vw;
}

.hl5 > .image2 img {
  height: auto;
  padding-bottom: 2svh;
  position: relative;
}

.hl5 > .text1 {
  grid-area: txt1;
  position: relative;
}

.hl5 > .text1 h1 {
  text-align: center;
  font-size: 800%;
}

.hl5 > .text2 {
  grid-area: txt2;
  position: relative;
  padding-bottom: 2vh;
  margin-bottom: 2vh;
  margin-left: 2vw;
  margin-right: 2vw;
  max-width: 40em;
}

.slo11 {
  display: block;
  animation-name: slide-in11;
  animation-duration: 7s;
}

@keyframes slide-in11 {
  0% {
    translate: 100vw 0;
    scale: 150% 1;
	letter-spacing: 5vw;
  }

  15%, 75% {
    translate: 0 0;
    scale: 100% 1;
	letter-spacing: normal;
  }
}

/* hl6 rechtliches */

.hl6 {
  grid-template-columns: 2.5svw 1fr 1fr 2.5svw;
  grid-template-rows: auto(repeat);
  justify-items: center;
  align-items: center;
  grid-template-areas:
  ".      txt1          txt1              ."
  ".      txt2          txt2              ."
  ".      txt3          txt3              .";
  top: 7vh;
}

.hl6 > .text1 {
  grid-area: txt1;
  position: relative;
}

.hl6 > .text1 h1 {
  text-align: center;
  font-size: 800%;
}

.hl6 > .text2 {
  grid-area: txt2;
  position: relative;
}

.hl6 > .text3 {
  grid-area: txt3;
  position: relative;
  padding-bottom: 2vh;
  margin-bottom: 2vh;
  margin-left: auto;
  margin-right: auto;
  max-width: 45em;
}

.hl6 > .text3 h2, p {
  text-align: left;
}

/* footer hlf */

.hlf {
  grid-template-columns: 50svw 50svw;
  grid-template-rows: auto(repeat);
  grid-template-areas:
  "footer-txt     footer-links";
}

.myfoot {
  display: grid;
  left: 0;
  bottom: 0;
  width: 100vw;
  color: white;
  background-color: var(--darkterracotta);
  text-align: center;
  padding-top: 3vh;
  padding-bottom: 3vh;
  margin-top: 15vh;
}

.footer-txt {
  grid-area: footer-txt;
  justify-self: end;
  align-self: center;
  padding-top: 1vh;
}

.footer-links, .footer-txt p {
  color: white;
  font-weight: normal;
  text-align: center;
}

.footer-links {
  grid-area: footer-links;
  justify-self: start;
  align-self: center;
  text-align: center;
  padding-left: 5vw;
}

.footer-links a {
  padding-left: 1vw;
  padding-right: 1vw;
  text-decoration: none;
}

.footer-txt, .footer-links a {
  font-size: 80%;
}

.port {
  display: none;
}
