.kd-site-form { width:100%; min-width:0; }
.kd-site-form [hidden] { display:none!important; }
.kd-site-form .kd-form-error { margin-bottom:16px; color:#b21e23; font-size:15px; line-height:1.5; }
.kd-site-form .kd-form-grid { display:grid; gap:16px; min-width:0; }
.kd-site-form .kd-form-fields { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; width:100%; min-width:0; height:auto!important; }
.kd-site-form .kd-field-text { grid-column:1 / -1; }
.kd-site-form .block-form-center:not([hidden]) { display:block!important; width:100%; }
.kd-site-form .block-form-group { margin:0; padding:0; min-width:0; width:100%; }
.kd-site-form .kd-form-secondary { min-width:0; }
.kd-site-form .form-control,.kd-site-form .form-select { width:100%!important; min-width:0!important; max-width:100%!important; font-size:16px; }
.kd-site-form .form-control { background-color:#e6e6e6; color:#292929; border-radius:0; }
.kd-site-form textarea.form-control { min-height:112px; resize:vertical; }
.kd-site-form .form-control[type=file] { padding:12px; font-size:14px; }
.kd-site-form .form-input-file small { display:block; margin-top:5px; font-size:12px; }
.kd-site-form .kd-form-actions { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; gap:16px; margin-top:16px; }
.kd-site-form .kd-form-actions>.col-submit,.kd-site-form .kd-form-actions>.col-politics { width:100%!important; min-width:0; max-width:100%!important; padding:0; }
.kd-site-form .btn-submit { width:100%!important; min-width:0!important; min-height:58px; padding:16px 24px; display:flex; justify-content:center; align-items:center; background:#b21e23; color:#fff; }
.kd-site-form .btn-submit,.kd-site-form .btn-submit span { white-space:nowrap!important; overflow-wrap:normal; word-break:normal; }
.kd-site-form .block-form-politics { font-size:14px; line-height:1.45; overflow-wrap:break-word; }
.kd-site-form .block-form-politics a { color:#b21e23; text-decoration:underline; }
.kd-site-form .block-form-politics .form-check { padding-left:30px; margin:0; }
.kd-site-form .block-form-politics .form-check-input { float:left; margin-left:-30px; margin-top:3px; }
.kd-site-form .kd-policy-link { display:block; margin-top:10px; }
.kd-site-form .kd-split-grid { grid-template-columns:minmax(0,1fr) minmax(0,2fr); }
.kd-site-form .kd-split-grid .kd-form-fields { grid-template-columns:minmax(0,1fr); }
.kd-site-form.kd-layout-sidebar .kd-form-fields,.kd-site-form.kd-layout-modal_element .kd-form-fields,.kd-site-form.kd-layout-element_callme .kd-form-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
.kd-site-form.kd-layout-sidebar .kd-form-actions { grid-template-columns:minmax(0,1fr); }
.kd-site-form.kd-layout-sidebar .col-politics { grid-row:1; }
.kd-site-form.kd-layout-sidebar .col-submit { grid-row:2; }
.kd-site-form.kd-layout-sidebar .block-form-politics,.kd-site-form.kd-layout-sidebar .form-check-label { color:#f5f5f5; }
.kd-site-form.kd-layout-sidebar .block-form-politics a { color:inherit; }
.kd-site-form .block-form-result:not([hidden]) { position:static!important; display:block!important; opacity:1!important; visibility:visible!important; transform:none!important; padding:24px; background:#fff; color:#292929; }
.kd-site-form .block-form-result-center { position:static; display:grid; gap:10px; text-align:center; color:#292929!important; }
@media(max-width:991.98px) {
 .kd-site-form .kd-form-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .kd-site-form .kd-split-grid { grid-template-columns:minmax(0,1fr); }
 .kd-site-form .kd-split-grid .kd-form-fields { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:767.98px) {
 .kd-site-form .kd-form-actions { grid-template-columns:minmax(0,1fr); }
 .kd-site-form .kd-form-actions>.col-politics { grid-row:1; }
 .kd-site-form .kd-form-actions>.col-submit { grid-row:2; }
}
@media(max-width:575.98px) {
 .kd-site-form .kd-form-fields,.kd-site-form.kd-layout-sidebar .kd-form-fields,.kd-site-form.kd-layout-modal_element .kd-form-fields,.kd-site-form.kd-layout-element_callme .kd-form-fields { grid-template-columns:minmax(0,1fr); }
}
/* Project manager form: aligned consent and policy, then centered submit. */
.kd-site-form.kd-layout-discuss .kd-form-actions { grid-template-columns:minmax(0,1fr); }
.kd-site-form.kd-layout-discuss .kd-form-actions>.col-submit { grid-row:2; justify-self:center; max-width:320px!important; margin:0; }
.kd-site-form.kd-layout-discuss .kd-form-actions>.col-politics { grid-row:1; margin:0; }
.kd-site-form.kd-layout-discuss .kd-policy-link { margin-left:30px; }
/* Estimate: choose a contact channel, then reveal the existing email enquiry. */
.kd-estimate-modal [hidden] { display:none!important; }
.kd-estimate-modal[data-kd-view="channels"] .modal-dialog { max-width:420px; margin-left:auto; margin-right:auto; }
.kd-estimate-modal .modal-content { background:#fff; color:#292929; border-radius:16px; }
.kd-estimate-modal .modal-header { padding:28px 52px 22px 28px; }
.kd-estimate-modal .modal-title { width:100%; color:#292929; font-size:23px; font-weight:500; line-height:1.3; letter-spacing:0; text-transform:none; text-align:center; }
.kd-estimate-modal .modal-header .btn-close { top:12px; right:12px; bottom:auto; width:20px; height:20px; padding:8px; box-sizing:content-box; background-size:16px; }
.kd-estimate-modal .modal-body { padding:0 28px 28px; background:none; }
.kd-estimate-modal .modal-footer { display:none; }
.kd-estimate-modal .kd-estimate-channels { display:grid; gap:16px; }
.kd-estimate-modal .kd-estimate-channel { display:flex; justify-content:center; align-items:center; width:100%; min-height:50px; padding:12px 20px; border:1px solid #b21e23; border-radius:28px; background:#fff; color:#b21e23; font:inherit; font-size:18px; line-height:1.3; text-decoration:none; cursor:pointer; }
.kd-estimate-modal .kd-estimate-channel:hover { background:#b21e23; color:#fff; }
.kd-estimate-modal .kd-estimate-channel:focus-visible,.kd-estimate-modal .kd-estimate-back:focus-visible { outline:2px solid #b21e23; outline-offset:3px; }
.kd-estimate-modal .kd-estimate-policy { color:#666; font-size:12px; line-height:1.5; text-align:center; text-decoration:underline; }
.kd-estimate-modal .kd-estimate-back { display:block; margin:0 0 24px; padding:8px 0; border:0; background:transparent; color:#b21e23; font:inherit; font-size:14px; cursor:pointer; }
@media(max-width:575.98px) {
 .kd-estimate-modal .modal-dialog { width:calc(100% - 24px); margin:12px auto; }
 .kd-estimate-modal .modal-header { padding-left:20px; }
 .kd-estimate-modal .modal-body { padding-left:20px; padding-right:20px; }
 .kd-estimate-modal .modal-title { font-size:21px; }
}
