.p4 { font-family: 'Poppins', sans-serif; color: #3d3f4a; font-size: 16px; line-height: 1.7; background: #ffffff; color-scheme: only light !important; -webkit-font-smoothing: antialiased; } .p4 *, .p4 *::before, .p4 *::after { box-sizing: border-box; margin: 0; padding: 0; } .p4 a { text-decoration: none; } .p4 img { max-width: 100%; display: block; } .p4 .wrap { max-width: 1140px; margin: 0 auto; padding: 0 48px; } .p4 .wrap--narrow { max-width: 860px; margin: 0 auto; padding: 0 48px; } .p4 section.full { position: relative; overflow: hidden; width: 100%; } .p4 .hero { background: #1e2636; padding: 96px 0 80px; position: relative; overflow: hidden; } .p4 .hero::before { content: 'SR'; position: absolute; right: -40px; top: -60px; font-family: 'Raleway', sans-serif; font-size: 320px; font-weight: 800; color: rgba(255,255,255,0.025); line-height: 1; pointer-events: none; user-select: none; } .p4 .hero__inner { display: grid; grid-template-columns: 1fr 420px; gap: 60px; align-items: center; } .p4 .hero__eyebrow { font-size: 11px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: #4ECDC4; margin-bottom: 20px; display: flex; align-items: center; gap: 10px; } .p4 .hero__eyebrow::before { content: ''; display: block; width: 28px; height: 2px; background: #4ECDC4; } .p4 .hero__h1 { font-family: 'Raleway', sans-serif; font-size: clamp(36px, 4.5vw, 60px); font-weight: 800; line-height: 1.08; color: #ffffff; margin-bottom: 24px; letter-spacing: -0.02em; } .p4 .hero__h1 em { font-style: italic; font-weight: 400; color: #4ECDC4; } .p4 .hero__lead { font-size: 17px; font-weight: 300; color: rgba(255,255,255,0.72); line-height: 1.8; margin-bottom: 40px; max-width: 520px; } .p4 .hero__cta { display: flex; gap: 16px; flex-wrap: wrap; } .p4 .btn-red { display: inline-flex; align-items: center; gap: 8px; background: #FF0000; color: #ffffff; font-family: 'Poppins', sans-serif; font-size: 14px; font-weight: 600; padding: 14px 28px; border-radius: 4px; border: 2px solid #FF0000; cursor: pointer; transition: background .2s, transform .15s; letter-spacing: .03em; } .p4 .btn-red:hover { background: #cc0000; border-color: #cc0000; transform: translateY(-1px); } .p4 .btn-outline-dark { display: inline-flex; align-items: center; gap: 8px; background: transparent; color: #ffffff; font-family: 'Poppins', sans-serif; font-size: 14px; font-weight: 500; padding: 14px 28px; border-radius: 4px; border: 2px solid rgba(255,255,255,0.35); cursor: pointer; transition: border-color .2s, background .2s; letter-spacing: .03em; } .p4 .btn-outline-dark:hover { border-color: rgba(255,255,255,0.7); background: rgba(255,255,255,0.06); } .p4 .hero__visual { position: relative; } .p4 .hero-timeline { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); border-radius: 12px; padding: 28px 24px; backdrop-filter: blur(8px); } .p4 .hero-timeline__label { font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #4ECDC4; margin-bottom: 20px; } .p4 .htl-step { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 6px; } .p4 .htl-step:last-child { margin-bottom: 0; } .p4 .htl-step__track { display: flex; flex-direction: column; align-items: center; flex-shrink: 0; padding-top: 2px; } .p4 .htl-step__dot { width: 28px; height: 28px; border-radius: 50%; background: #1e2636; border: 2px solid #4ECDC4; display: flex; align-items: center; justify-content: center; font-family: 'Raleway', sans-serif; font-size: 11px; font-weight: 800; color: #4ECDC4; flex-shrink: 0; position: relative; z-index: 1; } .p4 .htl-step__line { width: 2px; flex: 1; min-height: 18px; background: rgba(78,205,196,0.25); margin: 3px 0; } .p4 .htl-step:last-child .htl-step__line { display: none; } .p4 .htl-step__body { flex: 1; padding-bottom: 14px; } .p4 .htl-step:last-child .htl-step__body { padding-bottom: 0; } .p4 .htl-step__name { font-size: 13px; font-weight: 600; color: #ffffff; line-height: 1.3; margin-bottom: 4px; } .p4 .htl-step__meta { display: flex; gap: 8px; flex-wrap: wrap; } .p4 .htl-step__time { font-size: 11px; font-weight: 500; color: #4ECDC4; background: rgba(78,205,196,0.12); padding: 2px 8px; border-radius: 20px; } .p4 .htl-step__note { font-size: 11px; color: rgba(255,255,255,0.45); padding: 2px 0; } .p4 .hero-timeline__footer { margin-top: 18px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,0.08); display: flex; justify-content: space-between; align-items: center; } .p4 .hero-timeline__total { font-family: 'Raleway', sans-serif; font-size: 28px; font-weight: 800; color: #ffffff; } .p4 .hero-timeline__total-label { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 2px; } .p4 .hero-timeline__avg { text-align: right; } .p4 .hero-timeline__avg-num { font-family: 'Raleway', sans-serif; font-size: 22px; font-weight: 800; color: #FF0000; } .p4 .hero-timeline__avg-label { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 2px; } .p4 .statband { background: #1e2636; padding: 0 0 60px; } .p4 .statband__inner { border: 2px solid #FF0000; border-radius: 8px; display: grid; grid-template-columns: repeat(3, 1fr); overflow: hidden; } .p4 .stat { padding: 40px 36px; text-align: center; position: relative; } .p4 .stat + .stat::before { content: ''; position: absolute; left: 0; top: 20%; bottom: 20%; width: 1px; background: rgba(255,0,0,0.25); } .p4 .stat__num { font-family: 'Raleway', sans-serif; font-size: clamp(44px, 5vw, 68px); font-weight: 800; color: #FF0000; line-height: 1; margin-bottom: 10px; display: block; } .p4 .stat__desc { font-size: 14px; font-weight: 400; color: rgba(255,255,255,0.65); line-height: 1.5; max-width: 200px; margin: 0 auto; } .p4 .stat__desc strong { color: #ffffff; font-weight: 600; } .p4 .intro { background: #ffffff; padding: 88px 0; } .p4 .intro__quote { border-left: 4px solid #FF0000; padding: 20px 0 20px 32px; margin-bottom: 36px; max-width: 720px; } .p4 .intro__quote p { font-family: 'Raleway', sans-serif; font-size: clamp(19px, 2.2vw, 26px); font-weight: 700; color: #0f1117; line-height: 1.45; margin-bottom: 0; } .p4 .intro__quote p span { color: #FF0000; font-weight: 800; } .p4 .intro__body { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; } .p4 .intro__body p { font-size: 16px; color: #3d3f4a; line-height: 1.8; } .p4 .intro__body p + p { margin-top: 16px; } .p4 .articles { background: #1e2636; padding: 88px 0; } .p4 .sec-label-dark { font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #4ECDC4; margin-bottom: 12px; display: flex; align-items: center; gap: 10px; } .p4 .sec-label-dark::before { content: ''; display: block; width: 20px; height: 2px; background: #4ECDC4; flex-shrink: 0; } .p4 .sec-label-lite { font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #FF0000; margin-bottom: 12px; display: flex; align-items: center; gap: 10px; } .p4 .sec-label-lite::before { content: ''; display: block; width: 20px; height: 2px; background: #FF0000; flex-shrink: 0; } .p4 .p4-h2-dark { font-family: 'Raleway', sans-serif; font-size: clamp(26px, 3vw, 38px); font-weight: 800; color: #ffffff !important; line-height: 1.15; margin-bottom: 48px; letter-spacing: -0.01em; } .p4 .p4-h2-lite { font-family: 'Raleway', sans-serif; font-size: clamp(26px, 3vw, 38px); font-weight: 800; color: #0f1117 !important; line-height: 1.15; margin-bottom: 48px; letter-spacing: -0.01em; } .p4 .art-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-bottom: 32px; } .p4 .art { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; overflow: hidden; display: flex; flex-direction: column; transition: border-color .2s, transform .2s; } .p4 .art:hover { border-color: rgba(78,205,196,0.5); transform: translateY(-3px); } .p4 .art__img { position: relative; aspect-ratio: 16/9; overflow: hidden; background: #2a3347; } .p4 .art__img img { width: 100%; height: 100%; object-fit: cover; opacity: .85; transition: opacity .3s; } .p4 .art:hover .art__img img { opacity: 1; } .p4 .art__cat { position: absolute; top: 12px; left: 12px; background: #4ECDC4; color: #1e2636; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: 3px 10px; border-radius: 20px; } .p4 .art__body { padding: 22px 22px 18px; flex: 1; display: flex; flex-direction: column; } .p4 .art__title { font-size: 15px; font-weight: 600; color: #ffffff; line-height: 1.4; margin-bottom: 8px; } .p4 .art__exc { font-size: 13px; font-weight: 300; color: rgba(255,255,255,0.55); line-height: 1.6; flex: 1; margin-bottom: 16px; } .p4 .art__footer { display: flex; justify-content: space-between; align-items: center; } .p4 .art__read { font-size: 12px; font-weight: 600; color: #4ECDC4; letter-spacing: .04em; } .p4 .art__date { font-size: 11px; color: rgba(255,255,255,0.3); } .p4 .art--soon { border-style: dashed; border-color: rgba(255,255,255,0.15); background: rgba(255,255,255,0.02); cursor: default; } .p4 .art--soon:hover { transform: none; border-color: rgba(255,255,255,0.15); } .p4 .art--soon .art__img { background: #242d40; } .p4 .art--soon .art__img::after { content: 'WKRÓTCE'; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; letter-spacing: .18em; color: rgba(255,255,255,0.25); } .p4 .art--soon .art__title { color: rgba(255,255,255,0.4); } .p4 .art--soon .art__exc { color: rgba(255,255,255,0.2); } .p4 .coming-label { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,0.35); margin-bottom: 16px; margin-top: 16px; } .p4 .coming-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; } .p4 .coming-item { background: rgba(255,255,255,0.03); border: 1px dashed rgba(255,255,255,0.1); border-radius: 6px; padding: 16px 18px; } .p4 .coming-item__title { font-size: 13px; font-weight: 500; color: rgba(255,255,255,0.35); line-height: 1.4; margin-bottom: 8px; } .p4 .coming-item__badge { font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,0.2); background: rgba(255,255,255,0.05); padding: 2px 8px; border-radius: 20px; display: inline-block; } .p4 .mec1 { background: #151c2b; padding: 88px 0; } .p4 .mec1__intro { max-width: 680px; margin-bottom: 56px; } .p4 .mec1__intro p { font-size: 16px; color: rgba(255,255,255,0.6); line-height: 1.8; margin-top: 0; } .p4 .stages-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; margin-bottom: 64px; background: rgba(255,255,255,0.08); border-radius: 8px; overflow: hidden; } .p4 .stage { background: #1e2636; padding: 32px 24px; position: relative; } .p4 .stage__num { font-family: 'Raleway', sans-serif; font-size: 48px; font-weight: 800; color: rgba(78,205,196,0.15); line-height: 1; margin-bottom: 20px; display: block; } .p4 .stage__name { font-size: 15px; font-weight: 700; color: #ffffff; margin-bottom: 8px; line-height: 1.3; } .p4 .stage__tasks { list-style: none; display: flex; flex-direction: column; gap: 6px; margin-top: 12px; } .p4 .stage__tasks li { font-size: 12px; font-weight: 400; color: rgba(255,255,255,0.5); padding-left: 14px; position: relative; line-height: 1.4; } .p4 .stage__tasks li::before { content: '›'; position: absolute; left: 0; color: #4ECDC4; font-weight: 700; } .p4 .stage__kpi { margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,0.07); font-size: 11px; color: #4ECDC4; font-weight: 500; } .p4 .stage__kpi span { font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 18px; display: block; margin-bottom: 2px; } .p4 .mity-label { font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #4ECDC4; margin-bottom: 28px; display: flex; align-items: center; gap: 10px; } .p4 .mity-label::before { content: ''; display: block; width: 20px; height: 2px; background: #4ECDC4; flex-shrink: 0; } .p4 .myth-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; } .p4 .myth { background: rgba(255,255,255,0.04); border-radius: 8px; overflow: hidden; display: grid; grid-template-columns: 1fr 1fr; } .p4 .myth__false { padding: 24px 22px; border-right: 1px solid rgba(255,255,255,0.06); } .p4 .myth__true { padding: 24px 22px; background: rgba(78,205,196,0.05); } .p4 .myth__tag { font-size: 9px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; padding: 3px 8px; border-radius: 20px; display: inline-block; margin-bottom: 10px; } .p4 .myth__tag--false { background: rgba(255,0,0,0.15); color: #ff6666; } .p4 .myth__tag--true { background: rgba(78,205,196,0.15); color: #4ECDC4; } .p4 .myth__text { font-size: 13px; line-height: 1.55; } .p4 .myth__false .myth__text { color: rgba(255,255,255,0.45); } .p4 .myth__true .myth__text { color: rgba(255,255,255,0.78); font-weight: 500; } .p4 .myth__data { font-size: 11px; color: #4ECDC4; margin-top: 8px; font-weight: 600; } .p4 .mec2 { background: #F4F5F7; padding: 88px 0; } .p4 .mec2__intro { max-width: 100%; margin-bottom: 52px; } .p4 .mec2__intro p { font-size: 16px; color: #3d3f4a; line-height: 1.8; } .p4 .bottleneck-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 60px; } .p4 .bn { background: #ffffff; border-radius: 8px; padding: 28px 24px; border-top: 3px solid transparent; box-shadow: 0 2px 12px rgba(0,0,0,0.06); transition: box-shadow .2s; } .p4 .bn:hover { box-shadow: 0 6px 24px rgba(0,0,0,0.1); } .p4 .bn--critical { border-top-color: #FF0000; } .p4 .bn--warn { border-top-color: #e8a020; } .p4 .bn--ok { border-top-color: #4ECDC4; } .p4 .bn__icon { display: block; width: 28px; height: 28px; margin-bottom: 14px; flex-shrink: 0; } .p4 .bn__name { font-size: 15px; font-weight: 700; color: #0f1117; margin-bottom: 6px; } .p4 .bn__stat { font-family: 'Raleway', sans-serif; font-size: 32px; font-weight: 800; color: #1e2636; margin-bottom: 4px; display: block; } .p4 .bn__desc { font-size: 13px; color: #7a7d8a; line-height: 1.5; margin-bottom: 12px; } .p4 .bn__fix { font-size: 12px; font-weight: 600; color: #0f1117; padding-top: 12px; border-top: 1px solid #e2e0db; } .p4 .bn__fix-label { font-size: 10px; text-transform: uppercase; letter-spacing: .1em; color: #7a7d8a; margin-bottom: 4px; display: block; } .p4 .bn__severity { font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: 2px 8px; border-radius: 20px; display: inline-block; margin-bottom: 12px; } .p4 .bn--critical .bn__severity { background: #fff0f0; color: #FF0000; } .p4 .bn--warn .bn__severity { background: #faeeda; color: #854F0B; } .p4 .bn--ok .bn__severity { background: #e8f5f4; color: #2d8077; } .p4 .tools-label { font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #FF0000; margin-bottom: 28px; display: flex; align-items: center; gap: 10px; } .p4 .tools-label::before { content: ''; display: block; width: 20px; height: 2px; background: #FF0000; flex-shrink: 0; } .p4 .tools-heading { font-family: 'Raleway', sans-serif; font-size: clamp(22px, 2.5vw, 30px); font-weight: 800; color: #0f1117; margin-bottom: 32px; letter-spacing: -0.01em; } .p4 .tools-table { width: 100%; border-collapse: collapse; font-size: 14px; } .p4 .tools-table th { background: #1e2636; color: #ffffff; padding: 12px 16px; text-align: left; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; } .p4 .tools-table td { padding: 14px 16px; border-bottom: 1px solid #e2e0db; color: #3d3f4a; vertical-align: top; } .p4 .tools-table tr:nth-child(even) td { background: #F4F5F7; } .p4 .tools-table tr:hover td { background: #e8f0f8; } .p4 .tools-table .td-name { font-weight: 700; color: #0f1117; } .p4 .tools-table .td-fit { font-size: 11px; font-weight: 700; padding: 2px 10px; border-radius: 20px; white-space: nowrap; display: inline-block; } .p4 .fit-high { background: #e8f5f4; color: #2d8077; } .p4 .fit-med { background: #faeeda; color: #854F0B; } .p4 .fit-low { background: #fff0f0; color: #cc0000; } .p4 .mec3 { background: #1e2636; padding: 88px 0; } .p4 .mec3__grid { display: block; } .p4 .calc-box { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); border-radius: 10px; padding: 36px 32px; } .p4 .calc-box__title { font-family: 'Raleway', sans-serif; font-size: 20px; font-weight: 800; color: #ffffff; margin-bottom: 6px; } .p4 .calc-box__sub { font-size: 13px; color: rgba(255,255,255,0.45); margin-bottom: 28px; line-height: 1.5; } .p4 .calc-field { margin-bottom: 18px; } .p4 .calc-field label { display: block; font-size: 12px; font-weight: 600; color: rgba(255,255,255,0.6); letter-spacing: .04em; margin-bottom: 6px; } .p4 .calc-field input { width: 100%; background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.15); border-radius: 5px; padding: 10px 14px; font-family: 'Poppins', sans-serif; font-size: 15px; font-weight: 500; color: #ffffff; outline: none; transition: border-color .2s; } .p4 .calc-field input:focus { border-color: #4ECDC4; } .p4 .calc-field input::placeholder { color: rgba(255,255,255,0.2); } .p4 .calc-btn { width: 100%; background: #FF0000; border: none; border-radius: 5px; padding: 13px; font-family: 'Poppins', sans-serif; font-size: 14px; font-weight: 700; color: #ffffff; cursor: pointer; margin-top: 6px; transition: background .2s; letter-spacing: .03em; } .p4 .calc-btn:hover { background: #cc0000; } .p4 .calc-result { margin-top: 24px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.08); display: none; } .p4 .calc-result.visible { display: block; } .p4 .calc-result__label { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,0.4); margin-bottom: 8px; } .p4 .calc-result__num { font-family: 'Raleway', sans-serif; font-size: 44px; font-weight: 800; color: #4ECDC4; line-height: 1; margin-bottom: 8px; } .p4 .calc-result__breakdown { font-size: 12px; color: rgba(255,255,255,0.45); line-height: 1.7; } .p4 .checklist-box { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); border-radius: 10px; padding: 36px 32px; } .p4 .checklist-groups-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 48px; } .p4 .checklist-box__title { font-family: 'Raleway', sans-serif; font-size: 20px; font-weight: 800; color: #ffffff; margin-bottom: 6px; } .p4 .checklist-box__sub { font-size: 13px; color: rgba(255,255,255,0.45); margin-bottom: 28px; line-height: 1.5; } .p4 .checklist-group { margin-bottom: 22px; } .p4 .checklist-group__name { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #4ECDC4; margin-bottom: 10px; } .p4 .chk-item { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 8px; cursor: pointer; } .p4 .chk-item:last-child { margin-bottom: 0; } .p4 .chk-item input[type="checkbox"] { display: none; } .p4 .chk-box { width: 18px; height: 18px; border: 2px solid rgba(255,255,255,0.2); border-radius: 3px; flex-shrink: 0; margin-top: 2px; transition: all .15s; display: flex; align-items: center; justify-content: center; font-size: 11px; color: transparent; } .p4 .chk-item.checked .chk-box { background: #4ECDC4; border-color: #4ECDC4; color: #1e2636; } .p4 .chk-text { font-size: 13px; color: rgba(255,255,255,0.6); line-height: 1.4; transition: color .15s; } .p4 .chk-item.checked .chk-text { color: rgba(255,255,255,0.35); text-decoration: line-through; } .p4 .checklist-progress { margin-top: 20px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,0.06); } .p4 .checklist-progress__bar-wrap { background: rgba(255,255,255,0.08); border-radius: 20px; height: 6px; overflow: hidden; margin-bottom: 8px; } .p4 .checklist-progress__bar { height: 100%; background: #4ECDC4; border-radius: 20px; transition: width .3s; width: 0%; } .p4 .checklist-progress__label { font-size: 12px; color: rgba(255,255,255,0.4); } .p4 .checklist-progress__label strong { color: #4ECDC4; font-weight: 700; } .p4 .steps { background: #ffffff; padding: 88px 0; } .p4 .steps__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; margin-bottom: 48px; } .p4 .step { position: relative; } .p4 .step__connector { position: absolute; top: 22px; left: calc(100% - 16px); right: calc(-100% + 16px); height: 2px; background: linear-gradient(90deg, #4ECDC4, rgba(78,205,196,0.2)); z-index: 0; } .p4 .step:last-child .step__connector { display: none; } .p4 .step__num { width: 44px; height: 44px; border-radius: 50%; background: #1e2636; display: flex; align-items: center; justify-content: center; font-family: 'Raleway', sans-serif; font-size: 18px; font-weight: 800; color: #4ECDC4; margin-bottom: 18px; position: relative; z-index: 1; } .p4 .step__name { font-size: 15px; font-weight: 700; color: #0f1117; margin-bottom: 8px; line-height: 1.3; } .p4 .step__desc { font-size: 13px; color: #7a7d8a; line-height: 1.6; } .p4 .step__time { display: inline-flex; align-items: center; gap: 5px; margin-top: 12px; font-size: 11px; font-weight: 600; color: #1e2636; background: #F4F5F7; padding: 4px 10px; border-radius: 20px; } .p4 .inline-art { background: #F4F5F7; border-radius: 8px; padding: 24px 28px; display: flex; align-items: center; gap: 24px; border-left: 4px solid #4ECDC4; transition: background .2s; } .p4 .inline-art:hover { background: #eaebee; } .p4 .inline-art__badge { font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #4ECDC4; background: rgba(78,205,196,0.12); padding: 3px 10px; border-radius: 20px; flex-shrink: 0; } .p4 .inline-art__title { font-size: 15px; font-weight: 700; color: #0f1117; margin-bottom: 4px; } .p4 .inline-art__desc { font-size: 13px; color: #7a7d8a; line-height: 1.5; } .p4 .inline-art__arrow { font-size: 20px; color: #1e2636; margin-left: auto; flex-shrink: 0; font-weight: 700; } .p4 .final { background: #F4F5F7; padding: 88px 0 80px; } .p4 .final__label { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #FF0000; margin-bottom: 20px; display: flex; align-items: center; gap: 10px; } .p4 .final__label::before { content: ''; display: block; width: 24px; height: 2px; background: #FF0000; } .p4 .final__title { font-family: 'Raleway', sans-serif; font-size: clamp(30px, 4vw, 48px); font-weight: 800; line-height: 1.1; color: #0f1117 !important; margin-bottom: 20px; } .p4 .final__body { font-size: 17px; color: #3d3f4a !important; max-width: 480px; margin-bottom: 40px; font-weight: 300; line-height: 1.7; } .p4 .final__note { font-size: 12px; color: #7a7d8a; margin-top: 18px; } @media (prefers-color-scheme: dark) { .p4 .intro { background: #ffffff !important; } .p4 .intro__quote p { color: #0f1117 !important; } .p4 .intro__body p { color: #3d3f4a !important; } .p4 .mec2 { background: #F4F5F7 !important; } .p4 .mec2__intro p { color: #3d3f4a !important; } .p4 .bn { background: #ffffff !important; } .p4 .bn__name { color: #0f1117 !important; } .p4 .bn__stat { color: #1e2636 !important; } .p4 .bn__desc { color: #7a7d8a !important; } .p4 .tools-heading { color: #0f1117 !important; } .p4 .tools-table td { color: #3d3f4a !important; } .p4 .tools-table .td-name { color: #0f1117 !important; } .p4 .steps { background: #ffffff !important; } .p4 .step__name { color: #0f1117 !important; } .p4 .step__desc { color: #7a7d8a !important; } .p4 .step__time { color: #1e2636 !important; background: #F4F5F7 !important; } .p4 .inline-art { background: #F4F5F7 !important; } .p4 .inline-art:hover { background: #eaebee !important; } .p4 .inline-art__title { color: #0f1117 !important; } .p4 .inline-art__desc { color: #7a7d8a !important; } .p4 .inline-art__arrow { color: #1e2636 !important; } .p4 .final { background: #F4F5F7 !important; } .p4 .final__title { color: #0f1117 !important; } .p4 .final__body { color: #3d3f4a !important; } .p4 .final__note { color: #7a7d8a !important; } } @media (max-width: 1024px) { .p4 .hero__inner { grid-template-columns: 1fr; gap: 48px; } .p4 .hero__visual { max-width: 480px; } .p4 .stages-grid { grid-template-columns: repeat(2, 1fr); } .p4 .myth-grid { grid-template-columns: 1fr; } .p4 .mec3__grid { grid-template-columns: 1fr; } } @media (max-width: 768px) { .p4 .hero { padding: 72px 0 60px; } .p4 .wrap, .p4 .wrap--narrow { padding: 0 24px; } .p4 .art-grid { grid-template-columns: 1fr; } .p4 .coming-grid { grid-template-columns: repeat(2, 1fr); } .p4 .statband__inner { grid-template-columns: 1fr; } .p4 .stat + .stat::before { display: none; } .p4 .stat { padding: 30px 24px; border-top: 1px solid rgba(255,0,0,0.15); } .p4 .stat:first-child { border-top: none; } .p4 .intro__body { grid-template-columns: 1fr; gap: 0; } .p4 .bottleneck-grid { grid-template-columns: 1fr; } .p4 .steps__grid { grid-template-columns: 1fr 1fr; gap: 24px; } .p4 .step__connector { display: none; } .p4 .stages-grid { grid-template-columns: 1fr; } .p4 .myth { grid-template-columns: 1fr; } .p4 .myth__false { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.06); } .p4 .final-grid { grid-template-columns: 1fr !important; } } @media (max-width: 480px) { .p4 .coming-grid { grid-template-columns: 1fr; } .p4 .steps__grid { grid-template-columns: 1fr; } .p4 .hero__cta { flex-direction: column; } .p4 .btn-red, .p4 .btn-outline-dark { text-align: center; justify-content: center; } }

HRscore · Baza Wiedzy

Strategia rekrutacji,
nie improwizacja.

Kiedy nie masz procesu, płacisz dwa razy: raz za złe zatrudnienie, drugi raz za zastąpienie go. Ten przewodnik pokazuje, jak zbudować rekrutację opartą na danych — od pierwszego briefu do podpisanej umowy.

Typowy czas procesu rekrutacyjnego

1
Brief stanowiska
1–3 dniczęsto pomijany
2
Sourcing kandydatów
7–14 dnigłówny bottleneck
3
Screening & selekcja
5–10 dni
4
Rozmowy kwalifikacyjne
7–21 dni2–4 rundy
5
Oferta i decyzja
3–7 dni
6
Onboarding
30–90 dnido pełnej produktywności
58%

polskich firm nie ma udokumentowanego procesu rekrutacyjnego — każdy hiring manager robi to inaczej

3,4×

tyle razy droższe jest złe zatrudnienie niż dłuższy, ustrukturyzowany proces rekrutacji (SHRM 2023)

27 dni

o tyle dłużej trwa rekrutacja bez briefu stanowiska — kandydat B jest zatrudniany zamiast kandydata A

Większość firm nie ma problemu z rekrutacją — ma problem z procesem rekrutacji. Bez ustrukturyzowanego pipeline'u każda rekrutacja zaczyna się od zera, kosztuje więcej i kończy się gorzej.

Strategia rekrutacji to nie ogłoszenie na LinkedIn i czekanie. To zaprojektowanie każdego etapu: od zdefiniowania profilu kandydata przez wybór kanałów sourcingowych, po strukturę rozmów i kryteria decyzji. Firmy z udokumentowanym procesem obsadzają stanowiska o 40% szybciej i z dwukrotnie wyższym wskaźnikiem retencji po 12 miesiącach.

Z perspektywy CEO to kwestia P&L — każdy dzień wakatu na stanowisku key-account managera to realny koszt utraconych przychodów. Z perspektywy HR Managera to kwestia skalowalności: proces działa niezależnie od tego, kto akurat prowadzi rekrutację.

Na tej stronie zebraliśmy wszystko, co wiemy o budowaniu strategii rekrutacji opartej na danych: artykuły z klastra, cztery etapy procesu, najczęstsze bottlenecki i narzędzia, które rzeczywiście pomagają — bez marketingowych haseł.

Jedna zasada, którą stosujemy w każdej rekrutacji: jeśli nie możesz opisać swojego procesu w 10 punktach, nie masz procesu. Masz intuicję. A intuicja jest kosztowna, gdy rynek kandydatów jest ciasny i nie ma miejsca na błędy.

Klaster artykułów

Baza wiedzy:
Strategia rekrutacji

Wąskie gardło w rekrutacjiStrategia rekrutacji
Bottlenecks w rekrutacji – jak działa wąskie gardło procesu [CHECKLISTA]
Gdzie dokładnie blokuje się twój proces rekrutacyjny? Praktyczna checklista do samodzielnej diagnozy pipeline'u — z konkretnymi punktami kontrolnymi na każdym etapie.
Dlaczego dobrzy kandydaci okazują się złymi pracownikamiStrategia rekrutacji
Dlaczego dobrzy kandydaci okazują się złymi pracownikami
Kandydat zrobił świetne wrażenie, referencje były bez zarzutu — i po trzech miesiącach wiadomo, że to błąd. Co w procesie rekrutacji prowadzi do takich decyzji i jak to zmienić.
Jak skrócić czas rekrutacji bez spadku jakościStrategia rekrutacji
Jak skrócić czas rekrutacji bez spadku jakości? Praktyczny poradnik
Presja czasu w hiringu to jedno z głównych źródeł złych zatrudnień. Poradnik pokazuje, które etapy można bezpiecznie przyspieszyć — i które skróty kończą się kosztownymi błędami.
Rekrutacja handlowca zakończona sukcesemStrategia rekrutacji
Rekrutacja handlowca zakończona sukcesem – jak skutecznie obsadzić stanowisko?
Handlowiec to jedno z najtrudniejszych stanowisk do rekrutacji — wysoka rotacja, trudne do zweryfikowania kompetencje i duże ryzyko kosztownego błędu. Jak zwiększyć szansę na właściwą decyzję.
Dlaczego rekrutacja nie działa mimo że kandydaci są dostępniStrategia rekrutacji
Dlaczego rekrutacja nie działa, mimo że kandydaci są dostępni
Rynek mówi, że kandydatów jest dużo — a twoje stanowisko stoi puste od tygodni. Analiza najczęstszych przyczyn: od zbyt szerokiego profilu po niewidoczną ofertę.
Scorecards rekrutacyjne: jak oceniać kandydatów obiektywnie i dokumentować decyzje
W przygotowaniu — praktyczny system ocen dla hiring managerów.

Kolejne artykuły w przygotowaniu

Employer Value Proposition a skuteczność sourcingu: co kandydaci sprawdzają przed aplikacją
Wkrótce
Rekrutacja masowa vs. executive search — jak dostosować strategię do stanowiska
Wkrótce
Jak zbudować pulę talentów i skrócić czas przyszłej rekrutacji o połowę
Wkrótce
Negocjacje oferty: co robi różnicę między accept a decline — analiza procesów
Wkrótce

Anatomia procesu

4 etapy skutecznej
rekrutacji

Każdy skuteczny proces rekrutacyjny przechodzi przez cztery fazy. Firmy bez dokumentacji pomijają fazę pierwszą i trzecią — i płacą za to Time-to-Hire dłuższym o 3–4 tygodnie oraz wyższym odsetkiem złych zatrudnień.

01
Definicja & Brief
  • Profil kompetencji i zachowań
  • Budżet i widełki wynagrodzenia
  • Kryteria must-have vs. nice-to-have
  • Harmonogram i deadline decyzji
  • Panel oceniający i role w procesie
1–3 dniczas trwania
02
Sourcing & Screening
  • Wybór kanałów sourcingowych
  • Konstrukcja ogłoszenia i outreach
  • Screening CV według scorecarda
  • Kwalifikacja telefoniczna (15 min)
  • Aktualizacja pipeline w ATS
7–14 dniczas trwania
03
Ocena & Wywiady
  • Ustrukturyzowany wywiad kompetencyjny
  • Zadanie / case study (opcjonalnie)
  • Spotkanie z hiring managerem
  • Ocena kulturowa i team fit
  • Scorecard po każdej rundzie
10–21 dniczas trwania
04
Decyzja & Oferta
  • Debriefing i decyzja panelu
  • Przygotowanie oferty (package)
  • Negocjacje warunków
  • Feedback dla odrzuconych kandydatów
  • Pre-boarding do dnia startu
3–7 dniczas trwania

Mity vs. Fakty

Mit

Więcej CV = lepsza rekrutacja. Szersze ogłoszenie przyciągnie lepszych kandydatów.

Fakt

Zbyt szeroki profil zwiększa czas screeningu o 60% bez poprawy jakości zatrudnień. Precyzyjny brief skraca lejek i podnosi trafność decyzji.

Źródło: LinkedIn Talent Solutions 2024

Mit

Dobry rekruter nie potrzebuje procesu — działa instynktem i doświadczeniem.

Fakt

Ustrukturyzowany wywiad ma trafność predykcyjną 51% vs. 14% dla swobodnej rozmowy. Intuicja systematycznie przegrywa ze scorecardem.

Źródło: Schmidt & Hunter Meta-analysis

Mit

Szybka rekrutacja to zawsze ryzyko. Dobra rekrutacja musi trwać długo.

Fakt

Firmy z udokumentowanym procesem obsadzają stanowiska 40% szybciej — właśnie dlatego, że nie zaczynają za każdym razem od zera. Prędkość jest wynikiem procesu, nie jego wrogiem.

Źródło: SHRM Talent Acquisition Benchmarking 2023

Mit

Małe firmy nie potrzebują formalnej strategii rekrutacji — wystarczy ogłoszenie i rozmowa.

Fakt

MŚP ponoszą proporcjonalnie wyższy koszt złego zatrudnienia niż korporacje — jeden nieudany hire w 20-osobowej firmie to często 8–12% rocznego budżetu HR. Proces chroni właśnie wtedy, gdy zasoby są ograniczone.

Źródło: PARP Raport MŚP 2023

Diagnoza procesu

Gdzie twój pipeline
traci kandydatów?

Bottleneck to miejsce w procesie, gdzie kandydaci czekają zbyt długo, wypadają bez powodu lub podejmują decyzję o rezygnacji. Badanie własnego pipeline'u zaczyna się od jednego pytania: ile czasu mija między każdym etapem — i dlaczego?

Krytyczny
Czas odpowiedzi po aplikacji
5–14 dni

Rynek kandydatów IT i sprzedaży odpowiada na oferty równolegle. Jeśli kontaktujesz się po 2 tygodniach, najlepsi kandydaci są już w procesie u konkurencji.

RozwiązanieAutomatyczne potwierdzenie w <24h, kwalifikacja telefoniczna w 48–72h od aplikacji.
Krytyczny
Brak decyzyjności hiring managera
+8 dni

Gdy hiring manager nie ma zablokowanych slotów w kalendarzu na wywiady, kandydaci czekają — i dostają ofertę gdzie indziej. Rekrutacja to projekt, nie zadanie między zadaniami.

RozwiązanieSLA wewnętrzny: decyzja po każdym etapie max w 48h od ostatniej rozmowy.
Wysoki
Zbyt wiele rund rozmów
4+ rundy

Firmy z 4+ rundami tracą 35% kandydatów między 3. a 4. rozmową. Każda dodatkowa runda powinna być uzasadniona konkretnym pytaniem, na które wcześniejsze etapy nie odpowiedziały.

RozwiązanieMax 3 etapy z jasno zdefiniowanym celem każdego. Case study zamiast 4. rozmowy.
Wysoki
Brak feedbacku dla kandydatów
72% firm

72% kandydatów nie otrzymuje feedbacku po odrzuceniu. To nie tylko kwestia kultury — to kwestia reputacji. Kandydat z feedbackiem poleca firmę mimo odrzucenia w 58% przypadków.

RozwiązanieSzablon feedbacku oparty na scorecardzie. Wysyłka w 5 dni od decyzji.
Średni
Niespójne kryteria oceny
61% firm

Gdy każdy hiring manager ocenia inaczej, decyzje są efektem negocjacji, nie danych. Wynik: zatrudnienia oparte na sympatiach, nie kompetencjach.

RozwiązanieWspólna scorecard z wagami kryteriów przed startem każdej rekrutacji.
Do optymalizacji
Zbyt wąskie kanały sourcingu
1–2 kanały

Firmy opierające się tylko na LinkedIn tracą dostęp do kandydatów pasywnych (68% rynku), którzy są najwyższej jakości — ale nie szukają aktywnie ofert.

RozwiązanieMix: LinkedIn outreach + program poleceń + ATS z pulą talentów. Testuj i mierz CPH.
Polecany artykuł
Bottlenecks w rekrutacji – jak działa wąskie gardło procesu [CHECKLISTA]

Zdiagnozuj, gdzie twój proces traci kandydatów — z checklistą do samodzielnej diagnozy pipeline'u.

Narzędzia do użycia dziś

Policz koszt — zanim
zaczniesz rekrutować

Checklist procesu rekrutacyjnego

Zaznacz elementy, które masz wdrożone. Wynik pokaże, gdzie twój proces ma luki.

Faza 1 — Brief

Faza 2 — Sourcing

Faza 3 — Ocena

Faza 4 — Decyzja

Wdrożone: 0 / 9

Zostań na bieżąco

Otrzymuj nowe artykuły i analizy HR wprost na skrzynkę.

Co dwa tygodnie — konkretna wiedza o rekrutacji, analityce HR i zarządzaniu ludźmi. Bez spamu.

@import url("https://assets.mlcdn.com/fonts.css?version=1779867"); .ml-form-embedSubmitLoad{display:inline-block;width:20px;height:20px;}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;}.ml-form-embedSubmitLoad:after{content:" ";display:block;width:11px;height:11px;margin:1px;border-radius:50%;border:4px solid #fff;border-color:#ffffff #ffffff #ffffff transparent;animation:ml-form-embedSubmitLoad 1.2s linear infinite;}@keyframes ml-form-embedSubmitLoad{0%{transform:rotate(0deg);}100%{transform:rotate(360deg);}}#mlb2-41937932.ml-form-embedContainer{box-sizing:border-box;display:block;margin:0;position:static;width:100% !important;clear:both;}#mlb2-41937932.ml-form-embedContainer .ml-form-embedWrapper{background-color:#f6f6f6;border-width:0px;border-color:transparent;border-radius:4px;border-style:solid;box-sizing:border-box;display:block !important;margin:0;padding:0;position:relative;}#mlb2-41937932.ml-form-embedContainer .ml-form-embedWrapper.embedForm{max-width:400px;width:100%;clear:both;}#mlb2-41937932.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody{padding:20px 0 20px;}#mlb2-41937932.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow{margin:0 0 10px 0;width:100%;}#mlb2-41937932.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow.ml-last-item{margin:0;}#mlb2-41937932.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow input{background-color:#ffffff !important;color:#333333 !important;border-color:#cccccc;border-radius:4px !important;border-style:solid !important;border-width:1px !important;font-family:'Poppins',sans-serif;font-size:14px !important;height:auto;line-height:21px !important;margin:0;padding:10px 10px !important;width:100% !important;box-sizing:border-box !important;max-width:100% !important;}#mlb2-41937932.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedSubmit{margin:0 0 20px 0;float:none;clear:both;display:block;width:100%;}#mlb2-41937932.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedSubmit button{background-color:#0c0e1b !important;border:none !important;border-radius:4px !important;box-shadow:none !important;color:#ffffff !important;cursor:pointer;font-family:'Open Sans',Arial,Helvetica,sans-serif !important;font-size:14px !important;font-weight:700 !important;line-height:21px !important;height:auto;padding:10px !important;width:100% !important;box-sizing:border-box !important;text-align:center !important;}#mlb2-41937932.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedSubmit button.loading{display:none;}#mlb2-41937932.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedSubmit button:hover{background-color:#333333 !important;}#mlb2-41937932.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody{padding:20px 0 20px;}#mlb2-41937932.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody .ml-form-successContent h4{color:#000000;font-family:'Open Sans',Arial,Helvetica,sans-serif;font-size:30px;font-weight:400;margin:0 0 10px 0;}#mlb2-41937932.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody .ml-form-successContent p{color:#000000;font-family:'Poppins',sans-serif;font-size:14px;font-weight:400;line-height:20px;margin:0 0 10px 0;}.ml-error input{border-color:red !important;}.ml-error label:first-child{color:#ff0000 !important;}@media only screen and (max-width:400px){.ml-form-embedWrapper.embedDefault,.ml-form-embedWrapper.embedPopup{width:100% !important;}} function ml_webform_success_41937932(){var $=ml_jQuery||jQuery;$('.ml-subscribe-form-41937932 .row-success').show();$('.ml-subscribe-form-41937932 .row-form').hide();} fetch("https://assets.mailerlite.com/jsonp/1443346/forms/188807374426867079/takel")

Chcesz porozmawiać o swojej rekrutacji? Umów bezpłatną sesję →

(function() { function hrsBleed() { var p4 = document.querySelector('.p4'); if (!p4) return; var rect = p4.getBoundingClientRect(); var leftOffset = rect.left; var rightOffset = window.innerWidth - rect.right; var sections = p4.querySelectorAll('section.full'); sections.forEach(function(s) { s.style.marginLeft = '-' + leftOffset + 'px'; s.style.marginRight = '-' + rightOffset + 'px'; s.style.width = 'calc(100% + ' + (leftOffset + rightOffset) + 'px)'; }); } function hrsBleedInit() { hrsBleed(); window.addEventListener('resize', hrsBleed); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', hrsBleedInit); } else { hrsBleedInit(); } window.addEventListener('load', hrsBleed); window.hrsBleed = hrsBleed; function covCalc() { var rev = parseFloat(document.getElementById('hrs-cov-rev').value) || 0; var sal = parseFloat(document.getElementById('hrs-cov-sal').value) || 0; var days = parseFloat(document.getElementById('hrs-cov-days').value) || 0; if (!rev || !sal || !days) return; var lostRev = (rev / 22) * days; var managerTime = sal * 0.15 * (days / 30); var recCost = sal * 1.2; var total = lostRev + managerTime + recCost; var fmt = function(n) { return new Intl.NumberFormat('pl-PL', {style:'currency',currency:'PLN',maximumFractionDigits:0}).format(n); }; document.getElementById('hrs-cov-total').textContent = fmt(total); document.getElementById('hrs-cov-breakdown').innerHTML = 'Utracony przychód: ' + fmt(lostRev) + '
Czas managera: ' + fmt(managerTime) + '
Szacowany koszt rekrutacji: ' + fmt(recCost); document.getElementById('hrs-cov-result').classList.add('visible'); } function chkToggle(el) { el.classList.toggle('checked'); chkUpdate(); } function chkUpdate() { var total = document.querySelectorAll('.p4 .chk-item').length; var checked = document.querySelectorAll('.p4 .chk-item.checked').length; var pct = total ? Math.round(checked / total * 100) : 0; var bar = document.getElementById('hrs-chk-bar'); var lbl = document.getElementById('hrs-chk-label'); if (bar) bar.style.width = pct + '%'; if (lbl) lbl.textContent = checked + ' / ' + total; } window.hrsCovCalc = covCalc; window.hrsChkToggle = chkToggle; document.addEventListener('DOMContentLoaded', chkUpdate); if (document.readyState !== 'loading') chkUpdate(); })();