/* iNet Reviews. Variable names follow RichPlugins Business Reviews Bundle so old color settings can be pasted in. */

.irv {
	--font-family: Arial, Helvetica, sans-serif;
	--card-bg-color: #f5f5f5;
	--card-bg: var(--card-bg-color);
	--card-color: #333333;
	--card-br-color: #cccccc;
	--card-br: none;
	--card-radius: 12px;
	--card-shadow: none;
	--card-padding: 1em;
	--card-gap: 16px;
	--name-color: #154fc1;
	--name-fs: 15px;
	--text-fs: 15px;
	--time-color: #555555;
	--star-color: #fb8e28;
	--star-empty: #d6d6d6;
	--star-size: 20px;
	--head-star-color: var(--star-color);
	--head-btn-color: #0a6cff;
	--head-btn-txt-color: #ffffff;
	--head-scale-color: #333333;
	--head-name-color: var(--name-color);
	--head-card-bg: transparent;
	--head-img-size: 48px;
	--img-size: 44px;
	--text-line-height: 24px;
	--text-lines: 6;
	--reply-lines: 2;
	--slider-btn-color: #555555;
	--slider-btn-bg: #ffffff;
	--slider-dot-color: #999999;
	--slider-act-dot-color: #fb8e28;
	--readmore-color: #136aaf;
	--g-logo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%23FFC107' d='M43.6 20.1H42V20H24v8h11.3C33.7 32.7 29.2 36 24 36c-6.6 0-12-5.4-12-12s5.4-12 12-12c3.1 0 5.8 1.2 7.9 3.1l5.7-5.7C34 6.1 29.3 4 24 4 13 4 4 13 4 24s9 20 20 20 20-9 20-20c0-1.3-.1-2.6-.4-3.9z'/%3E%3Cpath fill='%23FF3D00' d='M6.3 14.7l6.6 4.8C14.7 15.1 19 12 24 12c3.1 0 5.8 1.2 7.9 3.1l5.7-5.7C34 6.1 29.3 4 24 4 16.3 4 9.7 8.3 6.3 14.7z'/%3E%3Cpath fill='%234CAF50' d='M24 44c5.2 0 9.9-2 13.4-5.2l-6.2-5.2C29.2 35.1 26.7 36 24 36c-5.2 0-9.6-3.3-11.3-8l-6.5 5C9.5 39.6 16.2 44 24 44z'/%3E%3Cpath fill='%231976D2' d='M43.6 20.1H42V20H24v8h11.3c-.8 2.2-2.2 4.2-4.1 5.6l6.2 5.2C37 39.2 44 34 44 24c0-1.3-.1-2.6-.4-3.9z'/%3E%3C/svg%3E");
	--fb-logo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='12' fill='%231877F2'/%3E%3Cpath fill='%23fff' d='M13.3 19v-6.2h2.1l.3-2.4h-2.4V8.8c0-.7.2-1.2 1.2-1.2h1.3V5.5c-.2 0-1-.1-1.9-.1-1.9 0-3.1 1.1-3.1 3.2v1.8H8.7v2.4h2.1V19h2.5z'/%3E%3C/svg%3E");
	--yelp-logo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='12' fill='%23D32323'/%3E%3Cpath fill='%23fff' d='M10.6 5.2c.6-.2 2 .3 2.2.8l.4 5.9c0 .7-.8 1-1.2.4L8.9 7.1c-.3-.6.8-1.6 1.7-1.9zm-1.8 7.4l3 1c.6.2.6 1.1 0 1.3l-3.1 1c-.5.2-1-1-1-1.7s.5-1.8 1.1-1.6zm4.6 2.4l1.8 2.7c.4.5-.6 1.4-1.2 1.6-.6.2-1.5.2-1.5-.4l-.1-3.2c0-.6.7-.9 1-.7zm1.1-2.7l3.1-.9c.6-.2 1 1 1 1.7 0 .6-.6 1.6-1.1 1.5l-3-.9c-.6-.2-.6-1.2 0-1.4zm-.3-1.3l1.8-2.6c.4-.5 1.6.3 1.9.9.3.5.4 1.5-.2 1.6l-3 .8c-.6.2-1-.3-.5-.7z'/%3E%3C/svg%3E");
	--star-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 24'%3E%3Cpath d='M12 1.5l3.1 6.6 7.2.8-5.4 4.9 1.5 7.1L12 17.3l-6.4 3.6 1.5-7.1L1.7 8.9l7.2-.8z'/%3E%3C/svg%3E");
	--chev: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.3 5.3a1 1 0 0 1 1.4 0l6 6a1 1 0 0 1 0 1.4l-6 6a1 1 0 1 1-1.4-1.4L14.6 12 9.3 6.7a1 1 0 0 1 0-1.4z'/%3E%3C/svg%3E");
	--store: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Ccircle cx='24' cy='24' r='24' fill='%23fff'/%3E%3Cpath fill='%231a73e8' d='M11 13h26l3 8c0 2.2-1.8 4-4 4-1.6 0-3-.9-3.6-2.3-.7 1.4-2.1 2.3-3.7 2.3s-3-.9-3.7-2.3c-.7 1.4-2.1 2.3-3.7 2.3s-3-.9-3.7-2.3C17 24.1 15.6 25 14 25c-2.2 0-4-1.8-4-4l1-8zm2 13.6c.3.1.7.1 1 .1 1.3 0 2.6-.4 3.7-1.2 1 .7 2.3 1.2 3.7 1.2 1.3 0 2.6-.4 3.6-1.2 1 .7 2.3 1.2 3.7 1.2s2.6-.4 3.7-1.2c1 .7 2.3 1.2 3.6 1.2.3 0 .7 0 1-.1V36c0 1.1-.9 2-2 2H15c-1.1 0-2-.9-2-2v-9.4zm5 3.4v6h12v-6H18z'/%3E%3C/svg%3E");

	position: relative;
	display: block;
	box-sizing: border-box;
	max-width: 100%;
	min-width: 0;
	font-family: var(--font-family);
	font-size: var(--font-size, 16px);
	line-height: normal;
	text-align: start;
	color: var(--card-color);
	container-type: inline-size;
}
.irv *, .irv *::before, .irv *::after { box-sizing: border-box; }
.irv a { color: inherit; text-decoration: none; box-shadow: none; border: 0; }
.irv a:focus-visible, .irv button:focus-visible, .irv [tabindex]:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.irv button { font: inherit; }

