/*---*\
    Callout Banner
    Full-width primary-blue bar with a heading on the left and a Google star
    rating on the right, separated by a divider.

    KEY FEATURES:
    - Mobile:  Column layout, centered, horizontal rule divider
    - Tablet:  Row layout, vertical divider, rating items stacked vertically
    - Desktop: Row layout, vertical divider, rating items side by side
\*---*/

/* ==========================================================================
   BASE STYLES – MOBILE FIRST
   ========================================================================== */

.callout-banner {
	background-color: var(--color-primary);
}

.callout-banner__inner {
	max-width: var(--container-max-width);
	margin: 0 auto;
	padding: 28px 25px;
}

/* Stats row / column */

.callout-banner__stats {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
}

/* Left: heading text */

.callout-banner__heading {
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 18px;
	line-height: 1.2;
	color: var(--color-text-light);
	margin: 0;
	text-align: center;
}

.callout-banner--no-rating .callout-banner__stats {
	width: 100%;
}

.callout-banner--no-rating .callout-banner__heading {
	max-width: none;
	width: 100%;
}

/* Divider – horizontal on mobile, vertical on tablet+ */

.callout-banner__divider {
	flex-shrink: 0;
	width: 50px;
	height: 1px;
	background-color: var(--color-text-light);
}

/* Right: rating wrapper */

.callout-banner__rating {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 5px;
}

/* Stars (icon-star) */

.callout-banner__stars {
	display: flex;
	align-items: center;
	gap: 3px;
	line-height: 0;
	list-style: none;
	margin: 0;
	padding: 0;
}

.callout-banner__stars li {
	margin: 0;
	padding: 0;
}

.callout-banner__stars li::before,
.callout-banner__stars li::after {
	display: none;
}

.callout-banner__stars .icon-star {
	color: var(--color-secondary, #001C6B);
	font-size: 20px;
	font-family: 'roadrunner-icons' !important;
}

.callout-banner__stars .icon-star:not(.icon-star--active) {
	color: rgba(0, 28, 107, 0.4);
}

/* Google icon + review text row */

.callout-banner__reviews {
	display: flex;
	align-items: center;
	gap: 9px;
}

.callout-banner__review-link {
	display: flex;
	align-items: center;
	gap: 9px;
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 18px;
	line-height: 1.2;
	color: var(--color-text-light);
	text-decoration: none;
	position: relative;
}

.callout-banner__review-link:hover,
.callout-banner__review-link:focus {
	color: var(--color-text-light);
	text-decoration: none;
	opacity: 0.9;
}

.callout-banner__review-link:focus-visible {
	outline: 2px solid var(--color-text-light);
	outline-offset: 2px;
}

.callout-banner__review-link--plain {
	cursor: default;
}

.callout-banner__google-icon {
	display: flex;
	flex-shrink: 0;
	width: 20px;
	height: 20px;
}

.callout-banner__google-icon svg {
	display: block;
	width: 20px;
	height: 20px;
}

.callout-banner__review-text {
	margin: 0;
	position: relative;
}

.callout-banner__review-link .callout-banner__review-text::after,
.callout-banner__review-link--plain .callout-banner__review-text::after {
	height: 12px;
	width: calc(100% + 10px);
	background: linear-gradient(to bottom, rgba(49, 170, 223, .15) 0%, rgba(49, 170, 223, .15) 100%);
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	left: -5px;
	pointer-events: none;
}

.callout-banner__review-link {
	background: linear-gradient(to bottom, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.10) 100%);
}

/* ==========================================================================
   TABLET BREAKPOINT (768px+)
   ========================================================================== */

@media (min-width: 768px) {

	.callout-banner__inner {
		padding: 28px 51px;
	}

	/* Switch to horizontal layout with a vertical divider */

	.callout-banner__stats {
		flex-direction: row;
		align-items: center;
		gap: 41px;
	}

	.callout-banner__heading {
		font-size: 18px;
		text-align: left;
		max-width: 296px;
	}

	.callout-banner--no-rating .callout-banner__heading {
		max-width: none;
	}

	.callout-banner__divider {
		width: 1px;
		/* height: 68px; */
		height: stretch;
	}

	.callout-banner__stars .icon-star {
		font-size: 32px;
	}

	.callout-banner__review-link {
		font-size: 18px;
	}

	.callout-banner__review-text {
		font-size: 18px;
	}
}

/* ==========================================================================
   DESKTOP BREAKPOINT (1200px+)
   ========================================================================== */

@media (min-width: 1200px) {

	.callout-banner__inner {
		padding: 30px 25px;
	}

	.callout-banner__stats {
		gap: 58px;
	}

	.callout-banner__heading {
		font-size: 24px;
		max-width: 567px;
	}

	.callout-banner--no-rating .callout-banner__heading {
		max-width: none;
	}

	/* Stars and review text sit side by side on desktop */

	.callout-banner__rating {
		flex-direction: row;
		align-items: center;
		gap: 20px;
	}

	.callout-banner__stars .icon-star {
		font-size: 32px;
	}

	.callout-banner__review-link {
		font-size: 24px;
	}

	.callout-banner__review-text {
		font-size: 24px;
	}
}