.utcf-wrap { margin: 1.5rem 0; }
.utcf-form { max-width: 760px; }
.utcf-grid { display: flex; flex-wrap: wrap; gap: 16px; }
.utcf-field { box-sizing: border-box; flex: 0 0 100%; min-width: 0; }
.utcf-width-25 { flex-basis: calc(25% - 12px); }
.utcf-width-33 { flex-basis: calc(33.333% - 12px); }
.utcf-width-50 { flex-basis: calc(50% - 8px); }
.utcf-width-66 { flex-basis: calc(66.666% - 8px); }
.utcf-width-75 { flex-basis: calc(75% - 12px); }
.utcf-field label { display: block; font-weight: 600; margin-bottom: 6px; }
.utcf-field input[type="text"], .utcf-field input[type="email"], .utcf-field input[type="tel"], .utcf-field input[type="number"], .utcf-field input[type="url"], .utcf-field input[type="password"], .utcf-field input[type="date"], .utcf-field input[type="time"], .utcf-field input[type="datetime-local"], .utcf-field select, .utcf-field textarea { box-sizing: border-box; width: 100%; min-height: 42px; }
.utcf-field textarea { min-height: 120px; }
.utcf-description { margin: 0 0 6px; opacity: .78; }
.utcf-required, .utcf-error-text { color: #b42318; }
.utcf-message { border: 1px solid #d0d7de; border-left-width: 4px; padding: 14px 16px; margin-bottom: 16px; }
.utcf-message-title { display: block; margin-bottom: 6px; }
.utcf-message p { margin: 0 0 10px; }
.utcf-message ul { margin-bottom: 0; }
.utcf-success { border-left-color: #008a20; }
.utcf-error, .has-error input, .has-error textarea, .has-error select { border-color: #b42318; }
.has-error .utcf-choice { border-left: 3px solid #b42318; padding-left: 10px; }
.utcf-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.utcf-submit { min-height: 44px; margin-top: 16px; }
.utcf-progress { margin-left: 10px; }
@media (max-width: 700px) { .utcf-field, .utcf-width-25, .utcf-width-33, .utcf-width-50, .utcf-width-66, .utcf-width-75 { flex-basis: 100%; } }
.utcf-choice { margin: 0; padding: 0; border: 0; }
.utcf-choice legend { display: block; width: 100%; font-weight: 600; margin-bottom: 6px; padding: 0; }
.utcf-choice label { display: flex; gap: 8px; align-items: center; min-height: 36px; font-weight: 400; }
.utcf-form :focus-visible { outline: 2px solid #2271b1; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .utcf-wrap *, .utcf-wrap *::before, .utcf-wrap *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; scroll-behavior: auto !important; } }
