:root {
--sfp-blue: #3b82f6;
--sfp-blue-dark: #2563eb;
--sfp-blue-light: #eff6ff;
--sfp-text: #1e293b;
--sfp-text-light: #64748b;
--sfp-border: #e2e8f0;
--sfp-bg: #f8fafc;
--sfp-radius: 8px;
--sfp-green: #28a745;
--sfp-red: #ef4444;
} .sfp-hp-field {
position: absolute;
left: -9999px;
top: -9999px;
opacity: 0;
height: 0;
width: 0;
overflow: hidden;
pointer-events: none;
} .sfp-contact-form-wrap {
max-width: 700px;
margin: 0 auto;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}
.sfp-contact-form-wrap form {
display: flex;
flex-direction: column;
gap: 0;
} .sfp-contact-success {
background: #f0fdf4;
border: 1px solid #bbf7d0;
color: #166534;
padding: 14px 18px;
border-radius: var(--sfp-radius);
margin-bottom: 20px;
font-size: 15px;
}
.sfp-contact-error {
background: #fef2f2;
border: 1px solid #fecaca;
color: #991b1b;
padding: 14px 18px;
border-radius: var(--sfp-radius);
margin-bottom: 20px;
font-size: 15px;
} .sfp-contact-row {
margin-bottom: 18px;
}
.sfp-contact-row--half {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
}
.sfp-contact-field label {
display: block;
font-size: 14px;
font-weight: 600;
color: var(--sfp-text);
margin-bottom: 6px;
}
.sfp-contact-label-block {
display: block;
font-size: 14px;
font-weight: 600;
color: var(--sfp-text);
margin-bottom: 6px;
}
.sfp-required {
color: var(--sfp-red);
}
.sfp-phone-hint {
font-weight: 400;
color: var(--sfp-text-light);
font-size: 13px;
}
.sfp-contact-field input[type="text"],
.sfp-contact-field input[type="email"],
.sfp-contact-field input[type="tel"],
.sfp-contact-field input[type="date"],
.sfp-contact-field textarea {
width: 100%;
padding: 10px 14px;
border: 1px solid var(--sfp-border);
border-radius: var(--sfp-radius);
font-size: 15px;
color: var(--sfp-text);
background: #fff;
transition: border-color 0.2s, box-shadow 0.2s;
box-sizing: border-box;
font-family: inherit;
}
.sfp-contact-field input:focus,
.sfp-contact-field textarea:focus {
outline: none;
border-color: var(--sfp-blue);
box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
}
.sfp-contact-field textarea {
resize: vertical;
min-height: 120px;
} .sfp-contact-radios {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
}
.sfp-radio-card {
display: flex;
align-items: center;
gap: 10px;
padding: 14px 16px;
border: 2px solid var(--sfp-border);
border-radius: var(--sfp-radius);
cursor: pointer;
transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
user-select: none;
}
.sfp-radio-card:hover {
border-color: var(--sfp-blue);
background: var(--sfp-blue-light);
}
.sfp-radio-card--active {
border-color: var(--sfp-blue);
background: var(--sfp-blue-light);
box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.12);
}
.sfp-radio-card input[type="radio"] {
display: none;
}
.sfp-radio-icon {
font-size: 22px;
line-height: 1;
}
.sfp-radio-text {
font-size: 14px;
font-weight: 600;
color: var(--sfp-text);
} .sfp-callback-section {
overflow: hidden;
transition: max-height 0.35s ease, opacity 0.3s ease;
max-height: 0;
opacity: 0;
}
.sfp-callback-section.sfp-callback-visible {
max-height: 450px;
opacity: 1;
display: block !important;
}
.sfp-callback-inner {
background: var(--sfp-blue-light);
border: 1px solid #bfdbfe;
border-radius: var(--sfp-radius);
padding: 18px;
margin-bottom: 18px;
}
.sfp-callback-hint {
font-size: 14px;
color: var(--sfp-text-light);
margin: 0 0 14px 0;
} .sfp-time-radios {
display: flex;
flex-direction: column;
gap: 8px;
}
.sfp-time-option {
display: flex;
align-items: center;
gap: 8px;
padding: 10px 14px;
border: 1px solid var(--sfp-border);
border-radius: 6px;
cursor: pointer;
background: #fff;
transition: border-color 0.2s, background 0.2s;
user-select: none;
}
.sfp-time-option:hover {
border-color: var(--sfp-blue);
}
.sfp-time-option input[type="radio"]:checked + span {
color: var(--sfp-blue-dark);
font-weight: 600;
}
.sfp-time-option input[type="radio"]:checked ~ span {
color: var(--sfp-blue-dark);
}
.sfp-time-option:has(input:checked) {
border-color: var(--sfp-blue);
background: var(--sfp-blue-light);
}
.sfp-time-option span {
display: flex;
flex-direction: column;
font-size: 14px;
color: var(--sfp-text);
line-height: 1.3;
}
.sfp-time-option span small {
font-size: 12px;
color: var(--sfp-text-light);
font-weight: 400;
} .sfp-upload-zone {
border: 2px dashed var(--sfp-border);
border-radius: var(--sfp-radius);
padding: 30px 20px;
text-align: center;
cursor: pointer;
transition: border-color 0.2s, background 0.2s;
position: relative;
}
.sfp-upload-zone:hover,
.sfp-upload-zone.sfp-upload-dragover {
border-color: var(--sfp-blue);
background: var(--sfp-blue-light);
}
.sfp-upload-icon {
width: 48px;
height: 48px;
border: 2px solid var(--sfp-blue);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto 10px;
font-size: 26px;
color: var(--sfp-blue);
font-weight: 300;
line-height: 1;
}
.sfp-upload-text {
font-size: 14px;
font-weight: 600;
color: var(--sfp-text);
margin: 0 0 4px 0;
}
.sfp-upload-hint {
font-size: 12px;
color: var(--sfp-text-light);
margin: 0;
}
.sfp-file-input-hidden {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
cursor: pointer;
} .sfp-file-list {
display: flex;
flex-direction: column;
gap: 6px;
margin-top: 10px;
}
.sfp-file-item {
display: flex;
align-items: center;
justify-content: space-between;
background: var(--sfp-bg);
border: 1px solid var(--sfp-border);
border-radius: 6px;
padding: 8px 12px;
font-size: 13px;
color: var(--sfp-text);
}
.sfp-file-item-info {
display: flex;
align-items: center;
gap: 8px;
min-width: 0;
}
.sfp-file-item-name {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.sfp-file-item-size {
color: var(--sfp-text-light);
white-space: nowrap;
}
.sfp-file-item-remove {
background: none;
border: none;
color: var(--sfp-red);
cursor: pointer;
font-size: 18px;
padding: 0 4px;
line-height: 1;
}
.sfp-file-item-remove:hover {
color: #dc2626;
}
.sfp-file-error {
color: var(--sfp-red);
font-size: 12px;
margin-top: 6px;
} .sfp-contact-submit {
display: inline-flex;
align-items: center;
justify-content: center;
background: var(--sfp-blue);
color: #fff;
border: none;
border-radius: var(--sfp-radius);
padding: 14px 32px;
font-size: 16px;
font-weight: 600;
cursor: pointer;
transition: background 0.2s, box-shadow 0.2s, transform 0.15s;
box-shadow: 0 2px 4px rgba(59, 130, 246, 0.2);
font-family: inherit;
width: 100%;
}
.sfp-contact-submit:hover {
background: var(--sfp-blue-dark);
box-shadow: 0 4px 8px rgba(59, 130, 246, 0.3);
transform: translateY(-1px);
}
.sfp-contact-submit:active {
transform: translateY(0);
} @media (max-width: 600px) {
.sfp-contact-row--half {
grid-template-columns: 1fr;
}
.sfp-contact-radios {
grid-template-columns: 1fr;
}
.sfp-contact-form-wrap {
padding: 0 8px;
}
}