/* English Student — review modal with photo upload */
:root {
  --eg-review-blue: #009ad9;
  --eg-review-dark: #051f38;
  --eg-review-text: #536a82;
  --eg-review-border: #d8e0e8;
  --eg-review-star: #ffb000;
  --eg-review-error: #d93434;
  --eg-review-success: #2b9d75;
}
body.eg-review-modal-open { overflow: hidden; }
.eg-review-modal[hidden] { display: none !important; }
.eg-review-modal { position: fixed; inset: 0; z-index: 2400; display: flex; align-items: center; justify-content: center; padding: 24px; font-family: 'Museo Sans Cyrl', sans-serif; }
.eg-review-modal__backdrop { position: absolute; inset: 0; background: rgba(5,31,56,.48); cursor: pointer; }
.eg-review-modal__dialog { position: relative; z-index: 1; width: min(520px,100%); max-height: calc(100vh - 48px); overflow-y: auto; padding: 18px 20px 20px; border: 1px solid rgba(0,154,217,.65); background: #fff; box-shadow: 0 18px 70px rgba(5,31,56,.22); }
.eg-review-modal__header { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.eg-review-modal__title { margin: 0; color: var(--eg-review-dark); font-size: 22px; line-height: 1.2; font-weight: 700; }
.eg-review-modal__close { width: 34px; height: 34px; flex: 0 0 34px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 0; background: transparent; color: #96a4b2; font-size: 29px; line-height: 1; cursor: pointer; }
.eg-review-modal__close:hover { color: var(--eg-review-dark); }
.eg-review-rating { display: flex; justify-content: center; gap: 3px; margin: 0 0 20px; }
.eg-review-rating__star { width: 30px; height: 34px; padding: 0; border: 0; background: transparent; color: #dfe2e6; font-size: 34px; line-height: 1; cursor: pointer; transition: color .15s ease, transform .15s ease; }
.eg-review-rating__star:hover { transform: translateY(-1px); }
.eg-review-rating__star.is-active, .eg-review-rating__star.is-preview { color: var(--eg-review-star); }
.eg-review-field { margin-bottom: 16px; }
.eg-review-field__label { display: block; margin-bottom: 7px; color: var(--eg-review-text); font-size: 13px; line-height: 1.3; }
.eg-review-field__optional { color: #a7b1bc; }
.eg-review-input, .eg-review-textarea { width: 100%; border: 1px solid var(--eg-review-border); background: #fff; color: var(--eg-review-dark); font-family: inherit; font-size: 14px; font-weight: 300; outline: none; transition: border-color .15s ease, box-shadow .15s ease; }
.eg-review-input { height: 36px; padding: 0 13px; }
.eg-review-textarea { min-height: 118px; padding: 12px 13px; line-height: 1.5; resize: vertical; }
.eg-review-input::placeholder, .eg-review-textarea::placeholder { color: #a9b4c0; }
.eg-review-input:focus, .eg-review-textarea:focus { border-color: var(--eg-review-blue); box-shadow: 0 0 0 2px rgba(0,154,217,.1); }
.eg-review-upload { position: relative; min-height: 105px; display: flex; align-items: center; justify-content: center; padding: 16px; border: 1px dashed #cbd6e2; background: #fbfcfe; text-align: center; cursor: pointer; transition: border-color .15s ease, background .15s ease; }
.eg-review-upload.is-dragover { border-color: var(--eg-review-blue); background: rgba(0,154,217,.05); }
.eg-review-upload__input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }
.eg-review-upload__icon { width: 22px; height: 22px; margin: 0 auto 9px; color: #9eafc0; }
.eg-review-upload__text { color: var(--eg-review-text); font-size: 14px; line-height: 1.45; }
.eg-review-upload__link { color: var(--eg-review-blue); text-decoration: underline; text-underline-offset: 2px; }
.eg-review-upload__hint { margin-top: 5px; color: #a6b0bc; font-size: 12px; }
.eg-review-preview { position: relative; display: none; min-height: 105px; align-items: center; gap: 14px; padding: 12px; border: 1px solid var(--eg-review-border); background: #fbfcfe; }
.eg-review-preview.is-visible { display: flex; }
.eg-review-preview__image { width: 86px; height: 86px; flex: 0 0 86px; object-fit: cover; border: 1px solid var(--eg-review-border); background: #fff; }
.eg-review-preview__meta { min-width: 0; color: var(--eg-review-text); font-size: 13px; line-height: 1.45; }
.eg-review-preview__name { display: block; max-width: 270px; overflow: hidden; color: var(--eg-review-dark); font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.eg-review-preview__remove { margin-top: 8px; padding: 0; border: 0; background: transparent; color: var(--eg-review-blue); font-family: inherit; font-size: 13px; text-decoration: underline; cursor: pointer; }
.eg-review-modal__status { display: none; margin: 0 0 12px; padding: 9px 11px; font-size: 13px; line-height: 1.4; }
.eg-review-modal__status.is-visible { display: block; }
.eg-review-modal__status.is-error { background: rgba(217,52,52,.08); color: var(--eg-review-error); }
.eg-review-modal__status.is-success { background: rgba(43,157,117,.09); color: var(--eg-review-success); }
.eg-review-submit { width: 100%; height: 42px; border: 0; background: var(--eg-review-blue); color: #fff; font-family: inherit; font-size: 14px; font-weight: 700; cursor: pointer; transition: opacity .15s ease; }
.eg-review-submit:disabled { opacity: .28; cursor: default; }
.eg-review-submit.is-loading { opacity: .65; pointer-events: none; }
@media (max-width:575px) {
  .eg-review-modal { align-items: flex-start; padding: 10px; }
  .eg-review-modal__dialog { max-height: calc(100vh - 20px); padding: 16px 14px 18px; }
  .eg-review-modal__title { font-size: 20px; }
  .eg-review-rating__star { width: 28px; font-size: 31px; }
  .eg-review-preview__image { width: 72px; height: 72px; flex-basis: 72px; }
}


#product-review-form[hidden],
#review-form-message[hidden] {
  display: none !important;
}

#product-review-form {
  margin-top: 24px;
}

#reviews .review-stars {
  display: flex;
  gap: 2px;
  color: #e7a900;
}

#reviews .review-image {
  display: block;
  width: 140px;
  max-width: 100%;
  height: auto;
  margin-top: 12px;
  border-radius: 8px;
}

#reviews .review-text {
  overflow-wrap: anywhere;
}

#reviews .review-form-field {
  margin: 0 0 16px;
}

#reviews .review-form-field > label,
#reviews .review-form-field > small {
  display: block;
  margin-bottom: 6px;
}

#reviews input[type="text"],
#reviews textarea {
  box-sizing: border-box;
  width: 100%;
  padding: 12px;
  border: 1px solid #dce2e8;
  border-radius: 8px;
  font: inherit;
}

#reviews textarea {
  resize: vertical;
}

#reviews .review-rating-input {
  padding: 0;
  border: 0;
}

#reviews .review-rating-input legend {
  margin-bottom: 8px;
  font: inherit;
}

#reviews .review-rating-input > label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-right: 12px;
  cursor: pointer;
}

#review-form-message {
  margin: 16px 0;
  padding: 12px 16px;
  border-radius: 8px;
}

#review-form-message.is-error {
  background: #fff0f0;
  color: #a32121;
}

#review-form-message.is-success {
  background: #edf8ef;
  color: #236b35;
}

#reviews button:disabled {
  opacity: .6;
  cursor: wait;
}

#reviews .reviews-pagination {
  margin-top: 20px;
}