/* ================================================================
   WP Smart Reviews Pro v4 — public styles
   Namespaced .wsrp-* only. Colors match site system:
   #1a1a1a buttons/icons · #555555 body text · white bg
   NO WhatsApp green (#25D366) — reserved site-wide.
   ================================================================ */

.wsrp-root{
	--wsrp-ink:#1a1a1a;
	--wsrp-body:#555555;
	--wsrp-line:#e6e6e6;
	--wsrp-soft:#f7f7f5;
	--wsrp-star:#F5A623;
	--wsrp-ok:#1a7f37;

	contain:layout;
	isolation:isolate;
	min-width:0;
	box-sizing:border-box;
	display:block;
	width:100%;
	max-width:100%;
	color:var(--wsrp-body);
	font-family:"DM Sans", sans-serif;
	font-size:14.5px;
	line-height:1.6;
	background:transparent;
}
.wsrp-root *, .wsrp-root *::before, .wsrp-root *::after{ box-sizing:inherit; min-width:0; }
.wsrp-root h2,.wsrp-root h3{ font-family:'Playfair Display',serif; color:var(--wsrp-ink); margin:18px 0 6px; line-height:1.3; }
.wsrp-h2{ font-size:clamp(20px,2.4vw,26px); font-weight:600; }
.wsrp-h3{ font-size:17px; font-weight:600; }
.wsrp-muted{ color:var(--wsrp-body); margin:0 0 12px; }
.wsrp-divider{ border:0; border-top:1px solid var(--wsrp-line); margin:18px 0; }
.wsrp-link{ background:none;border:0;padding:0;cursor:pointer;color:var(--wsrp-ink);font-weight:600;text-decoration:underline;font-size:13.5px; }
.wsrp-aggr-hidden{ display:none; }
.wsrp-agg-sentence{ margin:0 0 14px; font-size:14px; color:var(--wsrp-body); }

/* ---------- layout: showcase two columns ---------- */
.wsrp-showcase{
	display:grid;
	grid-template-columns:minmax(300px,360px) 1fr;
	gap:clamp(24px,4vw,48px);
	align-items:start;
	max-width:1200px;
	margin:0 auto;
	padding:10px 0 20px;
}

