/* QS Services testimonial form and shortcode. All selectors are component-scoped. */
.qs-testimonial-form-wrap { margin-block: var(--qs-space-6, 1.5rem) var(--qs-space-12, 3rem); }
.qs-testimonial-form__intro { margin: 0 0 var(--qs-space-8, 2rem); color: var(--qs-text-secondary, #475569); font-size: var(--qs-body-lg, 1.125rem); line-height: 1.65; }
.qs-testimonial-form { display: grid; gap: var(--qs-space-6, 1.5rem); padding: clamp(1.25rem, 4vw, 2.5rem); border: 1px solid var(--qs-border, #e2e8f0); border-radius: 24px; background: #fff; box-shadow: 0 12px 40px rgba(15,23,42,.07); }
.qs-testimonial-form__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--qs-space-5, 1.25rem); }
.qs-testimonial-field { display: grid; gap: 8px; margin: 0; color: var(--qs-ink, #0a2540); font-weight: 600; }
.qs-testimonial-field > span, .qs-testimonial-rating legend { font-size: .875rem; }
.qs-testimonial-field b, .qs-testimonial-rating b, .qs-testimonial-check b { color: #dc2626; }
.qs-testimonial-field input, .qs-testimonial-field select, .qs-testimonial-field textarea { width: 100%; min-width: 0; margin: 0; border: 1px solid var(--qs-border-strong, #cbd5e1); border-radius: 12px; background: #fff; color: var(--qs-ink, #0a2540); font: inherit; font-weight: 400; line-height: 1.45; transition: border-color 160ms ease, box-shadow 160ms ease; }
.qs-testimonial-field input, .qs-testimonial-field select { min-height: 50px; padding: 0 14px; }
/* Safari injects a contacts/autofill badge inside identity fields. It is browser
   chrome rather than form content, so suppress it consistently in this form. */
.qs-testimonial-form input::-webkit-contacts-auto-fill-button,
.qs-testimonial-form input::-webkit-credentials-auto-fill-button { position: absolute; right: 0; display: none!important; visibility: hidden; pointer-events: none; }
.qs-testimonial-field textarea { min-height: 170px; padding: 14px; resize: vertical; }
.qs-testimonial-field input:focus, .qs-testimonial-field select:focus, .qs-testimonial-field textarea:focus { outline: none; border-color: var(--qs-accent, #2563eb); box-shadow: 0 0 0 3px rgba(37,99,235,.14); }
.qs-testimonial-field--wide { grid-column: 1/-1; }
.qs-testimonial-rating { min-width: 0; margin: 0; padding: 0; border: 0; }
.qs-testimonial-rating legend { margin-bottom: 10px; color: var(--qs-ink, #0a2540); font-weight: 600; }
.qs-testimonial-rating__options { display: flex; flex-direction: row-reverse; justify-content: flex-end; flex-wrap: nowrap; gap: 10px; }
.qs-testimonial-rating__options label { display: grid; place-items: center; width: 40px; height: 44px; margin: 0; color: var(--qs-accent, #2563eb); cursor: pointer; }
.qs-testimonial-rating__options label::before { content: "☆"; font-size: 2rem; line-height: 1; transition: color 140ms ease, transform 140ms ease; }
.qs-testimonial-rating__options input { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; }
.qs-testimonial-rating__options input:checked + label::before,
.qs-testimonial-rating__options input:checked + label ~ label::before,
.qs-testimonial-rating__options label:hover::before,
.qs-testimonial-rating__options label:hover ~ label::before { content: "★"; }
.qs-testimonial-rating__options label:active::before { transform: scale(.9); }
.qs-testimonial-rating__options input:focus-visible + label { outline: 2px solid var(--qs-accent, #2563eb); outline-offset: 2px; border-radius: 8px; }
.qs-testimonial-check { display: flex; align-items: flex-start; gap: 12px; margin: 0; color: var(--qs-text-secondary, #475569); font-size: .9375rem; font-weight: 400; line-height: 1.5; }
.qs-testimonial-check input { flex: 0 0 auto; width: 18px; height: 18px; margin: 3px 0 0; accent-color: var(--qs-accent, #2563eb); }
.qs-testimonial-submit { justify-self: start; min-height: 50px; padding: 0 24px; border: 0; border-radius: 10px; background: var(--qs-accent, #2563eb); color: #fff; font: inherit; font-weight: 700; cursor: pointer; transition: background 160ms ease, transform 120ms ease; }
.qs-testimonial-submit:hover { background: var(--qs-accent-hover, #1d4ed8); }
.qs-testimonial-submit:active { transform: scale(.98); }
.qs-testimonial-form__note { margin: -4px 0 0; color: var(--qs-text-muted, #64748b); font-size: .8125rem; }
.qs-testimonial-hp { position: absolute!important; left: -10000px!important; width: 1px!important; height: 1px!important; overflow: hidden!important; }
.qs-testimonial-notice { margin-bottom: var(--qs-space-6, 1.5rem); padding: 16px 18px; border: 1px solid; border-radius: 14px; font-weight: 600; line-height: 1.5; }
.qs-testimonial-notice--success { border-color: #86efac; background: #f0fdf4; color: #166534; }
.qs-testimonial-notice--error { border-color: #fecaca; background: #fef2f2; color: #991b1b; }

.qs-testimonials-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--qs-space-5, 1.25rem); }
.qs-testimonial-entry { display: flex; flex-direction: column; min-width: 0; min-height: 280px; margin: 0; padding: clamp(1.5rem,3vw,2rem); border: 1px solid var(--qs-border, #e2e8f0); border-radius: 22px; background: #fff; box-shadow: 0 8px 28px rgba(15,23,42,.06); }
.qs-testimonial-entry__rating { margin-bottom: var(--qs-space-5, 1.25rem); color: #d97706; font-size: 1rem; letter-spacing: .08em; }
.qs-testimonial-entry blockquote { margin: 0 0 var(--qs-space-8, 2rem); color: var(--qs-ink, #0a2540); font-size: clamp(1.05rem,1vw + .8rem,1.25rem); font-weight: 520; line-height: 1.6; }
.qs-testimonial-entry figcaption { display: grid; gap: 3px; margin-top: auto; }
.qs-testimonial-entry figcaption strong { color: var(--qs-ink, #0a2540); }
.qs-testimonial-entry figcaption span { color: var(--qs-text-secondary, #475569); font-size: .875rem; }
.qs-testimonial-entry figcaption small { margin-top: 6px; color: var(--qs-text-muted, #64748b); font-size: .75rem; line-height: 1.4; }

@media (max-width: 899px) { .qs-testimonials-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 767px) {
	.qs-testimonial-form__grid { grid-template-columns: 1fr; }
	.qs-testimonial-submit { width: 100%; justify-self: stretch; }
	.qs-testimonials-grid { display: flex; gap: 14px; overflow-x: auto; padding: 8px 0 18px; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
	.qs-testimonials-grid::-webkit-scrollbar { display: none; }
	.qs-testimonial-entry { flex: 0 0 min(86vw,320px); min-height: 260px; scroll-snap-align: start; }
}
