.reviews-box{
  margin:24px 10px 18px;
  padding:18px;
  border:1px solid rgba(17,70,38,.12);
  border-radius:12px;
  background:#fff;
}
.reviews-box__title{
  margin:0 0 8px;
  font-size:22px;
  line-height:1.2;
}
.reviews-box__summary{
  display:flex;
  gap:8px;
  align-items:center;
  color:#334;
  font-size:15px;
}
.reviews-stars,
.reviews-item__rating{
  color:#d98b00;
  font-weight:800;
}
.reviews-box__empty{
  color:#667;
  font-size:14px;
}
.reviews-list{
  display:grid;
  gap:12px;
  margin-top:14px;
}
.reviews-item{
  padding:14px;
  border:1px solid rgba(17,70,38,.10);
  border-radius:12px;
  background:#f8fff9;
}
.reviews-item__top{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
}
.reviews-item__author{
  color:#14251b;
}
.reviews-item__date{
  margin-top:4px;
  color:#778;
  font-size:12px;
}
.reviews-item__text{
  margin:10px 0 0;
  color:#243126;
  line-height:1.45;
}
.reviews-form-wrap{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid rgba(17,70,38,.10);
}
.reviews-form__title{
  margin:0 0 10px;
  font-size:18px;
}
.reviews-form{
  display:grid;
  gap:10px;
}
.reviews-form__label{
  display:grid;
  gap:6px;
  font-weight:700;
  color:#233;
}
.reviews-form__select,
.reviews-form__textarea{
  width:100%;
  border:1px solid rgba(17,70,38,.18);
  border-radius:12px;
  padding:10px 12px;
  font:inherit;
  box-sizing:border-box;
}
.reviews-form__textarea{
  resize:vertical;
  min-height:110px;
}
.reviews-form__btn,
.reviews-form__login{
  display:inline-flex;
  justify-content:center;
  align-items:center;
  width:max-content;
  border:0;
  border-radius:12px;
  padding:10px 16px;
  background:#2a965a;
  color:#fff;
  text-decoration:none;
  font-weight:800;
  cursor:pointer;
}
.reviews-form__hint,
.reviews-form__notice{
  color:#667;
  font-size:13px;
}
@media (max-width: 640px){
  .reviews-box{
    margin:18px 10px 14px;
    padding:14px;
  }
  .reviews-box__title{
    font-size:20px;
  }
  .reviews-item__top{
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
  }
  .reviews-form__btn,
  .reviews-form__login{
    width:100%;
  }
}

.reviews-rating-pill,
.reviews-count-pill{
  display:inline-flex;
  align-items:center;
  gap:4px;
  color:#243126;
  font-size:14px;
  line-height:1;
  white-space:nowrap;
}
.reviews-rating-pill{
  font-weight:800;
}
.reviews-count-pill{
  color:#667085;
  font-weight:700;
}
.reviews-stars{
  color:#f5a400;
  font-size:15px;
  line-height:1;
}
.reviews-item__rating{
  display:inline-flex;
  align-items:center;
  gap:4px;
  color:#f5a400;
  font-weight:900;
  white-space:nowrap;
}
.reviews-form__select{
  max-width:180px;
  color:#243126;
  font-weight:800;
  background:#fff;
}


/* === Reviews preview + modal v1 === */
.reviews-box__head{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
}
.reviews-all-link{
  color:#064fb0;
  font-weight:800;
  cursor:pointer;
  white-space:nowrap;
}
.reviews-list--preview{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.reviews-modal-toggle{
  display:none;
}
.reviews-modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:9000;
}
.reviews-modal-toggle:checked + .reviews-modal{
  display:block;
}
.reviews-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.55);
  backdrop-filter:blur(3px);
}
.reviews-modal__panel{
  position:relative;
  width:min(760px,calc(100vw - 28px));
  max-height:82vh;
  overflow:auto;
  margin:7vh auto 0;
  padding:18px;
  background:#fff;
  border-radius:12px;
  box-shadow:0 22px 70px rgba(0,0,0,.28);
}
.reviews-modal__head{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  margin-bottom:14px;
}
.reviews-modal__head h3{
  margin:0 0 8px;
  font-size:22px;
}
.reviews-modal__close{
  width:36px;
  height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  cursor:pointer;
  font-size:28px;
  line-height:1;
  color:#111827;
}
.reviews-modal__list{
  display:grid;
  gap:12px;
}

@media (max-width:640px){
  .reviews-box__head{
    display:block;
  }
  .reviews-all-link{
    display:inline-flex;
    margin-top:10px;
  }
  .reviews-list--preview{
    display:flex;
    overflow-x:auto;
    gap:10px;
    scroll-snap-type:x mandatory;
    padding-bottom:4px;
  }
  .reviews-list--preview .reviews-item{
    min-width:82%;
    scroll-snap-align:start;
  }
  .reviews-modal__panel{
    width:100%;
    max-height:88vh;
    margin:12vh 0 0;
    border-radius:12px 12px 0 0;
    padding:16px;
  }
}
