html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, navigation, hgroup, menu, nav, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  font-weight: normal;
  vertical-align: baseline;
  background: transparent; }

body {
  line-height: 1; }

article, aside, details, figcaption, figure,
footer, navigation, hgroup, menu, nav, section {
  display: block; }

nav ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none; }

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent; }

li {
  list-style-type: none; }

/* change colours to suit your needs */
ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none; }

/* change colours to suit your needs */
mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: normal; }

del {
  text-decoration: line-through; }

abbr[title], dfn[title] {
  border-bottom: 1px dotted;
  cursor: help; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

/* change border colour to suit your needs */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0; }

input, select {
  vertical-align: middle; }

@font-face {
  font-family: 'Outfit-Bold';
  src: url("../fonts/Outfit-Bold.eot");
  src: local("Outfit Bold"), local("Outfit-Bold"), url("../fonts/Outfit-Bold.eot?#iefix") format("embedded-opentype"), url("../fonts/Outfit-Bold.woff2") format("woff2"), url("../fonts/Outfit-Bold.woff") format("woff"), url("../fonts/Outfit-Bold.ttf") format("truetype"), url("../fonts/Outfit-Bold.svg#Outfit-Bold") format("svg");
  font-weight: bold;
  font-style: normal;
  font-display: swap; }

@font-face {
  font-family: 'Outfit-Regular';
  src: url("../fonts/Outfit-Regular.eot");
  src: local("Outfit Regular"), local("Outfit-Regular"), url("../fonts/Outfit-Regular.eot?#iefix") format("embedded-opentype"), url("../fonts/Outfit-Regular.woff2") format("woff2"), url("../fonts/Outfit-Regular.woff") format("woff"), url("../fonts/Outfit-Regular.ttf") format("truetype"), url("../fonts/Outfit-Regular.svg#Outfit-Regular") format("svg");
  font-weight: normal;
  font-style: normal;
  font-display: swap; }

@font-face {
  font-family: 'Outfit-Black';
  src: url("../fonts/Outfit-Black.eot");
  src: local("Outfit Black"), local("Outfit-Black"), url("../fonts/Outfit-Black.eot?#iefix") format("embedded-opentype"), url("../fonts/Outfit-Black.woff2") format("woff2"), url("../fonts/Outfit-Black.woff") format("woff"), url("../fonts/Outfit-Black.ttf") format("truetype"), url("../fonts/Outfit-Black.svg#Outfit-Black") format("svg");
  font-weight: 900;
  font-style: normal;
  font-display: swap; }

@font-face {
  font-family: 'SignatureMoments';
  src: url("../fonts/SignatureMoments.eot");
  src: local("SignatureMoments"), local("SignatureMoments"), url("../fonts/SignatureMoments.eot?#iefix") format("embedded-opentype"), url("../fonts/SignatureMoments.woff2") format("woff2"), url("../fonts/SignatureMoments.woff") format("woff"), url("../fonts/SignatureMoments.ttf") format("truetype"), url("../fonts/SignatureMoments.svg#SignatureMoments") format("svg");
  font-weight: 400;
  font-style: normal;
  font-display: swap; }

@font-face {
  font-family: 'Caslon';
  src: url("../fonts/BigCaslonFB-Regular.eot");
  src: local("BigCaslonFB-Regular"), local("BigCaslonFB-Regular"), url("../fonts/BigCaslonFB-Regular.eot?#iefix") format("embedded-opentype"), url("../fonts/BigCaslonFB-Regular.woff2") format("woff2"), url("../fonts/BigCaslonFB-Regular.woff") format("woff"), url("../fonts/BigCaslonFB-Regular.ttf") format("truetype"), url("../fonts/BigCaslonFB-Regular.svg#BigCaslonFB-Regular") format("svg");
  font-weight: 400;
  font-style: normal;
  font-display: swap; }

html {
  font-size: 10px;
  background-color: #ffffff;
  scroll-behavior: smooth; }

