/* Orilogy Member Reviews - inherits the theme's typography (FoundersGrotesk).
   Deliberately restrained: brand ink/cream only, hairline borders, minimal shadow. */
.orev-wrap{
  --orev-ink:#241F20;
  --orev-muted:#9a9188;
  --orev-line:#e2dccf;
  --orev-card:#fbf9f5;
  color:var(--orev-ink);
  font-family:inherit;
  width:100%;
  box-sizing:border-box;
}
.orev-wrap *{box-sizing:border-box;font-family:inherit;}

/* ---------- Summary ---------- */
.orev-summary{padding:4px 0;}
.orev-title{
  text-align:center;
  font-family:inherit;font-weight:inherit;
  font-size:clamp(28px,4.4vw,46px);
  letter-spacing:-.01em;
  margin:0 0 30px;
  color:var(--orev-ink);
}
.orev-summary-inner{
  display:flex;align-items:center;justify-content:center;
  gap:56px;flex-wrap:wrap;
}
.orev-score{display:flex;flex-direction:column;gap:8px;min-width:190px;}
.orev-score-num{font-size:clamp(52px,8vw,92px);line-height:.92;font-weight:inherit;}
.orev-score-stars{font-size:22px;letter-spacing:4px;color:var(--orev-ink);}
.orev-score-count{font-size:16px;color:var(--orev-ink);opacity:.85;line-height:1.35;}
.orev-star{color:#d8d0c3;}
.orev-star.is-full{color:var(--orev-ink);}
.orev-star.is-half{position:relative;color:#d8d0c3;}
.orev-star.is-half::before{content:"\2605";position:absolute;left:0;top:0;width:50%;overflow:hidden;color:var(--orev-ink);}

.orev-bars{
  display:flex;flex-direction:column;gap:13px;
  min-width:300px;flex:1;max-width:430px;
  padding-left:56px;border-left:1px solid var(--orev-line);
}
.orev-bar-row{display:flex;align-items:center;gap:14px;font-size:15px;}
.orev-bar-label{white-space:nowrap;min-width:32px;font-variant-numeric:tabular-nums;}
.orev-bar-track{flex:1;height:7px;border-radius:99px;background:#e6e0d4;overflow:hidden;}
.orev-bar-fill{display:block;height:100%;border-radius:99px;background:var(--orev-ink);}
.orev-bar-row:not(:first-child) .orev-bar-fill{background:#b3aa9c;}
.orev-bar-count{min-width:44px;text-align:right;font-variant-numeric:tabular-nums;opacity:.8;}

/* ---------- Carousel ---------- */
.orev-carousel{position:relative;margin-top:36px;}
.orev-track{
  display:flex;gap:20px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  /* generous vertical padding so the active card's soft shadow is never clipped */
  padding:44px calc(50% - 168px) 52px;
  scrollbar-width:none;-ms-overflow-style:none;
}
.orev-track::-webkit-scrollbar{display:none;}

.orev-card{
  scroll-snap-align:center;
  flex:0 0 336px;
  min-height:326px;
  background:var(--orev-card);
  border:1px solid var(--orev-line);
  border-radius:16px;
  padding:26px 26px 24px;
  display:flex;flex-direction:column;
  transition:transform .4s ease, box-shadow .4s ease, background .4s ease, color .4s ease;
  transform:scale(.97);
  opacity:.96;
}
.orev-card.is-active{
  background:var(--orev-ink);
  color:#fff;
  transform:scale(1);
  opacity:1;
  box-shadow:0 20px 42px -22px rgba(36,31,32,.55);
  border-color:var(--orev-ink);
}

.orev-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;}
.orev-pill{
  font-size:11px;font-weight:inherit;letter-spacing:.14em;text-transform:uppercase;
  color:var(--orev-muted);background:none;padding:0;
}
.orev-card.is-active .orev-pill{color:rgba(255,255,255,.6);}
.orev-card-stars{font-size:13px;letter-spacing:2px;color:var(--orev-ink);}
.orev-card.is-active .orev-card-stars{color:#fff;}

.orev-card-title{
  font-family:inherit;font-weight:inherit;
  font-size:21px;line-height:1.22;margin:0 0 12px;letter-spacing:-.01em;color:var(--orev-ink);
}
.orev-card-text{
  font-size:15px;line-height:1.6;color:#6f675e;margin:0;flex:1;
}
.orev-card.is-active .orev-card-title{color:#fff;}
.orev-card.is-active .orev-card-text{color:rgba(255,255,255,.7);}

.orev-card-foot{
  display:flex;align-items:center;margin-top:22px;padding-top:16px;
  border-top:1px solid var(--orev-line);
}
.orev-card.is-active .orev-card-foot{border-top-color:rgba(255,255,255,.16);}
.orev-quote-ico{display:none;}
.orev-card-meta{font-size:13px;color:var(--orev-muted);}
.orev-card.is-active .orev-card-meta{color:rgba(255,255,255,.62);}

/* ---------- Nav ---------- */
.orev-nav{display:flex;justify-content:center;gap:12px;margin-top:8px;}
.orev-nav button{
  width:42px;height:42px;border-radius:99px;
  border:1px solid var(--orev-line);background:transparent;color:var(--orev-ink);
  font-size:17px;cursor:pointer;line-height:1;
  transition:background .2s,border-color .2s;
  font-family:inherit;
}
.orev-nav button:hover{background:var(--orev-ink);color:#fff;border-color:var(--orev-ink);}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .orev-summary-inner{gap:30px;}
  .orev-bars{border-left:0;padding-left:0;max-width:100%;}
}
@media (max-width:600px){
  .orev-track{padding:36px calc(50% - 142px) 44px;}
  .orev-card{flex-basis:284px;min-height:300px;padding:22px;}
  .orev-score{min-width:0;align-items:center;text-align:center;}
  .orev-summary-inner{flex-direction:column;}
}

/* ===========================================================================
   Verified-buyer review form
   ======================================================================== */

.orev-form-wrap {
	--orev-green: var(--e-global-color-0316a3b, #183b19);
	--orev-cream: var(--e-global-color-secondary, #f2ebde);

	max-width: 620px;
	margin: 34px auto 0;
	padding: 22px 22px 24px;
	background: var(--orev-cream);
	border-radius: 16px;
}

.orev-form-title {
	margin: 0 0 6px;
	font-size: 19px;
	line-height: 1.25;
	color: var(--orev-green);
}

.orev-form-note,
.orev-form-done {
	margin: 0 0 16px;
	font-size: 13px;
	line-height: 1.55;
	color: color-mix(in srgb, var(--orev-green) 72%, transparent);
}

.orev-form-done {
	margin: 0;
}

.orev-form {
	display: flex;
	flex-direction: column;
	gap: 11px;
}

/* --- star input ---------------------------------------------------------
   Radios are printed 5..1 so that `input:checked ~ label` can fill every
   star BELOW the chosen one, which is the only way to do this without JS.
   row-reverse then flips them back to reading 1..5 on screen. */

.orev-stars-input {
	display: flex;
	flex-direction: row-reverse;
	justify-content: flex-end;
	gap: 4px;
	margin: 0 0 2px;
	padding: 0;
	border: 0;
}

.orev-stars-input input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}

.orev-stars-input label {
	width: 26px;
	height: 26px;
	cursor: pointer;
	background: currentColor;
	color: color-mix(in srgb, var(--orev-green) 22%, transparent);
	-webkit-mask: var(--orev-star-mask) center / contain no-repeat;
	mask: var(--orev-star-mask) center / contain no-repeat;
	transition: color .15s ease;
}

.orev-stars-input {
	--orev-star-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.6l2.9 5.9 6.5.9-4.7 4.6 1.1 6.4-5.8-3-5.8 3 1.1-6.4L2.6 9.4l6.5-.9z'/%3E%3C/svg%3E");
}

.orev-stars-input input:checked ~ label,
.orev-stars-input label:hover,
.orev-stars-input label:hover ~ label {
	color: var(--orev-green);
}

.orev-stars-input input:focus-visible + label {
	outline: 2px solid var(--orev-green);
	outline-offset: 2px;
}

/* --- fields -------------------------------------------------------------- */

.orev-input {
	width: 100%;
	padding: 11px 13px;
	background: #fff;
	border: 1px solid color-mix(in srgb, var(--orev-green) 22%, transparent);
	border-radius: 9px;
	font-family: inherit;
	font-size: 14px;
	color: var(--orev-green);
}

.orev-input:focus {
	outline: none;
	border-color: var(--orev-green);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--orev-green) 12%, transparent);
}

.orev-textarea {
	resize: vertical;
	min-height: 96px;
}

.orev-submit {
	align-self: flex-start;
	min-height: 44px;
	padding: 0 26px;
	background: var(--orev-green);
	color: var(--orev-cream);
	border: 0;
	border-radius: 999px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	transition: background-color .2s ease;
}

.orev-submit:hover:not(:disabled) {
	background: color-mix(in srgb, var(--orev-green) 82%, #000);
}

.orev-submit:disabled {
	opacity: .6;
	cursor: default;
}

.orev-alert {
	padding: 10px 13px;
	background: #fff;
	border: 1px solid #e2b8b2;
	border-radius: 9px;
	font-size: 13px;
	line-height: 1.5;
	color: #8c2f22;
}

.orev-alert[hidden] {
	display: none;
}

.orev-alert.is-success {
	border-color: #a9d3b3;
	color: var(--orev-green);
}

@media (prefers-reduced-motion: reduce) {
	.orev-stars-input label,
	.orev-submit {
		transition-duration: .01ms;
	}
}
