/* Infinite Reviews: server-rendered reviews, styled for both page contexts.
 *
 * The Infinite theme is dark (body #272b30, headings white, body text
 * #818487), but the standard page template renders content on a white
 * panel. Light tokens are the default (used by [infinite-reviews] on the
 * /reviews/ page); the dark tokens apply to [infinite-reviews-latest],
 * which sits in dark Elementor sections on the homepage and plan pages.
 * Either can be forced with scheme="light|dark" on the shortcode, which
 * adds .infinite-reviews--light / .infinite-reviews--dark.
 */
.infinite-reviews {
	--ir-star: #fe9043;
	--ir-ink: #1d2124;
	--ir-text: #4a4f54;
	--ir-muted: #5f6368;
	--ir-line: #e5e7eb;
	--ir-surface: transparent;
	--ir-accent: #089fac;
	--ir-on-accent: #fff;
	color: var(--ir-text);
}
.infinite-reviews--latest,
.infinite-reviews--dark {
	--ir-ink: #ffffff;
	--ir-text: #c4c9ce;
	--ir-muted: #a4a9ae;
	--ir-line: rgba(255, 255, 255, 0.14);
	--ir-surface: rgba(255, 255, 255, 0.04);
	--ir-accent: #3fc8d4;
	--ir-on-accent: #1d2124;
}
.infinite-reviews--light {
	--ir-ink: #1d2124;
	--ir-text: #4a4f54;
	--ir-muted: #5f6368;
	--ir-line: #e5e7eb;
	--ir-surface: transparent;
	--ir-accent: #089fac;
	--ir-on-accent: #fff;
}
/* The theme paints headings inside page content; pin ours to the scheme ink. */
.infinite-reviews .infinite-reviews__heading,
.infinite-reviews .infinite-reviews__group-title,
.infinite-reviews .infinite-review__author { color: var(--ir-ink); }
.infinite-reviews a { color: var(--ir-accent); }
.infinite-reviews__summary { font-size: 1.125rem; line-height: 1.6; margin: 0 0 1.5rem; color: var(--ir-text); }
.infinite-reviews__themes ul { list-style: none; margin: 0 0 2rem; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.infinite-reviews__themes li a { display: inline-block; padding: .4rem .9rem; border: 1px solid var(--ir-line); border-radius: 999px; text-decoration: none; color: var(--ir-ink); }
.infinite-reviews__themes li.is-current a { background: var(--ir-accent); border-color: var(--ir-accent); color: var(--ir-on-accent); }
.infinite-reviews__count { opacity: .7; font-size: .85em; }
.infinite-reviews__group { margin: 0 0 2.5rem; }
.infinite-reviews__group-title { margin: 0 0 .25rem; }
.infinite-reviews__group-desc { color: var(--ir-muted); margin: 0 0 1rem; }
.infinite-reviews__list { list-style: none; margin: 0; padding: 0; }
.infinite-review { border-top: 1px solid var(--ir-line); padding: 1.25rem 0; }
.infinite-review__header { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .75rem; margin: 0 0 .5rem; }
.infinite-review__rating { color: var(--ir-star); letter-spacing: .08em; font-size: 1rem; }
.infinite-review__author { font-size: 1rem; font-weight: 700; margin: 0; }
.infinite-review__date { color: var(--ir-muted); font-size: .875rem; }
.infinite-review__text { color: var(--ir-text); }
.infinite-review__text p { margin: 0 0 .75rem; color: inherit; }
.infinite-review__text p:last-child { margin-bottom: 0; }
.infinite-review__footer { margin-top: .5rem; font-size: .875rem; color: var(--ir-muted); }
.infinite-reviews__pagination { margin: 1rem 0 2rem; }
.infinite-reviews__page-of { color: var(--ir-muted); margin: 0 0 .5rem; }
.infinite-reviews__pagination .page-numbers { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.infinite-reviews__pagination .page-numbers li { margin: 0; }
.infinite-reviews__pagination a.page-numbers, .infinite-reviews__pagination span.page-numbers { display: inline-block; padding: .4rem .8rem; border: 1px solid var(--ir-line); text-decoration: none; color: var(--ir-ink); }
.infinite-reviews__pagination span.current { background: var(--ir-accent); border-color: var(--ir-accent); color: var(--ir-on-accent); }
.infinite-reviews__aggregate { font-size: 1.125rem; margin: 0 0 1rem; color: var(--ir-text); }
.infinite-reviews__aggregate strong { color: var(--ir-ink); }
.infinite-reviews__more { margin: 1.25rem 0 .5rem; }
.infinite-reviews__attribution { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; color: var(--ir-muted); font-size: .875rem; margin: 0; }
.infinite-reviews__google-mark { flex: 0 0 auto; }


/* ---- Latest-reviews widget: summary column beside a scrolling row of cards ---- */
.ir-widget { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; align-items: center; }
@media (min-width: 768px) { .ir-widget { grid-template-columns: 220px minmax(0, 1fr); gap: 2rem; } .ir-widget > .infinite-reviews__heading, .ir-widget > .infinite-reviews__attribution { grid-column: 1 / -1; } }
.ir-widget__summary { display: flex; flex-direction: column; gap: .25rem; }
.infinite-reviews .ir-widget__name { font-size: 1.25rem; font-weight: 700; color: var(--ir-ink); text-decoration: none; }
.infinite-reviews .ir-widget__name:hover { color: var(--ir-accent); }
.infinite-reviews .ir-widget__summary > p, .infinite-reviews .ir-widget__summary > a { margin: 0; line-height: 1.4; }
.ir-widget__rating { display: flex; align-items: center; gap: .5rem; margin: 0; }
.infinite-reviews .ir-widget__summary .ir-widget__score { font-size: 1.25rem; font-weight: 700; color: var(--ir-ink); }
.ir-widget__rating .infinite-review__rating { font-size: 1.25rem; }
.infinite-reviews .ir-widget__based { margin: 0; color: var(--ir-muted); }
.infinite-reviews .ir-widget__powered { margin: 0; color: var(--ir-muted); font-size: .9rem; }
.ir-google { font-weight: 600; letter-spacing: -.02em; }
.infinite-reviews .ir-widget__all { margin-top: .5rem; font-size: .9rem; color: var(--ir-accent); text-decoration: none; }
.ir-widget__all:hover { text-decoration: underline; }
.ir-widget__slider { position: relative; min-width: 0; }
.ir-widget__track { --ir-gap: 1rem; --ir-per-view: 1; list-style: none; margin: 0; padding: 2px; display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - (var(--ir-per-view) - 1) * var(--ir-gap)) / var(--ir-per-view)); gap: var(--ir-gap); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.ir-widget__track::-webkit-scrollbar { display: none; }
@media (min-width: 600px) { .ir-widget__track { --ir-per-view: 2; } }
@media (min-width: 1100px) { .ir-widget__track { --ir-per-view: 3; } }
@media (min-width: 1400px) { .ir-widget__track { --ir-per-view: 4; } }
.ir-widget__slide { scroll-snap-align: start; min-width: 0; }
.ir-card { position: relative; height: 100%; box-sizing: border-box; display: flex; flex-direction: column; gap: .6rem; padding: 1.1rem 1.1rem 1rem; border: 1px solid var(--ir-line); background: var(--ir-surface); border-radius: 8px; color: var(--ir-text); }
.ir-card__header { display: flex; align-items: center; gap: .75rem; padding-right: 1.5rem; }
.ir-card__avatar { flex: 0 0 44px; width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.infinite-reviews .ir-card .ir-card__avatar--initials { display: inline-flex; align-items: center; justify-content: center; background: var(--ir-accent); color: var(--ir-on-accent); font-weight: 700; font-size: .95rem; letter-spacing: 0; text-transform: none; }
.ir-card__who { min-width: 0; display: flex; flex-direction: column; }
.infinite-reviews .ir-card .ir-card__name { margin: 0; padding: 0; font-size: 1rem; font-weight: 700; line-height: 1.3; color: var(--ir-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.infinite-reviews .ir-card .ir-card__time { font-size: .8rem; color: var(--ir-muted); }
.ir-card .infinite-reviews__google-mark { position: absolute; top: 1rem; right: 1rem; }
.infinite-reviews .ir-card .ir-card__text { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; font-size: .95rem; line-height: 1.55; color: var(--ir-text); }
.ir-card__text p { margin: 0 0 .5rem; color: inherit; }
.ir-card__text p:last-child { margin-bottom: 0; }
.infinite-reviews .ir-card .ir-card__more { margin-top: auto; font-size: .85rem; color: var(--ir-accent); text-decoration: none; }
.ir-card__more:hover { text-decoration: underline; }
.ir-widget__arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--ir-line); background: var(--ir-arrow-bg, #fff); color: var(--ir-ink); font-size: 1.4rem; line-height: 1; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; padding: 0 0 2px; box-shadow: 0 2px 8px rgba(0, 0, 0, .12); }
.ir-widget__arrow--prev { left: -12px; }
.ir-widget__arrow--next { right: -12px; }
.ir-widget__arrow[hidden] { display: none; }
.ir-widget__arrow:disabled { opacity: .35; cursor: default; }
.ir-widget__arrow:hover:not(:disabled) { color: var(--ir-accent); }
.infinite-reviews--latest, .infinite-reviews--dark { --ir-arrow-bg: #32373d; }
.infinite-reviews--light { --ir-arrow-bg: #fff; }
.ir-widget .infinite-reviews__attribution { margin-top: .25rem; }
