@import url("https://fonts.googleapis.com/css2?family=Allura&family=Sofia+Sans+Condensed:wght@400;700&display=swap");
@font-face {
  font-family: "MrsEaves-All-Petite-Caps-OT";
  src: url("https://fonts.celebrate.company/assets/fonts/MrsEaves-All-Petite-Caps-OT.ttf?timestamp=1681993609079"); }

@font-face {
  font-family: "MrsEavesOT-Roman";
  src: url("https://fonts.celebrate.company/assets/fonts/MrsEaves-OT-Roman.ttf?timestamp=1681993609316"); }

@font-face {
  font-family: "Santorini";
  src: url("https://fonts.celebrate.company/assets/fonts/Santorini.ttf?timestamp=1681993612903"); }

*, *::before, *::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

* {
  margin: 0; }

body {
  line-height: 1.5;
  -webkit-font-smoothing: antialiased; }

img, picture, video, canvas {
  display: block;
  max-width: 100%; }

input, button, textarea, select {
  font: inherit; }

p, h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word; }

#main {
  isolation: isolate; }

:root {
  --body-background: white;
  --headline-color: rgb(178, 96, 98);
  --light-color: rgba(255, 255, 255, 0.95);
  --copy-color: #917176;
  --special-color: var(--copy-color);
  --font-family-headline: 'MrsEavesOT-Roman', sans-serif;
  --font-family-copy: 'MrsEaves-All-Petite-Caps-OT', sans-serif;
  --font-family-special: 'Santorini', cursive;
  --content-width: 1200px;
  --soft-edges-radius: 7px; }

.button {
  background: white;
  padding: 20px 20px;
  color: #646464;
  font-size: 16px;
  text-transform: uppercase;
  text-decoration: none;
  font-weight: 400;
  -webkit-transition: 0.12s;
  transition: 0.12s;
  border-radius: 30px; }
  .button:hover {
    -webkit-box-shadow: 0px 7px 15px -7px rgba(0, 0, 0, 0.55);
            box-shadow: 0px 7px 15px -7px rgba(0, 0, 0, 0.55); }

.cards {
  display: flex;
  gap: 30px;
  width: 100%; }
  @media (max-width: 800px) {
    .cards {
      flex-direction: column; } }
.card {
  flex: 0 0 50%;
  display: -ms-grid;
  display: grid;
  -ms-grid-rows: auto 30px auto 30px auto 30px auto;
      grid-template-areas: "title title" "date time" "description description" "maps maps";
  -ms-grid-columns: 1fr 30px 1fr;
  grid-template-columns: 1fr 1fr;
  padding: 30px;
  gap: 30px;
  border: 2px solid rgba(0, 0, 0, 0.24);
  border-radius: var(--soft-edges-radius); }
  @media (max-width: 800px) {
    .card {
      flex: auto; } }
.card--title {
  -ms-grid-row: 1;
  -ms-grid-column: 1;
  -ms-grid-column-span: 3;
  text-align: center;
  grid-area: title;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.5);
  margin-bottom: 20px; }

.card--date {
  -ms-grid-row: 3;
  -ms-grid-column: 1;
  grid-area: date;
  text-align: center; }

.card--time {
  -ms-grid-row: 3;
  -ms-grid-column: 3;
  grid-area: time;
  text-align: center; }

.card--description {
  -ms-grid-row: 5;
  -ms-grid-column: 1;
  -ms-grid-column-span: 3;
  grid-area: description; }

.card--maps {
  -ms-grid-row: 7;
  -ms-grid-column: 1;
  -ms-grid-column-span: 3;
  grid-area: maps;
  text-align: center;
  max-width: 100%;
  overflow: hidden; }

.footer img {
  --minimum: 500px - 15%;
  --maximum: 100vw - 15%;
  max-width: min(var(--minimum), var(--maximum));
  color: blue;
  margin: 0 auto;
  padding-right: 5%; }

.gallery {
  display: flex;
  width: 100%;
  gap: 30px; }
  @media (max-width: 800px) {
    .gallery {
      flex-direction: column; } }
.gallery-image {
  --background-position: 50%;
  height: 400px;
  flex: 1 0 33%;
  width: 100%;
  background-image: var(--url);
  background-size: cover;
  border-radius: var(--soft-edges-radius);
  background-position: var(--background-position); }
  @media (max-width: 800px) {
    .gallery-image {
      flex: auto; } }
.hero {
  position: relative; }
  .hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url(/images/neuschwanstein-db51c512.jpg);
    background-position: 65% 50%;
    background-size: cover;
    -webkit-filter: brightness(0.65);
            filter: brightness(0.65); }
    @media (max-width: 800px) {
      .hero::before {
        background-image: url(/images/neuschwanstein-hochkant-0cca5d20.jpg);
        background-position: 50% 0%; } }
.hero--content {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 800px;
  justify-content: center;
  gap: 40px; }

.hero--headline {
  text-align: center;
  color: var(--light-color); }
  .hero--headline small {
    font-family: var(--font-family-special);
    text-transform: none;
    font-weight: normal; }
    @media (max-width: 750px) {
      .hero--headline small {
        display: block; } }
.hero--heart {
  display: none; }

.hero--date {
  color: var(--light-color);
  font-size: 46px;
  font-family: var(--font-family-special);
  text-transform: none; }

.section {
  max-width: var(--content-width);
  margin: 0 auto;
  padding: 15px; }
  .section.-centered {
    display: flex;
    flex-direction: column;
    align-items: center; }

.section--headline {
  margin-block: 50px;
  text-align: left;
  width: 100%; }

.qr-code--svg {
  scale: 0.5;
  margin-top: -100px;
  display: none; }
  .qr-code:hover .qr-code--svg {
    display: block; }

.qr-code--image {
  max-width: 225px;
  margin-bottom: 130px; }
  .qr-code:hover .qr-code--image {
    display: none; }

body {
  font-size: 26px;
  background-color: var(--body-background);
  color: var(--copy-color);
  font-family: var(--font-family-copy); }

h1, h2 {
  font-family: var(--font-family-headline);
  font-weight: normal;
  color: var(--headline-color);
  text-transform: uppercase; }

h3, h4, h5, h6 {
  font-family: var(--font-family-copy);
  text-transform: uppercase;
  color: var(--headline-color); }

h1 {
  font-size: 80px; }
  @media (max-width: 800px) {
    h1 {
      font-size: 60px; } }
h2 {
  font-size: 65px; }
  @media (max-width: 800px) {
    h2 {
      font-size: 40px; } }
  @media (min-width: 1000px) {
    h2.-with-addon-1 {
      background-image: url("/images/addon-left-902173de.png");
      background-repeat: no-repeat;
      background-size: 50px;
      background-position: 100%;
      max-width: -webkit-fit-content;
      max-width: -moz-fit-content;
      max-width: fit-content;
      padding-right: 75px; } }
  @media (min-width: 1000px) {
    h2.-with-addon-2 {
      background-image: url("/images/addon-right-129444af.png");
      background-repeat: no-repeat;
      background-size: 50px;
      background-position: 100%;
      max-width: -webkit-fit-content;
      max-width: -moz-fit-content;
      max-width: fit-content;
      padding-right: 75px; } }
h3 {
  font-size: 30px;
  margin-top: 30px; }

img, picture, video, canvas, svg {
  border-radius: var(--soft-edges-radius); }

a[href] {
  color: inherit; }

li::marker {
  font-family: var(--font-family-copy); }
