.detail {
  display: grid;
  gap: calc(var(--grid-gap) / 2) var(--grid-gap);
  margin: 32px 0 80px 0;
  grid-template-columns: calc(100vw - var(--grid-gap));
}

.detail__date-notes {
  color: var(--text-color-light-gray);
  font-size: calc(14rem/var(--initial-font-multiplier));
}

.detail__date-item:first-child {
  margin-right: 30px;
}

.detail__footer {
  padding-top: 15px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  font-size: calc(14rem/var(--initial-font-multiplier));
  color: var(--text-color-light-gray);
  border-top: 1px solid var(--border-color);
}

.detail__footer-item {
  margin: 5px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

.detail__footer-item > div {
  display: flex;
  align-items: center;
}

.detail__footer-label {
  margin: 5px 20px 5px 0;
}

.detail__admin-buttons {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex-wrap: wrap;
}

.detail__admin-buttons > * {
  margin: calc(var(--grid-gap) / 4);
}

.vote__form input[type="text"],
.vote__form textarea {
  width: 100%;
}

.vote__items-list {
  list-style-type: none;
  padding: 0;
  margin: 0;
}

.vote__question-list {
  display: grid;
}

.vote__question-item {
  padding: calc(var(--grid-gap) / 2) 0;
  border-bottom: 1px solid var(--border-color);
}

.vote__question-titlebar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

.vote__question-title {
  font-weight: 500;
  position: relative;
}

.vote__question-item--required .vote__question-title {
  max-width: calc(100% - 17px);
}

.vote__question-item--required .vote__question-title::after {
  content: '*';
  display: block;
  position: absolute;
  top: calc(var(--grid-gap) / 2);
  left: calc(100% + 5px);
  color: var(--error-color);
}

.vote__answers-list {
  font-size: calc(1rem * 7 / 9);
}

.vote__item-vote {
  margin: 7px 0;
  padding: 0;
}

.vote__buttons {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(100px, max-content));
  align-items: center;
  gap: calc(var(--grid-gap) / 2);
}

.vote__results {
  font-size: calc(1rem * 7 / 9);
}

.vote__results-icon {
  margin-right: 4px;
}

.vote__item-vote--error:after,
.vote--main-error:after {
  content: attr(data-error-text);
  display: block;
  color: red;
  max-height: 0;
  margin: 5px 0;
  overflow: hidden;
  transition: max-height 0.3s ease-in-out, opacity 0.5s ease-in-out;
  font-size: 0.9rem;
  opacity: 0;
  font-family: 'Trebuchet MS', sans-serif;
  will-change: height, opacity;
}

.vote__item--error:after {
  max-height: 100px;
  opacity: 1;
}

.vote__item-vote--error:after {
  margin: 10px 0 15px;
}

.vote__question-item--error {
  background-color: var(--error-color-light);
  margin: 7px -16px;
  padding: 0 16px;
  border: none;
}

:root.root--special .detail__date-notes,
:root.root--special .detail__footer,
:root.root--special .vote__question-item--required .vote__question-title::after,
:root.root--special .vote__item-vote--error:after,
:root.root--special .vote--main-error:after {
  color: var(--special-text-color);
}

:root.root--special .detail__footer {
  border-color: var(--special-text-color);
}

:root.root--special .vote__question-item--error {
  background-color: transparent;
}


@media (hover: hover) {
  .detail__text a:hover {
    text-decoration: underline;
    text-decoration-color: var(--primary-color-25);
  }
}

@media screen and (max-width: 384px) {
  .detail__photos img {
    width: calc(100vw - var(--grid-gap));
    height: auto;
  }
}

@media screen and (min-width: 896px) and (max-width: 1087px) {
  .detail {
    grid-template-columns: 1fr;
  }
}

@media screen and (min-width: 1088px) {
  .detail {
    grid-template-columns: 1fr;
  }
}