body {
  padding: 0;
  margin: 0;
  font-family: "Outfit-Regular", sans-serif;
  font-size: 1rem;
  line-height: 1.6rem;
  color: #111111;
  animation: fadeInPage ease 3s;
  overflow-x: hidden; }
  body.active {
    overflow: hidden; }

img {
  width: 100%; }

a {
  text-decoration: none; }
  p a {
    color: #adc78e; }

p + p {
  margin-top: 2rem; }

p.text-center {
  text-align: center; }

ul.text-center {
  text-align: center; }

.strong {
  font-family: Outfit-Bold;
  color: #223e33; }

h2 {
  font-family: "SignatureMoments", serif;
  font-size: 3.5rem;
  line-height: 4.2rem;
  text-align: center;
  color: #e3c667;
  padding: 5rem 0 6rem; }
  @media (max-width: 820px) {
    h2 {
      font-family: "SignatureMoments", serif;
      font-size: 2.5rem;
      line-height: 4rem; } }

h3 {
  font-family: "Outfit-Bold", sans-serif;
  font-size: 2.5rem;
  line-height: 3.2rem;
  text-align: left;
  color: #e3c667;
  padding: 2rem 0 .5rem; }

.website {
  overflow-x: hidden; }

.sign {
  display: block;
  font-family: "SignatureMoments", serif;
  font-size: 2.5rem;
  line-height: 11.5rem;
  color: #e3c667; }

.flex {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  flex-wrap: wrap;
  flex: 0 1 auto;
  justify-content: space-between;
  gap: 4rem; }

.top {
  position: fixed;
  width: 100%;
  top: 0;
  left: 0;
  border-bottom: 0.05rem solid #ffffff;
  background: rgba(12, 38, 28, 0.75);
  backdrop-filter: blur(0.9rem);
  z-index: 4; }
  .top__inner {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    flex: 0 1 auto;
    justify-content: space-between;
    width: 100%;
    max-width: 120rem;
    padding: 0 4rem;
    margin: 0 auto;
    box-sizing: border-box; }
    @media (max-width: 820px) {
      .top__inner {
        padding: 0 2rem; } }
  .top__logo {
    width: 100%;
    max-width: 15rem;
    height: 7rem;
    margin-top: .65rem; }

.navigation {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-wrap: wrap;
  flex: 0 1 auto;
  justify-content: center;
  gap: 3rem;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #223e33;
  background: radial-gradient(circle, #294b3e 0%, #0c261c 100%);
  transform: translateY(-100%);
  transition: all ease-in-out .3s;
  opacity: 0;
  z-index: 3; }
  .navigation__item {
    font-family: "Outfit-Regular", sans-serif;
    font-size: 2rem;
    line-height: 2.6rem;
    font-family: "Caslon", serif;
    font-size: 2rem;
    line-height: 2.6rem;
    color: #ffffff;
    text-transform: uppercase;
    letter-spacing: .25rem; }
  .navigation.active {
    opacity: 1;
    transform: translateY(0); }

.burger-icon {
  cursor: pointer;
  z-index: 4; }
  .burger-icon span {
    display: block;
    height: .3rem;
    width: 4rem;
    background: #e3c667;
    margin-bottom: .5rem;
    transition: all .3s ease-in-out; }
  .burger-icon.active span:nth-child(1) {
    transform: translateY(7px) rotate(45deg); }
  .burger-icon.active span:nth-child(2) {
    opacity: 0; }
  .burger-icon.active span:nth-child(3) {
    transform: translateY(-9px) rotate(-45deg); }

.hero {
  display: block;
  position: relative;
  overflow: hidden; }
  .hero--landingpage {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    flex: 0 1 auto;
    justify-content: center;
    width: 100vw;
    width: 100svw;
    height: 100vh;
    height: 100svh;
    background: url(../img/start.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center; }
    .hero--landingpage::after {
      content: "";
      position: absolute;
      display: block;
      width: 100%;
      height: 100%;
      top: 0;
      left: 0;
      background: #223e33;
      background: radial-gradient(circle, #294b3e 0%, #0c261c 100%);
      opacity: .5; }
    .hero--landingpage__inner {
      display: flex;
      flex-direction: column;
      align-items: center;
      flex-wrap: wrap;
      flex: 0 1 auto;
      justify-content: center;
      gap: 2rem;
      z-index: 1; }
  .hero__logo {
    width: 100%;
    max-width: 10rem;
    height: auto;
    display: none; }
  .hero__text {
    font-family: "Caslon", serif;
    font-size: 2.5rem;
    line-height: 3.2rem;
    color: #ffffff;
    text-align: center; }
    .hero__text span {
      font-family: "SignatureMoments", serif;
      font-size: 3.5rem;
      line-height: 4.2rem;
      display: block;
      padding-bottom: 5rem; }
      @media (max-width: 820px) {
        .hero__text span {
          font-family: "SignatureMoments", serif;
          font-size: 3rem;
          line-height: 4.2rem; } }
    .hero__text p {
      color: #e3c667; }

.section {
  font-size: 1.8rem;
  line-height: 2.5rem;
  width: 100%;
  padding: 15rem 0 7rem;
  box-sizing: border-box;
  overflow: hidden; }
  .section--colored {
    background: #fbfbfb; }
  .section--footer {
    background: #0c261c;
    padding-bottom: 18rem;
    color: #ffffff; }
    .section--footer a {
      color: #adc78e; }
  .section--break, .section--break-2, .section--break-3 {
    position: relative;
    height: 100%;
    min-height: 50vh;
    min-height: 50svh;
    max-height: 80rem;
    margin-top: 4rem; }
    .section--break::before, .section--break-2::before, .section--break-3::before {
      content: "";
      position: absolute;
      display: block;
      width: 100%;
      height: 100%;
      top: 0;
      left: 0;
      background: #0c261c;
      opacity: .75; }
    .section--break-2 {
      min-height: 30svh; }
      .section--break-2::before {
        background: #adc78e; }
    .section--break-3 {
      min-height: 50svh;
      opacity: .75; }
      .section--break-3::before {
        background: #e3c667; }
  .section__inner {
    width: 100%;
    max-width: 120rem;
    padding: 0 4rem;
    margin: 0 auto;
    box-sizing: border-box;
    overflow: hidden; }
    @media (max-width: 820px) {
      .section__inner {
        padding: 0 2rem; } }

.video-container {
  position: relative;
  margin-bottom: 4rem; }
  .video-container video {
    width: 100%;
    height: auto; }
    .video-container video::-webkit-media-controls-panel {
      opacity: 0;
      pointer-events: none;
      transition: all ease-in-out .3s; }
    .video-container video:hover::-webkit-media-controls-panel {
      opacity: 1;
      pointer-events: all;
      transition: all ease-in-out .3s; }
    .video-container video:hover::-moz-range-thumb {
      pointer-events: all;
      transition: all ease-in-out .3s; }
  .video-container .overlay {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    max-height: 100rem;
    background: rgba(0, 0, 0, 0.5);
    justify-content: center;
    align-items: center;
    transition: all ease-in-out .6s; }
    .video-container .overlay.action {
      height: auto;
      max-height: 5rem;
      background: transparent;
      transition: all ease-in-out .6s; }
  .video-container .cta-button {
    display: none;
    padding: 10px 20px;
    background-color: #e3c667;
    color: white;
    border: none;
    cursor: pointer;
    position: absolute;
    z-index: 100; }
    .video-container .cta-button:hover {
      background-color: #dbb63c; }
    .video-container .cta-button.mitten {
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      transition: alls 0.5s ease-in-out; }
    .video-container .cta-button.obenRechts {
      top: 10px;
      right: 10px;
      transform: translate(0, 0);
      transition: alls 0.5s ease-in-out; }

.tagesplan {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  flex-wrap: wrap;
  flex: 0 1 auto;
  justify-content: flex-start;
  gap: 3rem; }
  .tagesplan__item {
    flex-basis: calc(33.33% - 3rem);
    flex-wrap: nowrap;
    box-sizing: border-box; }
    @media (max-width: 820px) {
      .tagesplan__item {
        flex-basis: 100%; } }
  .tagesplan__head {
    position: relative; }
  .tagesplan__date {
    font-size: 30rem;
    line-height: 36rem;
    color: #e3c667; }
    @media (max-width: 820px) {
      .tagesplan__date {
        font-size: 25rem;
        line-height: 30rem; } }
  .tagesplan__day {
    font-family: "SignatureMoments", serif;
    font-size: 3rem;
    line-height: 4rem;
    color: #0c261c;
    position: absolute;
    bottom: 0;
    left: 0;
    margin: 0 0 6rem 6rem; }
    @media (max-width: 820px) {
      .tagesplan__day {
        font-family: "SignatureMoments", serif;
        font-size: 4rem;
        line-height: 6rem; } }
  .tagesplan__info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex-wrap: wrap;
    flex: 0 1 auto;
    justify-content: flex-start;
    gap: 3rem;
    position: relative;
    padding-top: 4rem;
    margin-top: 4rem; }
    .tagesplan__info::after {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      width: 25%;
      height: .3rem;
      background: #0c261c; }
    @media (max-width: 820px) {
      .tagesplan__info {
        margin-top: 0rem; } }
  .tagesplan__detail {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex-wrap: wrap;
    flex: 0 1 auto;
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: 0rem; }
  .tagesplan__time {
    font-family: "Outfit-Bold", sans-serif;
    font-size: 1.8rem;
    line-height: 2.4rem;
    color: #e3c667; }
  .tagesplan_desc {
    font-family: "Outfit-Regular", sans-serif;
    font-size: 1.8rem;
    line-height: 2.4rem; }

.locations {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  flex-wrap: wrap;
  flex: 0 1 auto;
  justify-content: flex-start;
  gap: 3rem; }
  .locations__item {
    width: 100%;
    max-width: calc(50% - 1.5rem);
    flex-basis: calc(50% - 1.5rem); }
    @media (max-width: 820px) {
      .locations__item {
        flex-basis: 100%;
        max-width: 100%; } }
  .locations__image {
    position: relative;
    height: 40rem;
    border-radius: 2rem;
    overflow: hidden; }
    .locations__image::after {
      content: "";
      position: absolute;
      display: block;
      height: 30%;
      width: 100%;
      bottom: 0;
      left: 0;
      background: black;
      background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, black 100%); }
  .locations__title {
    position: absolute;
    bottom: 0;
    left: 0;
    padding: 2rem;
    font-family: "Outfit-Bold", sans-serif;
    font-size: 4.5rem;
    line-height: 5.2rem;
    color: #ffffff;
    z-index: 2; }
  .locations__text {
    padding-top: 2rem; }
    .locations__text a {
      display: block;
      margin-top: 2rem; }

.trauzeugen {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex-wrap: wrap;
  flex: 0 1 auto;
  justify-content: flex-start;
  gap: 2rem; }
  .trauzeugen__item {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    flex-wrap: wrap;
    flex: 0 1 auto;
    justify-content: flex-start;
    gap: 5%;
    border: 0.1rem solid #e3c667;
    border-radius: 2rem;
    overflow: hidden; }
    @media (max-width: 820px) {
      .trauzeugen__item {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        flex-wrap: wrap;
        flex: 0 1 auto;
        justify-content: flex-start; } }
  .trauzeugen__image {
    flex-basis: 25%; }
    @media (max-width: 820px) {
      .trauzeugen__image {
        flex-basis: inherit;
        height: 40rem;
        width: 100%; } }
    @media (max-width: 479px) {
      .trauzeugen__image {
        flex-basis: inherit;
        height: 20rem;
        width: 100%; } }
  .trauzeugen__text {
    flex-basis: 70%;
    padding: 5rem 4rem 3rem 0;
    box-sizing: border-box; }
    @media (max-width: 820px) {
      .trauzeugen__text {
        padding: 5rem 2rem 3rem; } }
    .trauzeugen__text p {
      font-family: "Outfit-Regular", sans-serif;
      font-size: 2rem;
      line-height: 3rem; }
      .trauzeugen__text p span {
        display: block;
        padding: 2rem 0 0;
        text-align: right;
        font-family: "Caslon", serif;
        font-size: 2.5rem;
        line-height: 3.2rem; }
  .trauzeugen__name {
    font-family: "SignatureMoments", serif;
    font-size: 1.8rem;
    line-height: 2.4rem;
    padding-bottom: 4rem;
    color: #adc78e; }

.infos {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  flex-wrap: wrap;
  flex: 0 1 auto;
  justify-content: flex-start;
  gap: 3rem; }
  .infos__item {
    width: 100%;
    max-width: calc(33.33% - 2rem);
    flex-basis: calc(33.33% - 2rem); }
    @media (max-width: 820px) {
      .infos__item {
        flex-basis: 100%;
        max-width: 100%; } }
  .infos__image {
    position: relative;
    height: 40rem;
    border-radius: 2rem 2rem 0 0;
    overflow: hidden; }
    .infos__image::after {
      content: "";
      position: absolute;
      display: block;
      height: 75%;
      width: 100%;
      bottom: 0;
      left: 0;
      background: black;
      background: linear-gradient(180deg, rgba(227, 198, 103, 0) 0%, #e3c667 100%); }
  .infos__title {
    position: absolute;
    bottom: 0;
    left: 0;
    padding: 2rem;
    font-family: "Outfit-Bold", sans-serif;
    font-size: 3.5rem;
    line-height: 4.2rem;
    color: #ffffff;
    z-index: 2; }
  .infos__text {
    padding: 2rem;
    border-radius: 0 0 2rem 2rem;
    border: 1px solid #e3c667;
    border-top: 0; }

form {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  flex-wrap: wrap;
  flex: 0 1 auto;
  justify-content: flex-start;
  gap: 2rem;
  margin: 0 auto;
  width: 100%;
  max-width: 50rem;
  background: transparent;
  padding: 6rem 0 2rem;
  box-sizing: border-box; }
  form div {
    margin-bottom: 15px;
    box-sizing: border-box; }
    form div.form-1-2 {
      flex-basis: calc(50% - 1rem); }
    form div.form-2-2 {
      flex-basis: 100%; }
  form label {
    display: block;
    margin-bottom: 5px; }
  form input[type="text"] {
    width: 100%;
    padding: 1rem .5rem;
    border: 1px solid #ddd;
    border-radius: 4px;
    box-sizing: border-box; }
  form button {
    font-family: "Outfit-Regular", sans-serif;
    font-size: 2rem;
    line-height: 2.6rem;
    width: 100%;
    padding: 1rem 2rem;
    border: none;
    background-color: #e3c667;
    color: #0c261c;
    border-radius: 4px;
    cursor: pointer;
    transition: all ease-in-out .2s; }
    form button:hover {
      background-color: #adc78e; }

#countdown {
  display: flex;
  justify-content: center;
  gap: 3rem;
  align-items: center;
  background: #e3c667;
  padding: 3rem 2rem;
  margin-bottom: -4rem; }
  @media (max-width: 479px) {
    #countdown {
      flex-direction: column; } }
  #countdown p {
    font-family: "SignatureMoments", serif;
    font-size: 3rem;
    line-height: 4rem;
    color: #ffffff;
    padding: 3rem 0; }
  #countdown div {
    margin: 2rem 1rem 0;
    text-align: center;
    font-family: "Outfit-Bold", sans-serif;
    font-size: 7rem;
    line-height: 8rem;
    color: #223e33; }
    #countdown div:before {
      display: block;
      font-size: 50%;
      margin-bottom: 2rem;
      font-family: "SignatureMoments", serif;
      font-size: 1.4rem;
      line-height: 2.5rem;
      color: #ffffff; }
  #countdown #days:before {
    content: "Tage"; }
  #countdown #hours:before {
    content: "Stunden"; }
  #countdown #minutes:before {
    content: "Minuten"; }
  #countdown #seconds:before {
    content: "Sekunden"; }
