@font-face {
  font-family: "Forum";
  src: url("../fonts/Forum/Forum-Regular.ttf");
}
form {
  margin: 0;
}

head,
body {
  height: 100%;
  font-family: "Forum", serif;
}
head.body--invitation,
body.body--invitation {
  background-color: #baa093;
}
@media screen and (max-width: 460px) {
  head.body--invitation,
  body.body--invitation {
    background-color: #fbf7f5;
  }
}

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

.wrapper {
  padding: 32px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
  width: 100%;
}

.input-wrapper {
  font-family: "Forum", serif;
  font-weight: 400;
  position: relative;
  padding: 0;
  border: none;
  overflow: visible;
  display: flex;
  color: #704903;
  justify-content: flex-start;
  margin: 0 -4px;
  margin-bottom: 4vh;
}
@media screen and (max-width: 460px) {
  .input-wrapper {
    margin-bottom: 42px;
    margin-bottom: 8vw;
  }
}
.input-wrapper input {
  flex: 1;
  box-sizing: border-box;
  background-color: transparent;
  padding: 0;
  border: none;
  border-radius: 0;
  box-shadow: none;
  border-bottom: 0.1vh solid #704903;
  font-size: 1.8vh;
  outline: none;
  cursor: text;
  padding: 0 4px;
  width: 0;
}
@media screen and (max-width: 460px) {
  .input-wrapper input {
    font-size: 4vw;
    border-bottom: 0.2vw solid #704903;
  }
}
.input-wrapper input::-webkit-input-placeholder {
  -webkit-transition: color 300ms ease;
  transition: color 300ms ease;
}
.input-wrapper input:not(:focus)::-webkit-input-placeholder {
  color: transparent;
}
.input-wrapper input:focus ~ hr {
  transform: scaleX(1);
  visibility: visible;
}
.input-wrapper label {
  position: relative;
  font-size: 1.8vh;
  white-space: nowrap;
  top: 6px;
  left: 0;
  padding: 0 4px;
}
@media screen and (max-width: 460px) {
  .input-wrapper label {
    font-size: 4vw;
  }
}
.input-wrapper input:not(:-moz-placeholder-shown) ~ label {
  transform: scale(0.6);
}
.input-wrapper input:focus ~ label,
.input-wrapper input:not(:placeholder-shown) ~ label {
  transform: scale(0.6);
}

.button-wrapper {
  position: relative;
  padding-top: 64px;
  text-align: center;
}

button,
.button {
  all: unset;
  cursor: pointer;
  font-family: "Forum", serif;
  border: 0.2vh solid #704903;
  border-radius: 4px;
  font-size: 2vh;
  font-weight: 600;
  color: #704903;
  padding: 0.9vh 2.2vh;
  background-color: #faf8f5;
  margin-top: 4vh;
}
@media screen and (max-width: 460px) {
  button,
  .button {
    border: 0.5vw solid #704903;
    font-size: 5vw;
    padding: 2vw 4vw;
    margin-top: 8vw;
  }
}
button:active,
.button:active {
  background-color: rgba(186, 160, 147, 0.231372549);
}
button:disabled,
.button:disabled {
  background-color: rgba(195, 133, 103, 0.4588235294);
}

.radio-container {
  text-align: start;
}
.radio-container + .radio-container {
  margin-top: 2vh;
}
@media screen and (max-width: 460px) {
  .radio-container + .radio-container {
    margin-bottom: 4vw;
  }
}

