.cv-points-page { background: var(--cv-bg); color: var(--cv-text); padding: clamp(.75rem, 2vw, 1.5rem) 1.5rem clamp(2rem, 5vw, 4.5rem); }
.cv-points-page * { box-sizing: border-box; }
.cv-points-page__inner { margin: 0 auto; max-width: 1120px; }
.cv-points-page__header { margin: 0 auto clamp(2rem, 4vw, 3.5rem); max-width: 850px; text-align: center; }
.cv-points-page__header h1 { color: var(--cv-primary-hover); font-size: clamp(2rem, 5vw, 3.5rem); letter-spacing: -.04em; line-height: 1.08; margin: 0; }
.cv-points-page__header > div { font-size: clamp(1rem, 1.8vw, 1.15rem); line-height: 1.65; margin-top: 1rem; }
.cv-points-page__earning { align-items: center; background: linear-gradient(135deg, #f7fbfa, #fff); border: 1px solid var(--cv-border); border-radius: 22px; box-shadow: var(--cv-shadow); display: grid; gap: clamp(2rem, 5vw, 4rem); grid-template-columns: 1fr 280px; padding: clamp(1.5rem, 4vw, 3rem); }
.cv-points-page h2 { color: var(--cv-primary-hover); font-size: clamp(1.5rem, 3vw, 2rem); margin: 0 0 1rem; }
.cv-points-page__per-place { color: var(--cv-primary); font-weight: 750; margin: 0 0 .75rem; }
.cv-points-page__steps { align-items: center; display: flex; gap: 1rem; margin-bottom: 1rem; }
.cv-points-page__steps > div { align-items: center; display: grid; gap: .25rem; grid-template-columns: auto 1fr; }
.cv-points-page__steps svg { fill: none; grid-row: 1 / 3; height: 38px; stroke: var(--cv-primary); stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; width: 38px; }
.cv-points-page__steps span { font-weight: 700; }
.cv-points-page__steps strong { color: #3c9a36; font-size: 1.35rem; }
.cv-points-page__earning p { line-height: 1.6; }
.cv-points-page__calculation { color: var(--cv-primary); display: block; margin-top: 1rem; }
.cv-points-page__reward { background: linear-gradient(145deg, var(--cv-primary), var(--cv-primary-hover)); border-radius: 18px; box-shadow: 0 16px 32px rgb(15 90 102 / 18%); color: #fff; display: grid; justify-items: center; padding: 1.6rem; text-align: center; }
.cv-points-page__reward span { font-size: .82rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.cv-points-page__reward strong { font-size: 1.7rem; margin-top: .75rem; }
.cv-points-page__reward small { opacity: .7; }
.cv-points-page__reward b { color: #ff8a4c; font-size: 2rem; }
.cv-points-page__rules { margin-top: clamp(2.5rem, 5vw, 4rem); }
.cv-points-page__rules > ol { counter-reset: point-rule; display: grid; gap: .8rem; list-style: none; margin: 0; padding: 0; }
.cv-points-page__rules > ol > li { background: var(--cv-card); border: 1px solid var(--cv-border); border-radius: var(--cv-radius); padding: 1.15rem 1.25rem 1.15rem 4rem; position: relative; }
.cv-points-page__rules > ol > li::before { align-items: center; background: color-mix(in srgb, var(--cv-primary) 9%, white); border-radius: 50%; color: var(--cv-primary); content: counter(point-rule); counter-increment: point-rule; display: flex; font-weight: 750; height: 34px; justify-content: center; left: 1.15rem; position: absolute; top: 1.05rem; width: 34px; }
.cv-points-page__rules h3 { color: var(--cv-primary); font-size: 1.05rem; margin: 0; }
.cv-points-page__rules p { line-height: 1.6; margin: .4rem 0 0; }
.cv-points-page__rules ul { margin: .65rem 0 0; padding-left: 1.25rem; }
.cv-points-page__rules ul li { line-height: 1.55; margin-top: .2rem; }
.cv-points-page__cta { align-items: center; background: var(--cv-primary-hover); border-radius: 20px; color: #fff; display: flex; gap: 2rem; justify-content: space-between; margin-top: clamp(2.5rem, 5vw, 4rem); padding: clamp(1.4rem, 4vw, 2.5rem); }
.cv-points-page__cta h2 { color: #fff; margin-bottom: .35rem; }
.cv-points-page__cta p { margin: 0; }
.cv-points-page__cta a { background: var(--cv-accent); border-radius: 11px; color: #fff; flex: 0 0 auto; font-weight: 750; padding: .85rem 1.15rem; text-decoration: none; }
.cv-points-page__cta a:hover { background: var(--cv-accent-hover); }
@media (max-width: 760px) {
    .cv-points-page { padding-inline: 1rem; }
    .cv-points-page__earning { grid-template-columns: 1fr; }
    .cv-points-page__reward { gap: 0; max-width: 360px; width: 100%; }
    .cv-points-page__reward span,
    .cv-points-page__reward strong,
    .cv-points-page__reward small,
    .cv-points-page__reward b { line-height: 1.1; }
    .cv-points-page__reward strong { margin-top: .1rem; }
    .cv-points-page__cta { align-items: stretch; flex-direction: column; }
    .cv-points-page__cta a { text-align: center; }
}
@media (max-width: 480px) {
    .cv-points-page__steps { align-items: center; display: grid; gap: .5rem; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
    .cv-points-page__steps > div { gap: .3rem; grid-template-columns: 1fr; justify-items: center; min-width: 0; text-align: center; }
    .cv-points-page__steps svg { grid-row: auto; }
    .cv-points-page__steps > span { font-size: 1.25rem; line-height: 1; transform: none; }
    .cv-points-page__steps strong { line-height: 1.15; }
    .cv-points-page__rules > ol > li { padding: 3.4rem 1rem 1rem; }
    .cv-points-page__rules > ol > li::before { left: 1rem; top: .85rem; }
}