/* ------------------------------------------------ shared pieces */

.irv-plat { display: inline-block; width: 16px; height: 16px; flex: 0 0 auto; background: var(--g-logo) center / contain no-repeat; vertical-align: middle; }
.irv-plat-facebook { background-image: var(--fb-logo); }
.irv-plat-yelp { background-image: var(--yelp-logo); }
.irv-plat-other { display: none; }

.irv-stars {
	--size: var(--star-size);
	display: inline-block;
	flex: 0 0 auto;
	width: calc(var(--size) * 5 * 28 / 24);
	height: var(--size);
	vertical-align: middle;
	background: linear-gradient(90deg, var(--star-color) calc(var(--rating, 5) / 5 * 100%), var(--star-empty) 0);
	-webkit-mask: var(--star-mask) left center / calc(var(--size) * 28 / 24) var(--size) repeat-x;
	mask: var(--star-mask) left center / calc(var(--size) * 28 / 24) var(--size) repeat-x;
}
.irv-stars-sm { --size: 18px; }

.irv-btn {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 5px 8px;
	border-radius: 8px;
	background: var(--head-btn-color);
	color: var(--head-btn-txt-color) !important;
	font-size: 13px;
	line-height: 1.25;
	white-space: nowrap;
	text-decoration: none !important;
	cursor: pointer;
	transition: filter .15s;
}
.irv-btn:hover { filter: brightness(1.1); }
.irv-btn .irv-plat { width: 15px; height: 15px; border-radius: 50%; background-color: #fff; background-size: 11px; }
.irv-btn-lg { padding: 12px 20px; font-size: 16px; border-radius: 10px; gap: 8px; }
.irv-btn-lg .irv-plat { width: 22px; height: 22px; background-size: 16px; }

.irv-biz { display: block; flex: 0 0 auto; width: var(--head-img-size); height: var(--head-img-size); border-radius: 50%; object-fit: cover; }
.irv-biz-icon { background: var(--store) center / contain no-repeat; box-shadow: 0 0 0 1px rgba(0, 0, 0, .06); }

.irv-grade { color: var(--head-star-color); font-weight: 900; font-size: 1.125em; }
.irv-head-grade { display: flex; align-items: center; gap: 6px; --star-color: var(--head-star-color); }
.irv-based { color: var(--time-color); font-size: .85em; }

/* ------------------------------------------------ header (business summary) */

.irv-head { flex: 0 0 auto; }
.irv-head-card { position: relative; display: flex; flex-direction: column; gap: 10px; padding: 1em; border-radius: var(--card-radius); background: var(--head-card-bg); }
.irv-head-card > .irv-logos { position: absolute; top: .75em; right: .75em; display: flex; gap: 4px; }
.irv-head-main { display: flex; align-items: center; gap: 12px; }
.irv-head-info { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.irv-scale { color: var(--head-scale-color); font-weight: 700; text-transform: uppercase; font-size: .95em; }
.irv-head-name { color: var(--head-name-color) !important; font-weight: 700; font-size: 1em; line-height: 1.3; }
.irv-head-btns { display: flex; flex-wrap: wrap; gap: 6px; }
.irv-head-center .irv-head-main { flex-direction: column; text-align: center; }
.irv-head-center .irv-head-info { align-items: center; }
.irv-head-center .irv-head-btns { justify-content: center; }

/* ------------------------------------------------ review card */

.irv-card { min-width: 0; }
.irv-card-in {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 8px;
	height: 100%;
	padding: var(--card-padding);
	border: var(--card-br);
	border-color: var(--card-br-color);
	border-radius: var(--card-radius);
	background: var(--card-bg);
	box-shadow: var(--card-shadow);
	color: var(--card-color);
}
.irv-card-plat { position: absolute; top: .75em; right: .75em; }
.irv-meta { display: flex; align-items: center; gap: 10px; padding-right: 20px; }
.irv-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.irv-name { color: var(--name-color) !important; font-weight: 700; font-size: var(--name-fs); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.irv-time { color: var(--time-color); font-size: .75em; }
.irv-info .irv-stars { margin-top: 4px; }

.irv-ava-wrap { position: relative; flex: 0 0 auto; width: var(--img-size); height: var(--img-size); }
.irv-ava { display: flex; align-items: center; justify-content: center; width: var(--img-size); height: var(--img-size); min-width: var(--img-size); border-radius: 50%; object-fit: cover; color: #fff; font-size: calc(var(--img-size) * .45); font-weight: 500; }
.irv-ava-wrap img.irv-ava { position: absolute; inset: 0; z-index: 1; margin: 0; padding: 0; }
.irv-ava-err img.irv-ava { display: none; }

.irv-card-body { display: flex; flex-direction: column; gap: 8px; min-height: 0; }
.irv-text, .irv-reply { font-size: var(--text-fs); line-height: var(--text-line-height); overflow-y: auto; overflow-x: hidden; overflow-wrap: anywhere; scrollbar-width: thin; }
.irv-text { max-height: calc(var(--text-lines) * var(--text-line-height)); }
.irv-reply { max-height: calc(var(--reply-lines) * var(--text-line-height)); padding-left: 6px; margin-left: 6px; border-left: 1px solid #999; color: var(--time-color); font-size: 14px; }
.irv-reply b { margin-right: 4px; }

/* equal-height slider cards: text + reply share the space */
.irv-slider .irv-card-body { height: calc(var(--text-lines) * var(--text-line-height)); }
.irv-slider .irv-card-body:has(.irv-reply) .irv-text { max-height: calc((var(--text-lines) - var(--reply-lines)) * var(--text-line-height) - 8px); }

/* ------------------------------------------------ slider */

.irv-slider .irv-wrap { display: flex; flex-direction: column; gap: 8px; }
@container (min-width: 760px) {
	.irv-slider .irv-wrap { flex-direction: row; align-items: center; }
	.irv-slider .irv-head { width: 25%; max-width: 280px; }
}
.irv-body { position: relative; flex: 1 1 auto; min-width: 0; padding: 0 22px 22px; }
.irv-track {
	--cols: 1;
	display: flex;
	gap: var(--card-gap);
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	padding: 2px;
}
.irv-track::-webkit-scrollbar { display: none; }
.irv-track > .irv-card { flex: 0 0 calc((100% - (var(--cols) - 1) * var(--card-gap)) / var(--cols)); scroll-snap-align: start; }
@container (min-width: 520px) { .irv-track { --cols: 2; } }
@container (min-width: 900px) { .irv-track { --cols: 3; } }
@container (min-width: 1250px) { .irv-track { --cols: 4; } }

.irv-nav {
	position: absolute;
	top: calc(50% - 11px);
	z-index: 2;
	width: 30px;
	height: 30px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--slider-btn-bg);
	box-shadow: 0 0 4px rgba(0, 0, 0, .25);
	cursor: pointer;
	transform: translateY(-50%);
}
.irv-nav::before { content: ""; display: block; width: 16px; height: 16px; margin: auto; background: var(--slider-btn-color); -webkit-mask: var(--chev) center / contain no-repeat; mask: var(--chev) center / contain no-repeat; }
.irv-prev { left: 0; }
.irv-prev::before { transform: rotate(180deg); }
.irv-next { right: 0; }
.irv-nav[disabled] { opacity: .35; cursor: default; }
.irv-dots { position: absolute; left: 0; right: 0; bottom: 2px; display: flex; justify-content: center; gap: 6px; }
.irv-dot { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: var(--slider-dot-color); opacity: .45; cursor: pointer; transition: transform .2s, opacity .2s; }
.irv-dot.is-active { background: var(--slider-act-dot-color); opacity: 1; transform: scale(1.15); }

/* ------------------------------------------------ grid + list */

.irv-grid .irv-wrap, .irv-list .irv-wrap, .irv-panel .irv-wrap { display: flex; flex-direction: column; gap: var(--card-gap); }
.irv-grid .irv-items { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--card-gap); }
.irv-list .irv-items { display: flex; flex-direction: column; gap: var(--card-gap); }
.irv-list .irv-text { max-height: none; }
.irv-later { display: none; }
.irv-more-wrap { text-align: center; }
.irv-more { padding: 10px 18px; border: 1px solid var(--card-br-color); border-radius: 8px; background: var(--card-bg); color: var(--card-color); cursor: pointer; }

/* ------------------------------------------------ floating badge */

.irv-fab {
	position: fixed;
	bottom: 16px;
	z-index: 99990;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 14px;
	border: 0;
	border-top: 3px solid #4caf50;
	border-radius: 6px;
	background: #fff;
	color: #333;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .2);
	text-align: left;
	cursor: pointer;
}
.irv-fab-left { left: 16px; }
.irv-fab-right { right: 16px; }
.irv-fab > .irv-plat { width: 30px; height: 30px; }
.irv-badge-txt { display: flex; flex-direction: column; gap: 2px; }
.irv-badge-label { font-weight: 700; font-size: 14px; }
.irv-fab .irv-stars { --size: 16px; }
.irv-panel { position: fixed; top: 0; bottom: 0; z-index: 99999; width: min(400px, 100vw); overflow-y: auto; padding: 16px; background: #fff; box-shadow: 0 0 20px rgba(0, 0, 0, .3); }
.irv-panel[hidden] { display: none; }
.irv-panel-left { left: 0; }
.irv-panel-right { right: 0; }
.irv-panel-close { position: sticky; top: 0; float: right; z-index: 2; width: 32px; height: 32px; border: 0; border-radius: 50%; background: #eee; font-size: 22px; line-height: 1; cursor: pointer; }
.irv-panel .irv-text { max-height: none; }

/* ------------------------------------------------ leave a review panel */

.irv-leave-in { display: flex; flex-direction: column; align-items: center; gap: 12px; max-width: 560px; margin: 0 auto; padding: 32px 24px; border-radius: var(--card-radius); background: var(--card-bg); color: var(--card-color); text-align: center; box-shadow: var(--card-shadow); }
.irv-leave .irv-biz { --head-img-size: 64px; }
.irv-leave-name { font-size: 1.3em; font-weight: 700; color: var(--head-name-color); }
.irv-leave-grade { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; --star-color: var(--head-star-color); }
.irv-leave-title { margin-top: 8px; font-size: 1.5em; font-weight: 700; }
.irv-leave-text { margin: 0; line-height: 1.5; }
.irv-pick { display: flex; gap: 6px; }
.irv-pick-star { display: block; width: 46px; height: 46px; background: var(--star-color); -webkit-mask: var(--star-mask) left center / 53px 46px no-repeat; mask: var(--star-mask) left center / 53px 46px no-repeat; transition: transform .12s; }
.irv-pick:hover .irv-pick-star { background: var(--star-color); }
.irv-pick:hover .irv-pick-star:hover ~ .irv-pick-star { background: var(--star-empty); }
.irv-pick-star:hover { transform: scale(1.12); }
.irv-leave-btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.irv-leave-all { color: var(--name-color) !important; text-decoration: underline !important; font-size: .9em; }
.irv-missing { padding: 8px; border: 1px dashed #c00; color: #c00; font-size: 13px; }
