/* Google Reviews B4 — scoped component styles. Mobile-first: 1 / 2 / 4 columns. */
.gs-reviews-b {
	--gs-content-width: 1216px;
	--gs-gutter: 18px;
	--gs-section-top: 12px;
	--gs-section-bottom: 24px;
	--gs-grid-gap: 14px;
	--gs-card-padding: 8px;
	--gs-card-radius: 14px;
	--gs-image-radius: 10px;
	--gs-image-ratio: 1.8;
	--gs-ink: #171b2d;
	--gs-gold: #986008;
	--gs-star: #ffb400;
	--gs-background: #faf6ef;
	--gs-placeholder: #f4eee5;
	--gs-white: #fff;
	--gs-button-top: #9e691b;
	--gs-button-bottom: #8d5507;
	--gs-button-border: #b47a24;
	--gs-avatar-blue: #45677e;
	--gs-avatar-pink: #c60960;
	--gs-avatar-third: #177ab5;
	--gs-avatar-empty: #b29b7c;
	--gs-placeholder-ink: #786e61;
	--gs-focus: #235a86;
	--gs-font: inherit;
	--gs-heading-font: Georgia, 'Times New Roman', serif;
	--gs-title-size: clamp(26px, 2.4vw, 36px);
	--gs-text-size: 14px;
	--gs-link-size: 12px;
	--gs-shadow: 0 5px 16px rgb(58 41 17 / 5%);
	--gs-button-gap: 16px;
	--gs-actions-top: 20px;
	--gs-wave-opacity: .4;
	position: relative;
	isolation: isolate;
	container: gsreviewsb / inline-size;
	box-sizing: border-box;
	width: 100%;
	padding: var(--gs-section-top) var(--gs-gutter) var(--gs-section-bottom);
	color: var(--gs-ink);
	background: radial-gradient(ellipse at 7% 70%, #f3e9db 0, transparent 32%), radial-gradient(ellipse at 95% 30%, #f1e6d6 0, transparent 35%), var(--gs-background);
	font-family: var(--gs-font);
	font-size: var(--gs-text-size);
	line-height: 1.35;
}
.gs-reviews-b *, .gs-reviews-b *::before, .gs-reviews-b *::after,
.gs-reviews-b__modal *, .gs-reviews-b__modal *::before, .gs-reviews-b__modal *::after { box-sizing: border-box; }
.gs-reviews-b::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	opacity: var(--gs-wave-opacity);
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1672 450' preserveAspectRatio='none'%3E%3Cpath d='M0 300C120 225 145 425 290 365S480 315 700 390S1030 310 1210 285S1440 160 1530 265S1605 375 1672 400V450H0Z' fill='%23eadbc6' fill-opacity='.3'/%3E%3Cpath d='M0 300C120 225 145 425 290 365M1280 300C1450 250 1480 170 1560 290S1630 365 1672 400' fill='none' stroke='%23e4cda9' stroke-width='1'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}
.gs-reviews-b .gs-reviews-b__inner { width: 100%; max-width: var(--gs-content-width); margin-inline: auto; }
.gs-reviews-b .gs-reviews-b__title {
	margin: 0 0 8px;
	padding: 0;
	color: var(--gs-ink);
	font-family: var(--gs-heading-font);
	font-size: var(--gs-title-size);
	font-weight: 400;
	line-height: 1.2;
	text-align: center;
	text-transform: none;
	letter-spacing: normal;
}
.gs-reviews-b .gs-reviews-b__title > span { color: var(--gs-gold); }
.gs-reviews-b .gs-reviews-b__summary { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 20px; margin: 0 0 8px; }
.gs-reviews-b .gs-reviews-b__badge { display: flex; align-items: center; justify-content: center; gap: 5px; min-height: 32px; padding: 3px 17px; border-radius: 99px; background: var(--gs-white); box-shadow: 0 2px 10px rgb(38 29 18 / 10%); font-size: 16px; font-weight: 600; }
.gs-reviews-b .gs-reviews-b__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--gs-grid-gap); }
.gs-reviews-b .gs-reviews-b__card { display: flex; flex-direction: column; min-width: 0; margin: 0; padding: var(--gs-card-padding); border: 0; border-radius: var(--gs-card-radius); background: var(--gs-white); box-shadow: var(--gs-shadow); }

