/* Testimonial submission form
   Paired with template-share-your-experience.php + js/testimonial-form.js */

.testimonial-submit { padding: 3rem 0; }

.testimonial-submit-intro { font-size: 1.05rem; }

.testimonial-form .form-field { margin-bottom: 1.25rem; }

.testimonial-form .form-label {
	display: block;
	font-weight: 500;
	margin-bottom: 0.4rem;
}

.testimonial-form .req { color: #d00; }

.testimonial-form .form-hint {
	display: block;
	color: #6c757d;
	margin-top: 0.4rem;
	font-size: 0.85rem;
	line-height: 1.4;
}

.testimonial-form textarea,
.testimonial-form input[type="text"],
.testimonial-form input[type="email"] {
	width: 100%;
	padding: 0.75rem 1rem;
	border: 1px solid #cfd4d9;
	border-radius: 4px;
	font: inherit;
	background: #fff;
	line-height: 1.4;
}

.testimonial-form textarea { min-height: 140px; resize: vertical; }

.testimonial-form textarea:focus,
.testimonial-form input:focus {
	outline: none;
	border-color: #005bab;
	box-shadow: 0 0 0 3px rgba(0,91,171,.15);
}

/* Star rating — reverse flex so :hover + ~ label highlights all stars to the left of the pointer. */
.testimonial-form .star-rating {
	display: inline-flex;
	flex-direction: row-reverse;
	gap: 0.25rem;
	padding: 0.25rem 0;
}

.testimonial-form .star-rating input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	pointer-events: none;
}

.testimonial-form .star-rating label {
	cursor: pointer;
	font-size: 2rem;
	color: #d9d9d9;
	line-height: 1;
	transition: color 0.15s ease;
	margin: 0;
}

.testimonial-form .star-rating label:hover,
.testimonial-form .star-rating label:hover ~ label,
.testimonial-form .star-rating input:checked ~ label {
	color: #f5a623;
}

.testimonial-form .star-rating input:focus-visible + label {
	outline: 2px solid #005bab;
	outline-offset: 3px;
	border-radius: 2px;
}

/* Honeypot — visually removed but still in the DOM for bots to find. */
.testimonial-form .visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* Consent */
.testimonial-form .form-consent label {
	display: flex;
	gap: 0.75rem;
	align-items: flex-start;
	font-weight: 400;
	cursor: pointer;
}

.testimonial-form .form-consent input[type="checkbox"] {
	margin-top: 0.25rem;
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	cursor: pointer;
}

.testimonial-form .form-consent span { line-height: 1.5; }

/* Submit row */
.testimonial-form .form-submit-row {
	margin-top: 1.5rem;
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
}

.testimonial-form .form-status {
	font-size: 0.9rem;
	line-height: 1.4;
}

.testimonial-form .form-status.error { color: #c00; }
.testimonial-form .form-status.success { color: #0a7a2e; }

/* Sidebar */
.testimonial-submit-sidebar .sidebar-box {
	background: #f5f7fa;
	border-radius: 6px;
	padding: 1.5rem 1.75rem;
	margin-bottom: 1.25rem;
}

/* h2 since 2026-08-13 (it was the first heading under the page h1, so h3 skipped a
   level). The weight is restated because the base h2 carries --hw-md where h3 inherits
   --hw-sm; .h4 on the element only ever controlled the size. */
.testimonial-submit-sidebar .sidebar-box h2 {
	margin-top: 0;
	margin-bottom: 0.75rem;
	font-weight: var(--hw-sm);
}

.testimonial-submit-sidebar ol {
	padding-left: 1.25rem;
	margin: 0;
}

.testimonial-submit-sidebar ol li {
	margin-bottom: 0.5rem;
	line-height: 1.5;
}

.testimonial-submit-sidebar ol li:last-child { margin-bottom: 0; }

.testimonial-submit-sidebar ul {
	padding-left: 1.25rem;
	margin: 0;
	list-style: disc;
}

.testimonial-submit-sidebar ul li {
	margin-bottom: 0.5rem;
	line-height: 1.5;
}

.testimonial-submit-sidebar ul li:last-child { margin-bottom: 0; }

/* Hero block — "You're in good company" + client logos at the top of the page.
   Replaces the standard page hero and acts as the social-proof opener. */
.testimonial-hero {
	padding: 3rem 0 2.5rem;
	background: #f5f7fa;
}

.testimonial-hero-title {
	margin: 0 auto 1.5rem;
	max-width: 20ch;
	font-size: clamp(1.75rem, 2.5vw + 1rem, 2.5rem);
	font-weight: 600;
	line-height: 1.2;
	color: #1a1a1a;
	text-wrap: balance;
}

.testimonial-hero-logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 1.5rem 2.5rem;
	margin: 0 auto 1.5rem;
	max-width: 900px;
}

.testimonial-hero-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 56px;
	flex: 0 0 auto;
}

.testimonial-hero-logo img {
	max-height: 100%;
	max-width: 140px;
	width: auto;
	height: auto;
	object-fit: contain;
	filter: grayscale(1);
	opacity: 0.75;
	transition: filter 0.2s ease, opacity 0.2s ease;
}

.testimonial-hero-logo:hover img {
	filter: grayscale(0);
	opacity: 1;
}

.testimonial-hero-caption {
	margin: 0;
	font-size: 0.95rem;
	color: #555;
}

@media (max-width: 576px) {
	.testimonial-hero { padding: 2rem 0 1.75rem; }
	.testimonial-hero-logos { gap: 1rem 1.5rem; }
	.testimonial-hero-logo { height: 44px; }
	.testimonial-hero-logo img { max-width: 110px; }
}

/* Thank-you page */
.thank-you { padding: 3rem 0 4rem; }

.thank-you .thank-you-icon {
	color: #0a7a2e;
	font-size: 4rem;
	line-height: 1;
}

.thank-you .thank-you-content h2 { margin-top: 0; }
