.whcs-rate-wrap { max-width: 480px; margin: 1em 0; }
.whcs-fieldset { border: 0; margin: 0 0 1em; padding: 0; min-width: 0; }
.whcs-legend { padding: 0; margin-bottom: .5em; font-weight: 600; }
.whcs-stars { display: flex; flex-wrap: wrap; gap: 4px; }
.whcs-star { position: relative; display: inline-block; }
/* The radio stays in the layout (and in the accessibility tree) but is visually hidden. */
.whcs-star input { position: absolute; opacity: 0; width: 44px; height: 44px; margin: 0; cursor: pointer; }
.whcs-star label { display: flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; cursor: pointer; }
.whcs-glyph { font-size: 36px; line-height: 1; color: #6b6b6b; }
.whcs-star.is-filled .whcs-glyph { color: #b45309; }
.whcs-star label:hover .whcs-glyph { color: #92400e; }
.whcs-star input:focus-visible + label { outline: 3px solid #1d4ed8; outline-offset: 2px; border-radius: 4px; }
.whcs-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.whcs-field label { display: block; margin-bottom: .35em; }
.whcs-field textarea { display: block; width: 100%; box-sizing: border-box; font-size: 16px; padding: 8px; }
.whcs-submit { min-height: 44px; min-width: 44px; padding: 0 1.25em; font-size: 16px; cursor: pointer; }
.whcs-submit:focus-visible { outline: 3px solid #1d4ed8; outline-offset: 2px; }
.whcs-submit[disabled] { cursor: not-allowed; opacity: .6; }
.whcs-message { margin: .75em 0 0; min-height: 1.5em; }
.whcs-message.is-error { color: #b32d2e; }
.whcs-message:focus { outline: none; }
@media (prefers-reduced-motion: reduce) {
	.whcs-rate-wrap * { transition: none !important; animation: none !important; }
}