/* ---------- left: summary ---------- */
.wsrp-summary{ background:#fff; border:1px solid var(--wsrp-line); border-radius:9px; padding:clamp(18px,2.4vw,28px); position:sticky; top:16px; }
.wsrp-avg{ font-family:"Fraunces",Georgia,serif; font-size:52px; font-weight:600; color:#f15b27; line-height:1.05; margin:2px 0 4px; }
.wsrp-based{ margin:4px 0 14px; color:#9a9a9a; font-size:14px; }
.wsrp-stars{ display:inline-flex; gap:2px; vertical-align:middle; }

.wsrp-bars{ list-style:none; margin:6px 0 0; padding:0; display:grid; gap:8px; }
.wsrp-bar-filter{
	display:flex; align-items:center; gap:10px; width:100%;
	background:none; border:0; padding:2px 0; margin:0; cursor:pointer;
	font:inherit; color:var(--wsrp-ink); font-size:13px; text-align:left;
}
.wsrp-bar-filter:hover .wsrp-bar-fill{ background:#f79421; }
.wsrp-bar-filter.wsrp-active .wsrp-bar-fill{ background:var(--wsrp-ink); }
.wsrp-bar-label{ flex:0 0 46px; }
.wsrp-bar-track{ flex:1 1 auto; height:8px; background:#f0f0ee; border-radius:99px; overflow:hidden; }
.wsrp-bar-fill{ display:block; height:100%; background:#f15b27; border-radius:99px; transition:background .15s ease; }
.wsrp-bar-pct{ flex:0 0 40px; text-align:right; color:var(--wsrp-body); }

/* ---------- buttons ---------- */
.wsrp-btn{
	display:inline-flex; align-items:center; justify-content:center; gap:8px;
	padding:11px 22px; margin:6px 0 0; cursor:pointer;
	font:inherit; font-size:14px; font-weight:600; line-height:1.2;
	text-decoration:none; border-radius:6px; border:1px solid transparent;
	transition:transform .1s ease, background .15s ease;
}
.wsrp-btn:active{ transform:scale(.98); }
.wsrp-btn-dark{ background:#fff; color:#E66F48; border-color:#FF4000; }
.wsrp-btn-dark:hover{ background:#E66F48; color:#fff; }
.wsrp-btn[disabled]{ opacity:.55; cursor:not-allowed; }

/* ---------- right: gallery ---------- */
.wsrp-head-row{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin:0 0 12px; flex-wrap:wrap; }
.wsrp-gallery{ margin:0 0 22px; }
.wsrp-photo-grid{ display:grid; grid-template-columns:repeat(var(--wsrp-gcols,6),1fr); gap:8px; }
.wsrp-photo-tile{
	position:relative; display:block; aspect-ratio:1/1; padding:0; margin:0;
	background:var(--wsrp-soft); border:1px solid var(--wsrp-line); border-radius:8px;
	overflow:hidden; cursor:pointer;
}
.wsrp-photo-tile img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.wsrp-photo-more{
	position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
	background:rgba(26,26,26,.62); color:#fff; font-size:20px; font-weight:700;
}

/* ---------- toolbar ---------- */
.wsrp-toolbar{ display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin:0 0 16px; }
.wsrp-controls{ display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.wsrp-ctl{ display:flex; flex-direction:column; gap:4px; font-size:11.5px; font-weight:700; letter-spacing:.03em; color:var(--wsrp-body); }
.wsrp-ctl select{
	font:inherit; font-size:13px; font-weight:500; color:var(--wsrp-ink);
	padding:8px 30px 8px 10px; border:1px solid var(--wsrp-line); border-radius:6px; background:#fff;
	max-width:200px;
}
.wsrp-sheet-btn{ display:none; }

/* ---------- cards ---------- */
.wsrp-cards{ display:grid; gap:14px; }
.wsrp-card{
	background:#fff; border:1px solid var(--wsrp-line); border-radius:12px;
	padding:clamp(16px,2vw,22px);
}
.wsrp-card-head{ display:flex; gap:12px; align-items:center; margin:0 0 10px; }
.wsrp-avatar{
	flex:0 0 auto; width:42px; height:42px; border-radius:50%; overflow:hidden;
	background:var(--wsrp-ink); color:#fff;
	display:inline-flex; align-items:center; justify-content:center;
	font-size:15px; font-weight:700; letter-spacing:.02em;
}
.wsrp-avatar-img{ width:100%; height:100%; object-fit:cover; display:block; }
.wsrp-name{ display:block; font-size:14.5px; color:var(--wsrp-ink); }
.wsrp-meta-line{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:2px; }
.wsrp-verified{ display:inline-flex; align-items:center; gap:4px; font-size:12px; font-weight:600; color:var(--wsrp-ok); }
.wsrp-date{ font-size:12px; color:#9a9a9a; }
.wsrp-title{ margin:0 0 6px; font-family:"Work Sans",sans-serif; font-size:15px; font-weight:700; color:var(--wsrp-ink); }
.wsrp-body{ font-size:14px; color:var(--wsrp-body); }
.wsrp-body p{ margin:0 0 8px; }
.wsrp-card-photos{ display:flex; gap:8px; flex-wrap:wrap; margin:10px 0 2px; }
.wsrp-card-photo{
	padding:0; margin:0; width:90px; height:90px; border:1px solid var(--wsrp-line);
	border-radius:8px; overflow:hidden; cursor:zoom-in; background:var(--wsrp-soft);
}
.wsrp-card-photo img{ width:100%; height:100%; object-fit:cover; display:block; }

.wsrp-card-foot{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:12px; }
.wsrp-vote{
	display:inline-flex; align-items:center; gap:5px; padding:6px 10px; margin:0;
	background:#fff; border:1px solid var(--wsrp-line); border-radius:99px;
	font:inherit; font-size:12.5px; color:var(--wsrp-ink); cursor:pointer;
	transition:border-color .15s ease, background .15s ease;
}
.wsrp-vote:hover{ border-color:var(--wsrp-ink); }
.wsrp-vote.wsrp-voted{ background:var(--wsrp-ink); color:#fff; border-color:var(--wsrp-ink); }
.wsrp-share{
	display:inline-flex; padding:6px; margin:0 0 0 auto; background:none; border:0;
	color:var(--wsrp-body); cursor:pointer;
}
.wsrp-share:hover{ color:var(--wsrp-ink); }

/* ---------- business reply ---------- */
.wsrp-reply{
	margin:14px 0 0; padding:14px 16px;
	background:var(--wsrp-soft); border-left:3px solid var(--wsrp-ink); border-radius:0 10px 10px 0;
}
.wsrp-reply-head{ display:flex; align-items:center; gap:10px; margin:0 0 8px; }
.wsrp-reply-head .wsrp-avatar{ width:30px; height:30px; font-size:12px; }
.wsrp-reply-head strong{ font-size:13.5px; color:var(--wsrp-ink); display:block; }

/* ---------- load more ---------- */
.wsrp-more-row{ display:flex; justify-content:center; margin:18px 0 0; }
.wsrp-empty{ padding:26px; text-align:center; background:var(--wsrp-soft); border-radius:12px; }

/* ---------- teaser (homepage) ---------- */
.wsrp-teaser{ max-width:1200px; margin:0 auto; }
.wsrp-teaser-row{
	display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
	gap:12px;
}
.wsrp-teaser-card{
	display:flex; gap:12px; align-items:center; padding:14px;
	background:#fff; border:1px solid var(--wsrp-line); border-radius:12px;
	text-decoration:none; color:var(--wsrp-body);
	transition:border-color .15s ease, box-shadow .15s ease;
}
.wsrp-teaser-card:hover{ border-color:var(--wsrp-ink); box-shadow:0 6px 18px rgba(0,0,0,.06); color:var(--wsrp-body); }
.wsrp-teaser-photo{ flex:0 0 auto; width:56px; height:56px; border-radius:10px; overflow:hidden; background:var(--wsrp-soft); }
.wsrp-teaser-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.wsrp-teaser-photo .wsrp-avatar{ width:100%; height:100%; border-radius:0; }
.wsrp-teaser-rating{ font-size:12px; font-weight:700; color:var(--wsrp-ink); }
.wsrp-teaser-title{
	display:block; font-size:13px; font-weight:600; color:var(--wsrp-ink); margin-top:2px;
	overflow:hidden; white-space:nowrap; text-overflow:ellipsis; max-width:170px;
}

/* ---------- modal (write review) ---------- */
.wsrp-modal{
	position:fixed; inset:0; z-index:99990;
	display:flex; align-items:center; justify-content:center; padding:16px;
	background:rgba(26,26,26,.55);
}
.wsrp-modal[hidden]{ display:none !important; }
.wsrp-modal-card{
	position:relative; width:100%; max-width:560px; max-height:90vh; overflow:auto;
	background:#fff; border-radius:14px; padding:clamp(20px,3vw,30px);
}
.wsrp-modal-close{
	position:absolute; top:10px; right:12px; padding:4px 8px;
	background:none; border:0; font-size:26px; line-height:1; color:var(--wsrp-body); cursor:pointer;
}
.wsrp-form{ display:grid; gap:14px; margin-top:14px; }
.wsrp-field label, .wsrp-rate-field legend{ display:block; margin:0 0 5px; font-size:13px; font-weight:600; color:var(--wsrp-ink); }
.wsrp-field input:not([type=checkbox]):not([type=file]), .wsrp-field textarea{
	width:100%; padding:10px 12px; font:inherit; font-size:14px; color:var(--wsrp-ink);
	border:1px solid var(--wsrp-line); border-radius:6px; background:#F7F5F2;
}
.wsrp-field input:focus, .wsrp-field textarea:focus{ outline:2px solid var(--wsrp-ink); outline-offset:1px; border-color:var(--wsrp-ink); }
.wsrp-field textarea{ resize:vertical; }
.wsrp-hp{ position:absolute !important; left:-9999px !important; top:-9999px !important; height:1px; width:1px; overflow:hidden; }
.wsrp-rate-field{ border:0; padding:0; margin:0; }
.wsrp-rate-input{ display:flex; flex-direction:row-reverse; justify-content:flex-end; gap:4px; }
.wsrp-rate-input input{ position:absolute; opacity:0; width:1px; height:1px; }
.wsrp-rate-input label{ cursor:pointer; margin:0; }
.wsrp-rate-input label svg{ fill:#dfe2e8; transition:fill .1s ease; display:block; }
.wsrp-rate-input input:checked ~ label svg,
.wsrp-rate-input label:hover svg,
.wsrp-rate-input label:hover ~ label svg{ fill:var(--wsrp-star); }
.wsrp-consent{ margin:0; font-size:12.5px; }
.wsrp-form-msg{ font-size:13.5px; font-weight:600; margin:0; min-height:1em; }
.wsrp-form-msg.wsrp-error{ color:#b3261e; }
.wsrp-form-msg.wsrp-success{ color:var(--wsrp-ok); }

/* ---------- lightbox ---------- */
.wsrp-lightbox{
	position:fixed; inset:0; z-index:99995;
	display:flex; align-items:center; justify-content:center; gap:10px;
	background:rgba(20,20,20,.92); padding:20px;
}
.wsrp-lightbox[hidden]{ display:none !important; }
.wsrp-lb-figure{ margin:0; max-width:min(860px,92vw); text-align:center; }
.wsrp-lb-img{ max-width:100%; max-height:82vh; width:auto; height:auto; border-radius:10px; display:block; margin:0 auto; }
.wsrp-lb-cap{ color:#ddd; font-size:13px; margin-top:10px; }
.wsrp-lb-close, .wsrp-lb-prev, .wsrp-lb-next{
	background:rgba(255,255,255,.12); color:#fff; border:0; border-radius:50%;
	width:42px; height:42px; font-size:22px; line-height:1; cursor:pointer; flex:0 0 auto;
}
.wsrp-lb-close:hover, .wsrp-lb-prev:hover, .wsrp-lb-next:hover{ background:rgba(255,255,255,.25); }
.wsrp-lb-close{ position:absolute; top:16px; right:16px; }

/* ---------- responsive ---------- */
@media (max-width:1024px){
	.wsrp-showcase{ grid-template-columns:1fr; }
	.wsrp-summary{ position:static; }
	.wsrp-photo-grid{ grid-template-columns:repeat(4,1fr); }
}
@media (max-width:640px){
	.wsrp-photo-grid{ grid-template-columns:repeat(3,1fr); }
	.wsrp-toolbar{ flex-direction:column; align-items:stretch; }
	.wsrp-sheet-btn{ display:inline-flex; }
	.wsrp-controls{
		display:none; position:initial; left:0; right:0; bottom:0; z-index:99992;
		flex-direction:column; align-items:stretch; gap:14px;
		background:#fff; padding:20px 18px 26px; border-radius:16px 16px 0 0;
		box-shadow:0 -8px 30px rgba(0,0,0,.18);
	}
	.wsrp-controls.wsrp-open{ display:flex; }
	.wsrp-ctl select{ max-width:none; width:100%; }
	.wsrp-card{ padding:14px; }
	.wsrp-avg{ font-size:44px; }
}
@media (prefers-reduced-motion:reduce){
	.wsrp-root *{ transition:none !important; }
}
