.xtd-review-dialog__window {
  border-radius: 14px !important;
  display: flex !important;
  flex-direction: column !important;
  height: calc(100vh - 2.5rem) !important;
  height: calc(100dvh - 2.5rem) !important;
  max-height: none !important;
  max-width: 62rem !important;
  min-height: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
}

.xtd-review-dialog__header {
  align-items: flex-start;
  background: linear-gradient(135deg, #fffaf0 0%, #fff 52%, #f7faff 100%);
  border-bottom: 1px solid #e7ebf0;
  display: flex;
  justify-content: space-between;
  padding: 1.5rem 1.75rem 1.35rem;
}

.xtd-review-dialog__header h2 {
  color: #20252b !important;
  font-size: 1.65rem !important;
  line-height: 1.2;
  margin: .2rem 2.5rem .35rem 0 !important;
}

.xtd-review-dialog__header p {
  color: #68717d !important;
  font-size: .92rem;
  margin: 0 !important;
}

.xtd-review-dialog__eyebrow,
.xtd-review-compose__eyebrow {
  color: #a96900;
  display: block;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.xtd-review-dialog__header .xtd-reviews-dialog__close {
  color: #7a838d !important;
  position: static !important;
}

.xtd-review-compose {
  background: #fff;
  color: #29313a;
  margin: 0;
}

.xtd-review-dialog .xtd-review-compose {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

.xtd-review-dialog .xtd-review-compose__body {
  flex: 1 1 auto;
  max-height: none;
  min-height: 0;
  overflow: auto;
}

.xtd-review-compose__body {
  padding: .25rem 1.75rem;
}

.xtd-review-compose__section {
  border-bottom: 1px solid #e9edf1;
  padding: 1.4rem 0;
}

.xtd-review-compose__section:last-child {
  border-bottom: 0;
}

.xtd-review-compose__product {
  align-items: flex-start;
  background: #f8fafc;
  border: 1px solid #e4e9ef;
  border-radius: 9px;
  display: block;
  margin-top: 1.25rem;
  padding: 1rem;
}

.xtd-review-compose__product-main {
  min-width: 0;
}

.xtd-review-compose__product-summary {
  align-items: center;
  display: grid;
  gap: .85rem;
  grid-template-columns: 4rem minmax(0, 1fr);
  margin-top: .25rem;
}

.xtd-review-compose__product-image {
  align-items: center;
  background: #fff;
  border: 1px solid #dfe6ec;
  border-radius: 7px;
  display: flex;
  height: 4rem;
  justify-content: center;
  overflow: hidden;
  width: 4rem;
}

.xtd-review-compose__product-image img {
  height: 100%;
  object-fit: contain;
  padding: .25rem;
  width: 100%;
}

.xtd-review-compose__product-image span {
  color: #9aa6b2;
  font-size: 1.15rem;
  font-weight: 700;
}

.xtd-review-compose__product-summary strong {
  color: #20262d;
  display: block;
  font-size: 1rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.xtd-review-compose__product-select {
  margin-top: .85rem;
  max-width: 100%;
}

.xtd-review-compose__section-icon,
.xtd-review-compose__step {
  align-items: center;
  background: #f0a000;
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  flex: 0 0 auto;
  font-weight: 700;
  height: 2.25rem;
  justify-content: center;
  width: 2.25rem;
}

.xtd-review-compose__step {
  font-size: .78rem;
  height: 1.65rem;
  margin-right: .65rem;
  width: 1.65rem;
}

.xtd-review-compose__section-heading {
  align-items: flex-start;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 1.05rem;
}

.xtd-review-compose__section-heading > div {
  align-items: center;
  display: flex;
}

.xtd-review-compose__section-heading h3 {
  color: #29313a !important;
  font-size: 1.05rem !important;
  margin: 0 !important;
}

.xtd-review-compose__section-heading p {
  color: #7a838c !important;
  font-size: .82rem;
  margin: .15rem 0 0 !important;
  text-align: right;
}

.xtd-review-compose__grid {
  display: grid;
  gap: 1rem;
}

.xtd-review-compose__grid--two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.xtd-review-compose .form-group {
  margin-bottom: 1rem;
}

.xtd-review-compose .form-group:last-child {
  margin-bottom: 0;
}

.xtd-review-compose label,
.xtd-review-compose__rating-label {
  color: #3e4751;
  display: block;
  font-size: .86rem;
  font-weight: 600;
  margin-bottom: .4rem;
}

.xtd-review-compose label span,
.xtd-review-compose__rating-label span {
  color: #cf3d32;
}

.xtd-review-compose .form-control {
  background-color: #fff;
  border: 1px solid #ccd4dc;
  border-radius: 7px;
  box-shadow: none;
  color: #29313a;
  font-size: .92rem;
  min-height: 2.75rem;
  padding: .65rem .8rem;
  width: 100%;
}

.xtd-review-compose textarea.form-control {
  line-height: 1.55;
  resize: vertical;
}

.xtd-review-compose .form-control:focus {
  border-color: #e5a31a;
  box-shadow: 0 0 0 3px rgba(229, 163, 26, .16);
  outline: 0;
}

.xtd-review-compose__label-row {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.xtd-review-compose__label-row small {
  color: #8a939d;
}

.xtd-review-compose__ratings {
  background: #fbfcfd;
  border: 1px solid #e4e9ee;
  border-radius: 9px;
  padding: .3rem 1rem;
}

.xtd-review-compose__rating-row {
  align-items: center;
  border-bottom: 1px solid #ebeff2;
  display: grid;
  gap: .75rem;
  grid-template-columns: minmax(10rem, 1fr) auto 3rem;
  min-height: 3.35rem;
}

.xtd-review-compose__rating-row:last-child {
  border-bottom: 0;
}

.xtd-review-compose__rating-row .xtd-review-compose__rating-label {
  margin: 0;
}

.xtd-review-star-field {
  direction: rtl;
  display: inline-flex;
}

.xtd-review-star-field input {
  height: 1px;
  opacity: 0;
  position: absolute;
  width: 1px;
}

.xtd-review-star-field label {
  color: #d7dde2;
  cursor: pointer;
  font-size: 1.8rem;
  line-height: 1;
  margin: 0 .08rem;
  transition: color .15s ease, transform .15s ease;
}

.xtd-review-star-field input:checked ~ label,
.xtd-review-star-field label:hover,
.xtd-review-star-field label:hover ~ label {
  color: #f0a000;
}

.xtd-review-star-field label:hover {
  transform: scale(1.08);
}

.xtd-review-star-field input:focus + label {
  border-radius: 2px;
  outline: 2px solid #e5a31a;
  outline-offset: 2px;
}

.xtd-review-star-field__value {
  color: #6d7680;
  font-size: .8rem;
  text-align: right;
}

.xtd-review-compose__pros label > span {
  color: #25894d;
}

.xtd-review-compose__cons label > span {
  color: #c64b41;
}

.xtd-review-upload {
  background: #fbfcfd;
  border: 1px dashed #bdc8d2;
  border-radius: 9px;
  min-height: 8.5rem;
  padding: 1rem;
  text-align: center;
  transition: border-color .15s ease, background .15s ease;
}

.xtd-review-upload:hover {
  background: #fffaf0;
  border-color: #dda022;
}

.xtd-review-upload label {
  cursor: pointer;
  margin: 0;
}

.xtd-review-upload__icon {
  align-items: center;
  background: #fff2d8;
  border-radius: 50%;
  color: #b67400 !important;
  display: flex;
  font-size: 1.25rem;
  height: 2.5rem;
  justify-content: center;
  margin: 0 auto .45rem;
  width: 2.5rem;
}

.xtd-review-upload strong,
.xtd-review-upload small,
.xtd-review-upload [data-xtd-file-summary] {
  display: block;
}

.xtd-review-upload small {
  color: #7b848d;
  font-size: .75rem;
  font-weight: 400;
  margin-top: .25rem;
}

.xtd-review-upload input[type="file"] {
  height: 1px;
  opacity: 0;
  position: absolute;
  width: 1px;
}

.xtd-review-upload [data-xtd-file-summary] {
  color: #67717b;
  font-size: .75rem;
  margin-top: .55rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.xtd-review-compose__messages {
  border-radius: 7px;
  margin-top: 1.25rem;
  padding: .85rem 1rem;
}

.xtd-review-compose__messages.is-error {
  background: #fff0ef;
  border: 1px solid #efc4c0;
  color: #8d2f28;
}

.xtd-review-compose__messages ul {
  margin: 0;
  padding-left: 1.2rem;
}

.xtd-review-compose__footer {
  align-items: center;
  background: #f8fafc;
  border-top: 1px solid #e3e8ed;
  display: flex;
  flex: 0 0 auto;
  gap: 1rem;
  justify-content: space-between;
  padding: 1rem 1.75rem;
}

.xtd-review-compose__footer p {
  color: #77818b !important;
  font-size: .78rem;
  margin: 0 !important;
}

.xtd-review-compose__footer > div {
  display: flex;
  flex: 0 0 auto;
  gap: .55rem;
}

.xtd-review-compose__footer .btn {
  border-radius: 6px;
  font-weight: 600;
  min-width: 7.5rem;
  padding: .65rem 1rem;
}

.xtd-review-compose__submit:disabled {
  cursor: wait;
  opacity: .7;
}

.xtd-review-success {
  padding: 3.5rem 2rem;
  text-align: center;
}

.xtd-review-success__icon {
  align-items: center;
  background: #e7f6ed;
  border-radius: 50%;
  color: #23864b;
  display: flex;
  font-size: 1.75rem;
  height: 4rem;
  justify-content: center;
  margin: 0 auto 1rem;
  width: 4rem;
}

.xtd-review-success h3 {
  color: #25303a !important;
  font-size: 1.45rem !important;
  margin: 0 0 .5rem !important;
}

.xtd-review-success p {
  color: #6d7781 !important;
  margin: 0 auto 1.4rem !important;
  max-width: 28rem;
}

.xtd-reviews-form-page {
  padding: 0 1rem;
}

.xtd-reviews-form-page > h1 {
  margin-bottom: 1.25rem;
  text-align: center;
}

.xtd-reviews-form-page .xtd-review-compose {
  border: 1px solid #e1e6eb;
  border-radius: 12px;
  box-shadow: 0 1rem 3rem rgba(35, 45, 55, .09);
  overflow: hidden;
}

@media (max-width: 767px) {
  .xtd-review-dialog {
    align-items: flex-end !important;
    padding: 0 !important;
  }

  .xtd-review-dialog__window {
    border-radius: 14px 14px 0 0 !important;
    height: 96vh !important;
    height: 96dvh !important;
  }

  .xtd-review-dialog__header,
  .xtd-review-compose__body,
  .xtd-review-compose__footer {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .xtd-review-dialog .xtd-review-compose__body {
    max-height: none;
  }

  .xtd-review-compose__grid--two {
    grid-template-columns: 1fr;
  }

  .xtd-review-compose__section-heading {
    display: block;
  }

  .xtd-review-compose__section-heading p {
    margin: .5rem 0 0 2.3rem !important;
    text-align: left;
  }

  .xtd-review-compose__rating-row {
    gap: .35rem;
    grid-template-columns: 1fr auto;
    padding: .65rem 0;
  }

  .xtd-review-compose__rating-label {
    grid-column: 1 / -1;
  }

  .xtd-review-star-field__value {
    min-width: 2.5rem;
  }

  .xtd-review-compose__footer {
    align-items: stretch;
    flex-direction: column;
    padding-bottom: calc(1rem + env(safe-area-inset-bottom));
  }

  .xtd-review-compose__footer > div {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
    width: 100%;
  }

  .xtd-review-compose__footer .btn {
    width: 100%;
  }
}