.radio-wrapper {
  z-index: 0;
  position: relative;
  display: inline-block;
  font-family: "Forum", serif;
  color: #704903;
  font-size: 1.8vh;
}
@media screen and (max-width: 460px) {
  .radio-wrapper {
    font-size: 4vw;
  }
}
.radio-wrapper input {
  display: none;
}
.radio-wrapper span {
  display: inline-block;
  width: 100%;
  cursor: pointer;
}
.radio-wrapper span::before {
  content: "";
  display: inline-block;
  box-sizing: border-box;
  margin-right: 2vh;
  border: solid 1px;
  border-color: #704903;
  border-radius: 0;
  width: 16px;
  height: 16px;
  vertical-align: top;
  transition: border-color 0.2s;
}
.radio-wrapper span::after {
  content: "";
  display: block;
  position: absolute;
  top: 3px;
  left: -2px;
  border-radius: 0;
  width: 10px;
  height: 10px;
  background-color: #c38567;
  transform: translate(9px, 0px) scale(0);
  transition: transform 0.2s;
}
.radio-wrapper input:checked {
  background-color: #c38567;
}
.radio-wrapper input:checked + span::before {
  border-color: #c38567;
}
.radio-wrapper input:checked + span::after {
  transform: translate(9px, 0px) scale(1);
}
.radio-wrapper input {
  opacity: 0.04;
}
.radio-wrapper input:focus {
  opacity: 0.12;
}
.radio-wrapper input:focus {
  opacity: 0.16;
}
.radio-wrapper input:active {
  opacity: 1;
  transform: scale(0);
  transition: transform 0s, opacity 0s;
}
.radio-wrapper input:active + span::before {
  border-color: #c38567;
}
.radio-wrapper input:disabled {
  opacity: 0;
}
.radio-wrapper input:disabled + span {
  color: #c38567;
  cursor: initial;
}
.radio-wrapper input:disabled + span::before {
  border-color: currentColor;
}
.radio-wrapper input:disabled + span::after {
  background-color: currentColor;
}

.wedding-image-wrapper {
  height: 100%;
  background-color: #baa093;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .wedding-image-wrapper {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }
}
@media screen and (max-width: 460px) {
  .wedding-image-wrapper {
    background-color: #fbf7f5;
  }
}
.wedding-image-wrapper .wedding-image-wrapper__img-wrapper {
  position: relative;
}
@media screen and (max-width: 768px) {
  .wedding-image-wrapper .wedding-image-wrapper__img-wrapper {
    background: #fbf7f5;
  }
}
.wedding-image-wrapper .wedding-image-wrapper__img-wrapper > div {
  position: relative;
  display: inline-block;
}
@media screen and (max-width: 768px) {
  .wedding-image-wrapper .wedding-image-wrapper__img-wrapper > div {
    justify-content: center;
    flex: 1;
    display: flex;
  }
}
.wedding-image-wrapper .wedding-image-wrapper__img-wrapper .wedding-image-wrapper__button-wrapper {
  text-align: center;
  position: absolute;
  right: 0;
  left: 0;
  bottom: 28%;
}
@media screen and (max-width: 460px) {
  .wedding-image-wrapper .wedding-image-wrapper__img-wrapper .wedding-image-wrapper__button-wrapper {
    bottom: 26%;
  }
}
.wedding-image-wrapper .wedding-image-wrapper__img-wrapper .wedding-image-wrapper__form-wrapper {
  text-align: center;
  position: absolute;
  right: 0;
  left: 0;
  bottom: 26%;
}
@media screen and (max-width: 460px) {
  .wedding-image-wrapper .wedding-image-wrapper__img-wrapper .wedding-image-wrapper__form-wrapper {
    bottom: 30%;
  }
}
.wedding-image-wrapper .wedding-image-wrapper__img-wrapper .wedding-image-wrapper__form-wrapper .form {
  display: block;
  padding: 0 5vh;
  background-color: transparent;
}
@media screen and (max-width: 460px) {
  .wedding-image-wrapper .wedding-image-wrapper__img-wrapper .wedding-image-wrapper__form-wrapper .form {
    padding: 0 16vw;
  }
}
.wedding-image-wrapper img {
  margin: auto;
  display: inline;
  height: 100%;
  max-height: 100%;
  width: auto;
}
@media screen and (max-width: 768px) {
  .wedding-image-wrapper img {
    width: 100%;
    max-width: 460px;
    height: auto;
  }
}

.error-message {
  position: absolute;
  font-family: "Forum";
  top: 10vh;
  right: 0;
  left: 0;
  color: #dd0f0f;
  font-size: 1.8vh;
}
@media screen and (max-width: 460px) {
  .error-message {
    font-size: 4vw;
    top: 22vw;
  }
}
.error-message.is-hidden {
  display: none;
}

.input-wrapper input.number_of_guests {
  flex: none;
  width: 4vh;
}
@media screen and (max-width: 460px) {
  .input-wrapper input.number_of_guests {
    width: 8vw;
  }
}/*# sourceMappingURL=styles.css.map */