/* Greyton Reviews - carousel styles. Colours/fonts follow the theme's custom properties, with fallbacks. */
.gp-rv { --rv-ink: var(--gp-ink, #2b1f15); --rv-gold: var(--gp-gold, #dfa63b); --rv-gold-h: var(--gp-gold-hover, #c98f24); position: relative; width: 100%; color: var(--rv-ink); }
.gp-rv__viewport { overflow: hidden; }
.gp-rv__track { display: flex; list-style: none; margin: 0; padding: 0; transition: transform .45s ease; will-change: transform; }
.gp-rv__slide { flex: 0 0 100%; min-width: 0; margin: 0; padding: 0 clamp(8px, 4vw, 56px); box-sizing: border-box; list-style: none; }
.gp-rv__fig { margin: 0; }
.gp-rv--center .gp-rv__fig { text-align: center; }
.gp-rv__quote { margin: 0; padding: 0; border: 0; }
.gp-rv__quote::before {
	content: '\201C'; display: block; font-family: Georgia, serif; font-size: 80px; line-height: .8; height: 44px; color: var(--rv-gold);
}
.gp-rv__quote p {
	margin: 0; font-family: var(--gp-head, 'Josefin Sans', sans-serif); font-weight: 300; font-size: clamp(18px, 2vw, 26px); line-height: 1.55;
	letter-spacing: .01em; color: var(--rv-ink); text-wrap: pretty;
}
.gp-rv__by { display: flex; align-items: center; gap: 14px; margin-top: 24px; }
.gp-rv--center .gp-rv__by { justify-content: center; }
.gp-rv__avatar {
	flex: 0 0 48px; width: 48px; height: 48px; border-radius: 50%; overflow: hidden; border: 1.5px solid var(--rv-gold);
	display: inline-flex; align-items: center; justify-content: center; background: #fff;
}
.gp-rv__avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gp-rv__initials { font-family: var(--gp-label, 'Josefin Sans', sans-serif); font-weight: 600; font-size: 15px; letter-spacing: .06em; color: var(--rv-ink); padding-top: 2px; }
.gp-rv__meta { display: flex; flex-direction: column; gap: 2px; text-align: left; }
.gp-rv__name { font-family: var(--gp-label, 'Josefin Sans', sans-serif); font-weight: 600; font-size: 13px; letter-spacing: .16em; text-transform: uppercase; color: var(--rv-ink); }
.gp-rv__stars { color: var(--rv-gold-h); font-size: 15px; letter-spacing: .12em; line-height: 1.2; }
.gp-rv__src { font-size: 13px; color: var(--rv-ink); opacity: .75; }

.gp-rv__nav { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 28px; }
.gp-rv--left .gp-rv__nav { justify-content: flex-start; padding-left: clamp(8px, 4vw, 56px); }
.gp-rv__btn {
	width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid var(--rv-ink); background: transparent; color: var(--rv-ink);
	font-size: 26px; line-height: 1; padding: 0 0 4px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center;
	transition: background .2s ease, border-color .2s ease;
}
.gp-rv__btn:hover, .gp-rv__btn:focus-visible { background: var(--rv-gold); border-color: var(--rv-gold); color: var(--rv-ink); }
.gp-rv__btn:focus-visible { outline: 2px solid var(--rv-ink); outline-offset: 3px; box-shadow: 0 0 0 5px var(--rv-gold); }
.gp-rv__count { font-family: var(--gp-label, 'Josefin Sans', sans-serif); font-weight: 600; font-size: 13px; letter-spacing: .16em; min-width: 56px; text-align: center; }

/* Without JavaScript only the first review shows, which is still readable */
.gp-rv:not(.is-ready) .gp-rv__nav { display: none; }

@media (prefers-reduced-motion: reduce) { .gp-rv__track { transition: none; } }

/* Divi gives lists its own padding/margins; make the carousel geometry exact so every slide is exactly one viewport wide */
.gp-rv .gp-rv__track { padding: 0 !important; margin: 0 !important; list-style: none !important; width: 100%; }
.gp-rv .gp-rv__slide { margin: 0 !important; padding: 0 clamp(8px, 4vw, 56px) !important; box-sizing: border-box !important; flex: 0 0 100% !important; max-width: 100%; list-style: none !important; }
.gp-rv .gp-rv__slide::before, .gp-rv .gp-rv__slide::after { content: none !important; }