/* Entire photo + review-preview region is the local detail trigger. */
.gs-reviews-b .gs-reviews-b__expand {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-width: 0;
	border-radius: var(--gs-image-radius);
	cursor: pointer;
	outline: none;
	transition: transform .16s ease, background-color .16s ease, box-shadow .16s ease;
}
.gs-reviews-b .gs-reviews-b__expand:hover { transform: translateY(-1px); background: rgb(250 246 239 / 28%); box-shadow: 0 4px 12px rgb(57 41 25 / 5%); }
.gs-reviews-b .gs-reviews-b__expand:hover .gs-reviews-b__photo img { transform: scale(1.012); }
.gs-reviews-b .gs-reviews-b__expand:focus-visible { outline: 3px solid var(--gs-focus); outline-offset: 3px; }

.gs-reviews-b .gs-reviews-b__photo { display: block; flex: none; width: 100%; aspect-ratio: var(--gs-image-ratio); overflow: hidden; border-radius: var(--gs-image-radius); background: var(--gs-placeholder); }
.gs-reviews-b .gs-reviews-b__photo img { display: block; width: 100%; height: 100%; max-width: 100%; margin: 0; padding: 0; border: 0; border-radius: inherit; object-fit: cover; transition: transform .18s ease; }
.gs-reviews-b .gs-reviews-b__photo--empty { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 4px; padding: 8px; color: var(--gs-placeholder-ink); background: radial-gradient(ellipse, #fbf8f2, var(--gs-placeholder)); font-size: 12px; text-align: center; }
.gs-reviews-b .gs-reviews-b__photo--empty svg { width: 48px; height: 48px; fill: none; stroke: var(--gs-gold); stroke-width: 1.1; }
.gs-reviews-b .gs-reviews-b__photo--empty svg > circle:first-child { stroke: #dcc5a4; }

/* Header stays centered; review copy below uses nearly the full card width. */
.gs-reviews-b .gs-reviews-b__body { min-width: 0; padding: 7px 3px 0; }
.gs-reviews-b .gs-reviews-b__review-head { position: relative; display: flex; min-height: 40px; align-items: flex-start; justify-content: center; padding: 0 40px 2px; }
.gs-reviews-b .gs-reviews-b__review-meta { min-width: 0; text-align: center; }
.gs-reviews-b .gs-reviews-b__avatar { position: absolute; top: 0; left: 0; display: flex; width: 36px; height: 36px; align-items: center; justify-content: center; border-radius: 50%; background: var(--gs-avatar-blue); color: var(--gs-white); font-size: 22px; font-weight: 400; }
.gs-reviews-b .gs-reviews-b__card:nth-child(2) .gs-reviews-b__avatar { background: var(--gs-avatar-pink); }
.gs-reviews-b .gs-reviews-b__card:nth-child(3) .gs-reviews-b__avatar { background: var(--gs-avatar-third); }
.gs-reviews-b .gs-reviews-b__card .gs-reviews-b__avatar--empty { background: var(--gs-avatar-empty); }
.gs-reviews-b .gs-reviews-b__author { margin: 2px 0 0; padding: 0; color: var(--gs-ink); font-family: inherit; font-size: var(--gs-text-size); font-weight: 600; line-height: 1.2; text-align: center; letter-spacing: normal; text-transform: none; overflow-wrap: anywhere; }
.gs-reviews-b .gs-reviews-b__rating { display: flex; justify-content: center; vertical-align: middle; }
.gs-reviews-b .gs-reviews-b__stars { display: inline-block; position: relative; color: #b8b2a8; font-family: Arial, sans-serif; font-size: 20px; line-height: 1.15; white-space: nowrap; letter-spacing: -1px; }
.gs-reviews-b .gs-reviews-b__stars-fill { position: absolute; top: 0; left: 0; overflow: hidden; color: var(--gs-star); }
.gs-reviews-b .gs-reviews-b__badge .gs-reviews-b__stars { font-size: 25px; }
.gs-reviews-b .gs-reviews-b__text { width: 100%; margin: 3px 0 0; padding: 0 2px; font-size: var(--gs-text-size); line-height: 1.22; white-space: pre-line; overflow-wrap: anywhere; }
.gs-reviews-b .gs-reviews-b__text--empty { margin-top: 6px; }
.gs-reviews-b .gs-reviews-b__more { color: var(--gs-gold); font-weight: 700; white-space: nowrap; }

.gs-reviews-b .gs-reviews-b__attribution { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 6px; margin-top: auto; padding: 5px 8px 2px; background: transparent; }
.gs-reviews-b .gs-reviews-b__google-mark { display: block; width: 20px; height: 20px; }
.gs-reviews-b .gs-reviews-b__google-label { display: block; font-size: 11px; font-weight: 500; line-height: 1.15; }
.gs-reviews-b .gs-reviews-b__review-link { display: inline-block; color: var(--gs-gold); font-size: 11px; font-weight: 600; line-height: 1.25; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.gs-reviews-b .gs-reviews-b__actions { display: flex; flex-direction: column; align-items: stretch; justify-content: center; gap: var(--gs-button-gap); margin-top: var(--gs-actions-top); }
.gs-reviews-b .gs-reviews-b__button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: 8px; padding: 10px 25px; border: 1px solid var(--gs-gold); border-radius: 99px; color: var(--gs-gold); background: transparent; font-family: inherit; font-size: var(--gs-link-size); font-weight: 600; line-height: 1.4; text-align: center; text-decoration: none; box-shadow: none; transition: transform .15s ease, background-color .15s ease, color .15s ease, border-color .15s ease, filter .15s ease, box-shadow .15s ease; }
.gs-reviews-b .gs-reviews-b__button--primary { border-color: var(--gs-button-border); color: var(--gs-white); background: linear-gradient(160deg, var(--gs-button-top), var(--gs-button-bottom)); }
.gs-reviews-b .gs-reviews-b__button--primary::before { content: '★'; font-size: 23px; line-height: 1; }
.gs-reviews-b .gs-reviews-b__button:hover { transform: translateY(-1px); filter: brightness(.94); text-decoration: none; }
.gs-reviews-b .gs-reviews-b__button--primary:hover { color: var(--gs-white); box-shadow: 0 4px 12px rgb(91 57 10 / 18%); }
.gs-reviews-b .gs-reviews-b__button--secondary:hover { color: #6a4105; background: var(--gs-white); }
.gs-reviews-b .gs-reviews-b__review-link:hover { color: #6a4105; text-decoration-thickness: 2px; }
.gs-reviews-b a:focus-visible { outline: 3px solid var(--gs-focus); outline-offset: 4px; }
.gs-reviews-b .gs-reviews-b__sr, .gs-reviews-b__modal .gs-reviews-b__sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

/* Modal is moved under <body> by JS so transformed page-builder ancestors cannot pin it to the section/footer. */
.gs-reviews-b__modal {
	--gs-ink: #171b2d;
	--gs-star: #ffb400;
	--gs-white: #fff;
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(20px, 4vh, 36px);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .22s ease, visibility .22s ease;
	font-family: inherit;
}
.gs-reviews-b__modal[hidden] { display: none; }
.gs-reviews-b__modal.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
.gs-reviews-b__modal-backdrop { position: absolute; inset: 0; background: rgb(17 16 15 / 0%); cursor: zoom-out; transition: background-color .24s ease; }
.gs-reviews-b__modal.is-open .gs-reviews-b__modal-backdrop { background: rgb(17 16 15 / 72%); }
.gs-reviews-b__modal-panel {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) minmax(250px, .8fr);
	width: min(980px, calc(100vw - 48px));
	max-height: calc(100dvh - 48px);
	overflow: auto;
	border-radius: 16px;
	background: var(--gs-white);
	box-shadow: 0 24px 70px rgb(0 0 0 / 28%);
	opacity: 0;
	transform: translateY(14px) scale(.985);
	transition: transform .28s cubic-bezier(.2,.75,.2,1), opacity .22s ease;
}
.gs-reviews-b__modal.is-open .gs-reviews-b__modal-panel { opacity: 1; transform: translateY(0) scale(1); }
.gs-reviews-b__modal-close { position: absolute; top: 10px; right: 10px; z-index: 2; display: inline-grid; width: 40px; height: 40px; place-items: center; padding: 0; border: 1px solid rgb(23 27 45 / 14%); border-radius: 50%; color: var(--gs-ink); background: rgb(255 255 255 / 94%); font: 700 28px/1 Arial, sans-serif; cursor: pointer; box-shadow: 0 2px 10px rgb(0 0 0 / 12%); transition: transform .16s ease; }
.gs-reviews-b__modal-close:hover { transform: scale(1.04); }
.gs-reviews-b__modal-nav {
	position: absolute;
	top: 50%;
	z-index: 3;
	display: inline-grid;
	width: 46px;
	height: 46px;
	place-items: center;
	padding: 0;
	border: 1px solid rgb(23 27 45 / 16%) !important;
	border-radius: 50%;
	color: #171b2d !important;
	-webkit-text-fill-color: #171b2d;
	background: rgb(255 255 255 / 96%) !important;
	cursor: pointer;
	box-shadow: 0 4px 16px rgb(0 0 0 / 18%);
	transform: translateY(-50%);
	opacity: 1;
	visibility: visible;
	transition: transform .16s ease, background-color .16s ease, color .16s ease, box-shadow .16s ease;
}
.gs-reviews-b__modal-nav svg {
	display: block;
	width: 24px;
	height: 24px;
	overflow: visible;
	color: inherit !important;
	fill: none !important;
	stroke: currentColor !important;
	stroke-width: 2.6;
	stroke-linecap: round;
	stroke-linejoin: round;
	pointer-events: none;
}
.gs-reviews-b__modal-nav--prev { left: max(8px, calc(50% - 548px)); }
.gs-reviews-b__modal-nav--next { right: max(8px, calc(50% - 548px)); }
.gs-reviews-b__modal-nav:hover,
.gs-reviews-b__modal-nav:focus,
.gs-reviews-b__modal-nav:focus-visible,
.gs-reviews-b__modal-nav:active {
	color: #fff !important;
	-webkit-text-fill-color: #fff;
	background: #171b2d !important;
	box-shadow: 0 6px 20px rgb(0 0 0 / 24%);
}
.gs-reviews-b__modal-nav:hover { transform: translateY(-50%) scale(1.055); }
.gs-reviews-b__modal-nav:focus,
.gs-reviews-b__modal-nav:focus-visible,
.gs-reviews-b__modal-nav:active { transform: translateY(-50%) scale(1.02); }
.gs-reviews-b__modal-nav:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.gs-reviews-b__modal-nav[hidden] { display: none; }
.gs-reviews-b__modal-panel.is-changing .gs-reviews-b__modal-media,
.gs-reviews-b__modal-panel.is-changing .gs-reviews-b__modal-copy { opacity: .2; transform: translateX(var(--gsrb-switch-x, 0)); }
.gs-reviews-b__modal-media,
.gs-reviews-b__modal-copy { transition: opacity .14s ease, transform .18s cubic-bezier(.2,.75,.2,1); }
.gs-reviews-b__modal-media { display: grid; min-height: 320px; place-items: center; padding: 18px; background: #f3eee7; }
.gs-reviews-b__modal-media img { display: block; width: 100%; height: auto; max-width: 100%; max-height: calc(100dvh - 88px); object-fit: contain; }
.gs-reviews-b__modal-copy { align-self: center; min-width: 0; padding: 48px 28px 28px; }
.gs-reviews-b__modal-author { margin: 0 0 8px; padding: 0; color: var(--gs-ink); font: 600 22px/1.25 inherit; }
.gs-reviews-b__modal-stars { margin-bottom: 14px; color: var(--gs-star); font: 24px/1 Arial, sans-serif; letter-spacing: 1px; }
.gs-reviews-b__modal-text { margin: 0; color: var(--gs-ink); font-size: 16px; line-height: 1.55; white-space: pre-line; overflow-wrap: anywhere; }
html.gsrb-modal-open { overflow: hidden; }

@container gsreviewsb (min-width: 600px) {
	.gs-reviews-b .gs-reviews-b__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gs-reviews-b .gs-reviews-b__actions { flex-direction: row; flex-wrap: wrap; align-items: center; }
	.gs-reviews-b .gs-reviews-b__button { min-width: 225px; }
}
@container gsreviewsb (min-width: 900px) {
	.gs-reviews-b .gs-reviews-b__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 639px) {
	.gs-reviews-b__modal { padding: 16px; }
	.gs-reviews-b__modal-nav { width: 40px; height: 40px; }
	.gs-reviews-b__modal-nav svg { width: 22px; height: 22px; }
	.gs-reviews-b__modal-nav--prev { left: 6px; }
	.gs-reviews-b__modal-nav--next { right: 6px; }
	.gs-reviews-b__modal-panel { grid-template-columns: 1fr; width: min(100%, calc(100vw - 32px)); max-height: calc(100dvh - 32px); }
	.gs-reviews-b__modal-media { min-height: 0; max-height: 56dvh; padding: 12px; }
	.gs-reviews-b__modal-media img { max-height: 52dvh; }
	.gs-reviews-b__modal-copy { padding: 20px 18px 24px; }
	.gs-reviews-b .gs-reviews-b__text { line-height: 1.4; }
	.gs-reviews-b .gs-reviews-b__review-link { padding-block: 10px; min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
	.gs-reviews-b .gs-reviews-b__expand,
	.gs-reviews-b .gs-reviews-b__photo img,
	.gs-reviews-b .gs-reviews-b__button,
	.gs-reviews-b__modal,
	.gs-reviews-b__modal-backdrop,
	.gs-reviews-b__modal-panel,
	.gs-reviews-b__modal-close,
	.gs-reviews-b__modal-nav,
	.gs-reviews-b__modal-media,
	.gs-reviews-b__modal-copy { transition: none !important; }
	.gs-reviews-b .gs-reviews-b__expand:hover,
	.gs-reviews-b .gs-reviews-b__button:hover,
	.gs-reviews-b__modal.is-open .gs-reviews-b__modal-panel { transform: none; }
}
