@charset "UTF-8";
@import url(https://fonts.googleapis.com/css?family=EB+Garamond:regular,500,600,700,800,italic,500italic,600italic,700italic,800italic);
/*----Основная сетка----*/
._container {
  max-width: 856px;
  margin: 0 auto;
}
@media (max-width: 868) {
  ._container {
    max-width: 970px;
  }
}
@media (max-width: 992px) {
  ._container {
    max-width: 750px;
  }
}
@media (max-width: 767px) {
  ._container {
    max-width: none;
    padding: 0 20px;
  }
}

/*--------------------*/
/*----Обнуление----*/
* {
  padding: 0;
  margin: 0;
  border: 0;
}

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

:focus, :active {
  outline: none;
}

a:focus, a:active {
  outline: none;
}

nav, footer, header, aside {
  display: block;
}

html, body {
  height: 100%;
  width: 100%;
  font-size: 100%;
  line-height: 1;
  font-size: 14px;
  -ms-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

input, button, textarea {
  font-family: inherit;
}

input::-ms-clear {
  display: none;
}

button {
  cursor: pointer;
}

button::-moz-focus-inner {
  padding: 0;
  border: 0;
}

a, a:visited {
  text-decoration: none;
}

a:hover {
  text-decoration: none;
}

ul li {
  list-style: none;
}

img {
  vertical-align: top;
}

h1, h2, h3, h4, h5, h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*--------------------*/
.hero {
  padding: 1em;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.hero .image {
  width: 70%;
}

.bride, .groom {
  display: flex;
  margin: 2em 0;
  align-items: center;
}
.bride .hero-image, .groom .hero-image {
  width: 50%;
}
.bride img, .groom img {
  width: 100%;
}

.section {
  padding-bottom: 3em;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 1em;
}

.image {
  display: flex;
  justify-content: center;
}
.image img {
  max-width: 100%;
  height: auto;
  display: block;
}

@keyframes swing {
  0% {
    transform: rotate(0deg);
  }
  20% {
    transform: rotate(3deg);
  }
  50% {
    transform: rotate(0deg);
  }
  80% {
    transform: rotate(-3deg);
  }
  100% {
    transform: rotate(0deg);
  }
}
.swinging {
  margin-top: 0.5em;
  animation: swing 2s infinite linear;
  transform-origin: center center;
}

h2 {
  text-align: center;
  font-family: "eb garamond";
  font-size: 3em;
  font-weight: 500;
  font-style: italic;
}

p {
  text-align: center;
  font-family: "eb garamond";
  font-size: 1.5em;
  font-weight: 300;
  line-height: 130%;
}

a, .button {
  background-color: #7c8d9d;
  color: white;
  padding: 14px 25px;
  border-radius: 100px;
  text-align: center;
  font-size: 1.2em;
  display: inline-block;
}

a:hover, a:active, .button:hover, .button:active {
  background-color: #a2aeba;
}

.text {
  margin-bottom: 1em;
}

.date-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1em;
}
.date-section .image {
  width: 50%;
}

.date {
  background-color: #ebceca;
  border-radius: 999px;
  padding: 0.5em 3em;
}
.date p {
  font-weight: 500;
  font-style: italic;
}

.photo {
  width: 80%;
  margin: auto;
}
.photo img {
  max-width: 100%;
  height: auto;
  display: block;
}

.timing {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.5em;
}
.timing .stage {
  display: flex;
  align-items: center;
  gap: 1em;
  justify-content: start;
}
.timing .stage .timing-icon {
  width: 50px;
  height: auto;
}
.timing .stage .timing-icon img {
  width: 100%;
}
.timing .stage .timing-title {
  font-family: "eb garamond";
  font-size: 1.5em;
  font-weight: 500;
}
.timing .stage .timing-description {
  font-family: "eb garamond";
  font-size: 1.1em;
  font-weight: 300;
}

.dresscode {
  display: flex;
  gap: 1em;
  justify-content: space-around;
  margin: 1em;
}
.dresscode .color-with-circle {
  width: 50px;
  height: auto;
  position: relative;
}
.dresscode .color {
  height: 50px;
}
.dresscode .color1 {
  background-color: #6a655f;
  border-radius: 100px;
}
.dresscode .color2 {
  background-color: #7c8d9d;
  border-radius: 100px;
}
.dresscode .color3 {
  background-color: #a2aeba;
  border-radius: 100px;
}
.dresscode .color4 {
  background-color: #d2a69d;
  border-radius: 100px;
}
.dresscode .color5 {
  background-color: #ebceca;
  border-radius: 100px;
}

.circle {
  background-color: rgba(255, 255, 255, 0);
  border: 1px solid #000;
  border-radius: 100px;
  position: absolute;
  left: 7px;
  top: 0;
  width: 50px;
  height: 50px;
}

.dress-code-image {
  width: 30%;
}

.photo-location {
  width: 90%;
  margin: auto;
}
.photo-location img {
  max-width: 100%;
  height: auto;
  display: block;
}

.address {
  font-size: 1.2em;
  font-weight: 300;
}

form {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 1em;
  justify-content: center;
  align-items: start;
  margin-top: 0.5em;
  padding: 1.5em;
  box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;
}

.form-item {
  display: flex;
  flex-direction: column;
  gap: 0.7em;
  align-items: start;
  width: 100%;
}

.question-block {
  display: flex;
  flex-direction: column;
  align-items: start;
}

.answer-block {
  display: flex;
  flex-direction: column;
  gap: 0.5em;
  width: 100%;
}

label {
  text-align: center;
  font-family: "eb garamond";
  font-size: 1.5em;
  font-weight: 300;
  line-height: 130%;
}

.form-question {
  font-size: 1.3em;
  font-weight: 600;
}

.form-description {
  font-size: 1.3em;
  font-weight: 300;
}

.answer {
  display: flex;
  gap: 0.8em;
  align-items: center;
}

input[type=radio] {
  width: 20px;
  height: 20px;
  accent-color: #7c8d9d;
  cursor: pointer;
}

.form-input {
  border: #6a655f solid 1px;
  border-radius: 4px;
  padding: 0.5em;
  font-family: "eb garamond";
  font-size: 1.2em;
  color: #000;
}

.form-input::-moz-placeholder {
  color: #7c8d9d;
  font-style: italic;
}

.form-input::placeholder {
  color: #7c8d9d;
  font-style: italic;
}

.button {
  width: 100%;
}

.button[disabled] {
  width: 100%;
  opacity: 0.6;
  cursor: not-allowed;
}

.button[disabled]:hover {
  background-color: #7c8d9d;
}

.modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000;
}

.modal.hidden {
  display: none;
}

.modal-content {
  background: #7c8d9d;
  padding: 2em;
  border-radius: 10px;
  text-align: center;
  box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
}
.modal-content p {
  color: white;
}

.lada {
  width: 35%;
  border-radius: 50%;
  overflow: hidden;
}

.scroll-reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.scroll-reveal.active {
  opacity: 1;
  transform: translateY(0);
}

@media (min-width: 1025px) {
  .dress-code-image {
    width: 20%;
  }
  .lada {
    width: 15%;
  }
  .dresscode {
    gap: 2em;
  }
  .circle {
    left: 11px;
    width: 70px;
    height: 70px;
  }
  .color-with-circle {
    width: 70px !important;
  }
  .color {
    height: 70px !important;
  }
}