/*
	#	Testimonials (shared component — functions/testimonials.php)
	Used on the homepage, About and case studies. px + explicit line-heights
	throughout (html{font-size:0}).
	-------------------------------------------------------------------------------*/
	.sc-reviews																		{ padding:100px 24px 104px;  z-index:2; position:relative; overflow:hidden;  background:linear-gradient(180deg, #02181a 0%, #04191a 100%);  font-family:'DM Sans', sans-serif; text-align:left; }
	.sc-reviews::before																{ width:100%; height:100%;  top:0; left:0; z-index:0; position:absolute;  background:url(../images/ui/bg-grid.svg);  opacity:.04; pointer-events:none;  content:''; }

	@media (max-width: 599px) {

		.sc-reviews																	{ padding:72px 16px 76px; }

	}


		.sc-reviews__core															{ max-width:1280px; margin:0 auto;  z-index:1; position:relative; }



		/*	Head
		---------------------------------------------------------------------------*/
		.sc-reviews__head															{ max-width:760px; margin:0 auto 52px;  text-align:center; }

			.sc-reviews__eyebrow													{ margin:0 0 14px;  line-height:1.3; font-size:14px; font-weight:600; letter-spacing:.02em; color:#F8444F; }

			.sc-reviews__title														{ margin:0;  line-height:1.07; font-family:'DM Sans', sans-serif; font-size:48px; font-weight:600; letter-spacing:-0.02em; color:#FFF; }
			.sc-reviews__title em													{ font-style:normal; color:#F8444F; }

			.sc-reviews__lede														{ margin:18px 0 0;  line-height:1.6; font-size:17px; color:#9fb4b2; }
			.sc-reviews__lede em													{ font-style:normal; color:#e2ecea; }

			@media (max-width: 599px) {

				.sc-reviews__title													{ font-size:34px; }

			}



		/*	Grid
		---------------------------------------------------------------------------*/
		.sc-reviews__grid															{ margin:0; padding:0;  display:grid; gap:24px;  list-style:none; }
		.sc-reviews__grid--3														{ grid-template-columns:repeat(3, 1fr); }
		.sc-reviews__grid--2														{ max-width:1040px; margin:0 auto;  grid-template-columns:repeat(2, 1fr); }

		@media (max-width: 899px) {

			.sc-reviews__grid--3													{ max-width:620px; margin:0 auto;  gap:20px; grid-template-columns:1fr; }

		}

		@media (max-width: 759px) {

			.sc-reviews__grid--2													{ max-width:620px;  gap:20px; grid-template-columns:1fr; }

		}



			/*	Card
			-----------------------------------------------------------------------*/
			.sc-reviews__item														{ padding:30px 28px 26px;  overflow:hidden; position:relative;  background:#0b2324; border:1px solid RGBA(120,189,196, .14); border-radius:14px;  display:flex; flex-direction:column;  text-align:left; }
			.sc-reviews__item > *													{ z-index:1; position:relative; }

				/*	Oversized quote mark + accent bar (drawn on hover)
				-------------------------------------------------------------------*/
				.sc-reviews__item::before											{ top:-22px; right:14px; z-index:0; position:absolute;  content:'\201C'; pointer-events:none;  line-height:1; font-family:Georgia, 'Times New Roman', serif; font-size:150px; color:RGBA(255,255,255, .045);  transition:color .4s ease, transform .5s cubic-bezier(.34,1.56,.64,1); }
				.sc-reviews__item::after											{ height:3px;  top:0; right:0; left:0; z-index:2; position:absolute;  background:linear-gradient(90deg, #42d2c8, #F8444F);  content:'';  transform:scaleX(0); transform-origin:left;  transition:transform .45s ease; }

				.sc-reviews__stars													{ margin-bottom:18px;  line-height:1; font-size:15px; letter-spacing:3px; color:#f5b301; }
				.sc-reviews__stars span												{ display:inline-block; }
				.sc-reviews__stars span:nth-child(2)								{ --s:.08s; }
				.sc-reviews__stars span:nth-child(3)								{ --s:.16s; }
				.sc-reviews__stars span:nth-child(4)								{ --s:.24s; }
				.sc-reviews__stars span:nth-child(5)								{ --s:.32s; }

				.sc-reviews__quote													{ margin:0 0 22px; padding:0;  flex:1 0 auto;  border:0;  line-height:1.62; font-size:15.5px; font-style:normal; color:#d2e0de; }
				.sc-reviews__quote::before,
				.sc-reviews__quote::after											{ content:none; }

				.sc-reviews__foot													{ display:flex; gap:14px; align-items:flex-end; justify-content:space-between; }

					.sc-reviews__who strong											{ display:block;  line-height:1.3; font-size:16px; font-weight:700; color:#FFF; }
					.sc-reviews__who span											{ margin-top:3px;  display:block;  line-height:1.3; font-size:13px; color:#8fb0ac; }

					.sc-reviews__link												{ flex:0 0 auto;  display:inline-flex; gap:6px; align-items:center;  white-space:nowrap; line-height:1; font-size:13px; font-weight:600; color:#78BDC4; text-decoration:none;  transition:color .25s ease; }
					.sc-reviews__link:hover											{ color:#F8444F; }




	/*	Motion — html.js-anim is set in <head> (header.php); scripts/ml.js adds
		.in-view (selectors in ML_MOTION). Cards, quote marks and stars reveal with
		animations (fill: backwards) so the hover transitions below stay instant.
	-------------------------------------------------------------------------------*/
	.js-anim #hero .sc-reviews__head												{ opacity:0; transform:translateY(28px);  transition:opacity .8s ease, transform .9s cubic-bezier(.2,.7,.2,1); }
	.js-anim #hero .sc-reviews__head.in-view										{ opacity:1; transform:none; }

	.js-anim #hero .sc-reviews__item												{ opacity:0; }
	.js-anim #hero .sc-reviews__item.in-view										{ opacity:1;  animation:ml-rv-rise .9s cubic-bezier(.2,.7,.2,1) var(--d, 0s) backwards; }
	.js-anim #hero .sc-reviews__item.in-view::before								{ animation:ml-rv-quote .9s cubic-bezier(.34,1.56,.64,1) calc(var(--d, 0s) + .2s) backwards; }

		/*	Stars pop in one by one, then the row twinkles once */
		.js-anim #hero .sc-reviews__item .sc-reviews__stars span					{ opacity:0; }
		.js-anim #hero .sc-reviews__item.in-view .sc-reviews__stars span			{ opacity:1;  animation:ml-rv-star .55s cubic-bezier(.34,1.56,.64,1) calc(var(--d, 0s) + .4s + var(--s, 0s)) backwards; }
		.js-anim #hero .sc-reviews__item.in-view .sc-reviews__stars					{ animation:ml-rv-twinkle 1.2s ease calc(var(--d, 0s) + 1.05s) 1 backwards; }



	@media (hover: hover) and (prefers-reduced-motion: no-preference) {

		.sc-reviews__item															{ transition:transform .4s cubic-bezier(.2,.7,.2,1), border-color .3s ease, box-shadow .4s ease; }
		.sc-reviews__item:hover														{ transform:translateY(-6px);  border-color:RGBA(248,68,79, .4); box-shadow:0px 30px 60px -30px RGBA(0,0,0, .8); }
		.sc-reviews__item:hover::after												{ transform:scaleX(1); }
		.sc-reviews__item:hover::before												{ color:RGBA(248,68,79, .16);  transform:rotate(-8deg) scale(1.08); }

		/*	Stars ripple up in a wave (and settle in the same order) */
		.sc-reviews__stars span														{ transition:transform .35s cubic-bezier(.34,1.56,.64,1);  transition-delay:calc(var(--s, 0s) * .6); }
		.sc-reviews__item:hover .sc-reviews__stars span								{ transform:translateY(-4px) scale(1.2); }

	}



	@keyframes ml-rv-rise															{ 0% { opacity:0; transform:translateY(40px) scale(.96); }  100% { opacity:1; transform:none; } }
	@keyframes ml-rv-quote															{ 0% { opacity:0; transform:scale(.4) rotate(-24deg); }  100% { opacity:1; transform:none; } }
	@keyframes ml-rv-star															{ 0% { opacity:0; transform:scale(0) rotate(-120deg); }  100% { opacity:1; transform:none; } }
	@keyframes ml-rv-twinkle														{ 0% { text-shadow:0 0 0 RGBA(245,179,1, 0); }  40% { text-shadow:0 0 14px RGBA(245,179,1, .9), 0 0 2px RGBA(255,236,170, .9); }  100% { text-shadow:0 0 0 RGBA(245,179,1, 0); } }
