.contact-page{background:#fff}
.contact-hero{padding:70px 0 90px;background:linear-gradient(135deg,#fff,#fff7f7)}
.contact-hero-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:72px;align-items:start}
.contact-intro{padding-top:15px}
.contact-intro h1{max-width:610px;margin:18px 0 23px;font-family:'Manrope',Arial,sans-serif;font-size:clamp(44px,4.3vw,64px);font-weight:700;line-height:1.08;letter-spacing:-.05em}
.contact-intro>p{max-width:610px;color:#60646b;font-size:17px;line-height:1.75}
.contact-direct{display:grid;gap:12px;margin:35px 0 26px}
.contact-direct>a,.contact-direct>div{min-height:73px;padding:13px 16px;display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto;column-gap:13px;align-items:center;border:1px solid #e4e5e7;border-radius:13px;background:#fff;box-shadow:0 10px 29px #0000000b}
.contact-direct span{grid-row:1/3;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;color:#bd101f;background:#fff0f1}
.contact-direct strong{font-size:14px}.contact-direct small{color:#777b82;font-size:11px}
.contact-switch{display:flex;gap:8px;color:#6c7077;font-size:13px}.contact-switch a{color:#bd101f;font-weight:900}
.contact-form-card{padding:35px;border:1px solid #e2e3e5;border-radius:20px;background:#fff;box-shadow:0 22px 55px #00000012}
.contact-form-head{margin-bottom:26px}.contact-form-head>span{color:#bd101f;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.1em}
.contact-form-head h2{margin:8px 0 7px;font-family:'Manrope',Arial,sans-serif;font-size:30px;font-weight:800}.contact-form-head p{margin:0;color:#83878e;font-size:12px}
.public-contact-form{display:grid;gap:17px}.form-field{display:grid;gap:8px}.form-field>span{font-size:13px;font-weight:800}
.form-field input,.form-field textarea,.form-field select{width:100%;padding:13px 14px;border:1px solid #d9dbe0;border-radius:9px;background:#fff;color:#202228;font:inherit;transition:border-color .18s ease,box-shadow .18s ease}
.form-field textarea{resize:vertical;line-height:1.55}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{outline:none;border-color:#bd101f;box-shadow:0 0 0 3px #bd101f12}
.form-field.has-error input,.form-field.has-error textarea,.form-field.has-error select{border-color:#bd101f;background:#fff8f8}.form-field small,.privacy-field small{color:#a30c19;font-size:11px}
.privacy-field{display:grid;grid-template-columns:20px 1fr;gap:10px;align-items:start;color:#62666d;font-size:11px;line-height:1.55}.privacy-field input{width:17px;height:17px;margin-top:1px;accent-color:#bd101f}.privacy-field small{grid-column:2}
.contact-submit{width:100%;min-height:52px;margin-top:3px;justify-content:space-between;padding-inline:20px}.form-security{margin:0;text-align:center;color:#8a8e95;font-size:10px}
.form-errors{padding:13px 15px;margin-bottom:18px;border:1px solid #f0cbd0;border-radius:9px;color:#94111d;background:#fff4f5}.form-errors strong{font-size:12px}.form-errors p{margin:5px 0 0;font-size:11px}
.form-honeypot{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.success-body{min-height:100vh;display:grid;place-items:center;padding:25px;background:linear-gradient(135deg,#f7f7f8,#fff2f3)}
.success-card{width:min(650px,100%);padding:48px;text-align:center;border:1px solid #e4e5e7;border-radius:22px;background:#fff;box-shadow:0 25px 70px #00000016}
.success-check{width:72px;height:72px;margin:0 auto 24px;display:grid;place-items:center;border-radius:50%;color:#fff;background:#bd101f;font-size:31px;font-weight:900}.success-card h1{margin:9px 0 16px;font-family:'Manrope',Arial,sans-serif;font-size:43px;font-weight:700}.success-card p{color:#62666d;line-height:1.7}.success-actions{display:flex;justify-content:center;gap:12px;margin-top:27px}
@media(max-width:930px){.contact-hero-grid{grid-template-columns:1fr;gap:45px}.contact-intro{padding-top:0}}
@media(max-width:560px){.contact-hero{padding:45px 0 65px}.contact-intro h1{font-size:39px}.contact-form-card{padding:24px}.contact-switch{flex-direction:column}.success-card{padding:34px 23px}.success-card h1{font-size:35px}.success-actions{flex-direction:column}}


/* RC3.5a — runtime silnika Form Builder */
.form-builder-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:16px;
}
.form-builder-field{grid-column:span 4}
.form-builder-field.width-25{grid-column:span 1}
.form-builder-field.width-50{grid-column:span 2}
.form-builder-field.width-75{grid-column:span 3}
.form-builder-field.width-100{grid-column:span 4}
.form-builder-field em{
    display:block;
    margin-top:6px;
    color:#7c8087;
    font-size:10px;
    font-style:normal;
    line-height:1.5;
}
.form-builder-field h3{margin:8px 0 4px;font-size:22px}
.form-builder-field>p{margin:0;color:#74787f;font-size:11px}
.form-builder-field hr{border:0;border-top:1px solid #e0e1e4}
.form-builder-field fieldset,fieldset.form-builder-field{margin:0;padding:0;border:0}
.form-builder-field legend{margin-bottom:10px;font-weight:800}
.choice-field{
    display:flex!important;
    align-items:center;
    gap:8px!important;
    margin:7px 0;
}
.choice-field input{width:17px!important;height:17px!important}
@media(max-width:800px){
    .form-builder-field.width-25,
    .form-builder-field.width-50,
    .form-builder-field.width-75,
    .form-builder-field.width-100{grid-column:span 4}
}


/* RC3.5c1 — poprawka układu i UX formularza publicznego */
.public-contact-form,
.public-contact-form *{
    box-sizing:border-box;
}

.public-contact-form{
    width:100%;
    min-width:0;
}

.form-builder-grid{
    width:100%;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px 16px;
    align-items:start;
}

.form-builder-field{
    min-width:0;
    grid-column:span 4;
    display:grid;
    gap:8px;
    margin:0;
    color:#202228;
    font-size:13px;
    font-weight:800;
}

.form-builder-field.width-25{grid-column:span 1}
.form-builder-field.width-50{grid-column:span 2}
.form-builder-field.width-75{grid-column:span 3}
.form-builder-field.width-100{grid-column:span 4}

.form-builder-field>span,
.form-builder-field>legend{
    display:block;
    margin:0;
    color:#22252a;
    font-size:13px;
    font-weight:800;
    line-height:1.35;
}

.form-builder-field input:not([type="checkbox"]):not([type="radio"]),
.form-builder-field textarea,
.form-builder-field select{
    display:block;
    width:100%;
    max-width:100%;
    min-width:0;
    margin:0;
    padding:13px 14px;
    border:1px solid #d9dbe0;
    border-radius:9px;
    outline:none;
    background:#fff;
    color:#202228;
    font:inherit;
    font-size:14px;
    font-weight:500;
    line-height:1.4;
    transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;
}

.form-builder-field input:not([type="checkbox"]):not([type="radio"]),
.form-builder-field select{
    min-height:48px;
}

.form-builder-field textarea{
    min-height:148px;
    resize:vertical;
    line-height:1.55;
}

.form-builder-field input::placeholder,
.form-builder-field textarea::placeholder{
    color:#8b8f96;
    opacity:1;
}

.form-builder-field input:focus,
.form-builder-field textarea:focus,
.form-builder-field select:focus{
    border-color:#bd101f;
    box-shadow:0 0 0 3px rgba(189,16,31,.08);
}

.form-builder-field input[readonly]{
    color:#6f737a;
    background:#f5f5f6;
}

.form-builder-field.has-error input,
.form-builder-field.has-error textarea,
.form-builder-field.has-error select{
    border-color:#bd101f;
    background:#fff8f8;
}

.form-builder-field.has-error>small{
    display:block;
    color:#a30c19;
    font-size:11px;
    font-weight:700;
    line-height:1.4;
}

.form-builder-field em{
    display:block;
    margin:0;
    color:#7c8087;
    font-size:10px;
    font-style:normal;
    font-weight:500;
    line-height:1.5;
}

fieldset.form-builder-field{
    padding:0;
    border:0;
}

.choice-field{
    min-height:34px;
    display:flex!important;
    align-items:center;
    gap:9px!important;
    margin:0!important;
    color:#555a61;
    font-size:12px;
    font-weight:600;
}

.choice-field input{
    flex:0 0 auto;
    width:17px!important;
    height:17px!important;
    margin:0;
    accent-color:#bd101f;
}

.privacy-field{
    grid-template-columns:20px minmax(0,1fr);
    column-gap:10px;
    row-gap:5px;
    align-items:start;
    padding:3px 0;
    color:#62666d;
    font-size:11px;
    font-weight:500;
    line-height:1.55;
}

.privacy-field input{
    grid-column:1;
    width:17px;
    height:17px;
    margin:1px 0 0;
    accent-color:#bd101f;
}

.privacy-field>span{
    grid-column:2;
    color:#62666d;
    font-size:11px;
    font-weight:500;
    line-height:1.55;
}

.privacy-field>small{
    grid-column:2;
    color:#a30c19;
    font-size:11px;
    font-weight:700;
}

.form-builder-field h3{
    margin:5px 0 0;
    font-size:22px;
    line-height:1.25;
}

.form-builder-field>p{
    margin:0;
    color:#74787f;
    font-size:11px;
    font-weight:500;
}

.form-builder-field hr{
    width:100%;
    margin:6px 0;
    border:0;
    border-top:1px solid #e0e1e4;
}

.contact-submit{
    position:relative;
    width:100%;
    min-height:53px;
    margin-top:7px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:14px 20px;
    border:0;
    border-radius:9px;
    cursor:pointer;
}

.contact-submit:disabled{
    cursor:wait;
    opacity:.82;
}

.submit-loader{
    display:none;
    width:18px;
    height:18px;
    flex:0 0 18px;
    border:2px solid rgba(255,255,255,.38);
    border-top-color:#fff;
    border-radius:50%;
    animation:form-submit-spin .7s linear infinite;
}

.contact-submit.is-loading .submit-arrow{
    display:none;
}

.contact-submit.is-loading .submit-loader{
    display:block;
}

@keyframes form-submit-spin{
    to{transform:rotate(360deg)}
}

.form-security{
    margin-top:1px;
    line-height:1.45;
}

@media(max-width:800px){
    .form-builder-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .form-builder-field.width-25,
    .form-builder-field.width-50{
        grid-column:span 1;
    }

    .form-builder-field.width-75,
    .form-builder-field.width-100{
        grid-column:span 2;
    }
}

@media(max-width:560px){
    .form-builder-grid{
        grid-template-columns:1fr;
        gap:16px;
    }

    .form-builder-field,
    .form-builder-field.width-25,
    .form-builder-field.width-50,
    .form-builder-field.width-75,
    .form-builder-field.width-100{
        grid-column:span 1;
    }

    .form-builder-field input:not([type="checkbox"]):not([type="radio"]),
    .form-builder-field textarea,
    .form-builder-field select{
        font-size:16px;
    }
}


/* RC3.5d — załączniki */
.upload-dropzone{min-height:170px;padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border:2px dashed #d7d9de;border-radius:12px;background:#fafafa;text-align:center;cursor:pointer;transition:.18s}
.upload-dropzone:hover,.upload-dropzone.is-dragging{border-color:#bd101f;background:#fff6f7;transform:translateY(-1px)}
.upload-dropzone input{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important}
.upload-dropzone-icon{font-size:32px}.upload-dropzone strong{font-size:14px}.upload-dropzone em{color:#777c83;font-size:11px;font-style:normal}.upload-dropzone small{color:#969aa1;font-size:9px;line-height:1.45}
.upload-list{display:grid;gap:8px}.upload-item{padding:11px 12px;display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;border:1px solid #e0e1e4;border-radius:9px;background:#fff}
.upload-file-icon{font-size:23px}.upload-file-copy strong,.upload-file-copy small{display:block}.upload-file-copy strong{font-size:11px;word-break:break-word}.upload-file-copy small{margin-top:3px;color:#8a8e95;font-size:8px}
.upload-file-state{padding:5px 8px;border-radius:999px;color:#26733c;background:#eaf7ee;font-size:8px;font-weight:900}.upload-error{padding:10px;border-radius:8px;color:#a31521;background:#fff0f1;font-size:10px;font-weight:700}
