.cp-page { color: var(--ct-text); }
.cp-page .ct-hero { padding-bottom: 56px; }
.cp-page .ct-hero__title { font-size: clamp(2.2rem, 5vw, 3.5rem); }
.cp-page .ct-main { padding-top: 32px; }
.cp-back { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 28px; color: #50345f; font-size: .85rem; text-decoration: none; }
.cp-back:hover { color: #35223f; text-decoration: underline; }
.cp-help { color: #716778; font-size: .8rem; line-height: 1.65; margin: 8px 0 0; }
.cp-help a, .cp-receipt__actions > a:last-child { color: #50345f; text-underline-offset: 3px; }
.cp-form-note { text-align: center; }
.cp-file-input { font-size: .85rem; }
.cp-file-input::file-selector-button { margin-right: 12px; padding: 8px 12px; border: 1px solid #e3d7eb; border-radius: 6px; background: #f0eaf4; color: #50345f; cursor: pointer; font: inherit; }
.cp-email-warning { padding: 16px; border: 1px solid #e7d5b6; border-radius: 10px; background: #faf3e7; color: #68573e; }
.cp-word-count { color: #716778; text-align: right; font-size: .8rem; margin: 6px 0 0; }
.cp-word-count.is-over-limit { color: #b42318; font-weight: 600; }
.cp-page .ct-input[aria-invalid="true"] { border-color: #b42318; }
.cp-page .ct-submit:disabled { opacity: .65; cursor: wait; }
.cp-errors { padding: 18px; margin-bottom: 24px; border: 1px solid #efc9c5; border-radius: 10px; background: #fff5f4; color: #8c251e; font-size: .85rem; }
.cp-errors p { margin: 0 0 8px; font-weight: 600; }
.cp-errors ul { margin: 0; padding-left: 20px; }
.cp-errors a { color: inherit; }
.cp-kicker { display: block; color: #705484; text-transform: uppercase; font-size: .7rem; letter-spacing: .13em; margin-bottom: 10px; }
.cp-guide h2 { font-family: 'Manrope', 'Inter', sans-serif; font-size: 1.45rem; font-weight: 500; color: #35223f; letter-spacing: -.025em; margin: 0 0 20px; }
.cp-steps { counter-reset: complaint-step; list-style: none; padding: 0; margin: 24px 0; }
.cp-steps li { position: relative; padding: 0 0 24px 48px; counter-increment: complaint-step; }
.cp-steps li:last-child { padding-bottom: 0; }
.cp-steps li::before { content: counter(complaint-step, decimal-leading-zero); display: grid; place-items: center; position: absolute; left: 0; top: 0; width: 32px; height: 32px; border: 1px solid #e3d7eb; border-radius: 50%; background: #f0eaf4; color: #69437c; font-size: .7rem; }
.cp-steps h3, .cp-timeline h3 { font-size: .95rem; font-weight: 600; color: #50345f; margin: 0 0 8px; line-height: 1.5; }
.cp-steps p, .cp-timeline p { font-size: .86rem; line-height: 1.8; color: #716778; margin: 0; }
.cp-timeline { display: flex; align-items: flex-start; gap: 14px; padding: 22px; border: 1px solid #e7d5b6; border-radius: 12px; background: #faf3e7; }
.cp-timeline > i { color: #896429; margin-top: 5px; }
.cp-timeline p { color: #68573e; }
.cp-receipt { max-width: 720px; margin: 16px auto; }
.cp-receipt > p { font-size: .95rem; line-height: 1.8; }
.cp-receipt .cp-reference { color: #50345f; background: #f4eef7; border: 1px dashed #bcabc7; padding: 20px; margin: 24px 0; font-family: ui-monospace, monospace; font-size: clamp(1rem, 3vw, 1.5rem); font-weight: 600; text-align: center; overflow-wrap: anywhere; user-select: all; }
.cp-receipt__actions { display: flex; flex-direction: column; align-items: center; gap: 18px; margin-top: 28px; font-size: .85rem; }
.cp-receipt__actions .ct-submit { text-decoration: none; }
.cp-receipt__actions .ct-submit:hover { color: #fff; }
@media (max-width: 991px) {
    .cp-guide { margin-top: 8px; }
}
@media (max-width: 575px) {
    .cp-page .ct-hero { padding-bottom: 40px; }
    .cp-page .ct-hero__trust { align-items: flex-start; width: fit-content; margin-inline: auto; }
    .cp-timeline { padding: 18px; }
}
