.wrapper > main.cm-promotion { width: min(1180px, calc(100% - 48px)); max-width: 1180px; padding: 0; margin: 56px auto 80px; color: #272343; }
.cm-promotion .cm-promotion-heading { display: block; max-width: 780px; margin: 0 auto 28px; text-align: center; }
.cm-eyebrow { color: #5761a8; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.cm-promotion h1 { margin: 14px 0 18px; font-size: clamp(30px, 4vw, 48px); line-height: 1.15; }
.cm-intro { font-size: 18px; line-height: 1.65; }
.cm-intro img { max-width: 100%; height: auto; }
.cm-rules { color: #686779; line-height: 1.6; }
.cm-vote-status { margin: 0 0 28px; padding: 16px 20px; border: 1px solid #e0e2f0; border-radius: 14px; background: #eef0fa; text-align: center; line-height: 1.5; }
.cm-participants { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; align-items: stretch; }
.cm-card { min-width: 0; overflow: hidden; display: flex; flex-direction: column; border: 1px solid #e6e5ed; border-radius: 22px; background: #fff; box-shadow: 0 8px 30px #27234306; }
.cm-card:last-child:nth-child(odd) { grid-column: 1 / -1; width: calc((100% - 26px) / 2); justify-self: center; }
.cm-gallery { display: grid; grid-template-columns: 2fr 1fr; grid-template-rows: repeat(2, 135px); gap: 5px; background: #f0eff4; }
.cm-gallery-photo { display: block; overflow: hidden; }
.cm-gallery-photo:first-child { grid-row: 1 / 3; }
.cm-gallery-photo:only-child { grid-column: 1 / -1; }
.cm-gallery-count-1 .cm-gallery-photo { grid-column: 1 / -1; grid-row: 1 / 3; }
.cm-gallery-count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cm-gallery-count-2 .cm-gallery-photo { grid-row: 1 / 3; }
.cm-gallery-photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s; }
.cm-gallery-photo:hover img { transform: scale(1.035); }
.cm-gallery-photo:focus-visible, .cm-vote-button:focus-visible { outline: 3px solid #e71e72; outline-offset: -3px; }
.cm-no-photo { grid-column: 1 / -1; grid-row: 1 / 3; display: grid; place-items: center; color: #686779; }
.cm-card-body { padding: 26px; flex: 1; display: flex; flex-direction: column; }
.cm-number { color: #767487; font-size: 13px; letter-spacing: .04em; }
.cm-promotion .cm-card h2 { margin: 8px 0 10px; font-size: 26px; line-height: 1.2; }
.cm-description { color: #686779; line-height: 1.6; overflow-wrap: anywhere; }
.cm-description p { margin: 0 0 16px; }
.cm-card-bottom { margin-top: auto; padding-top: 20px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid #eeedf2; }
.cm-counter { display: flex; flex-direction: column; }
.cm-counter strong { font-size: 28px; line-height: 1.1; font-variant-numeric: tabular-nums; }
.cm-counter span { color: #767487; font-size: 13px; }
.cm-promotion .cm-vote-button { border: 0; border-radius: 12px; padding: 14px 20px; background: #5761a8; color: #fff; font: inherit; font-weight: 700; cursor: pointer; transition: background .2s; }
.cm-promotion .cm-vote-button:hover:enabled { background: #454d8b; }
.cm-promotion .cm-vote-button:disabled { background: #e9e9f0; color: #737285; cursor: default; }
.cm-card-chosen { border-color: #51ae32; }
.cm-promotion .cm-card-chosen .cm-vote-button { background: #eaf6e6; color: #327622; }
.cm-empty { text-align: center; padding: 48px 20px; }
.cm-title { font-size: 20px; margin: 5px 0; }
@media (max-width: 700px) {
    .wrapper > main.cm-promotion { width: calc(100% - 32px); margin: 30px auto 48px; }
    .cm-participants { grid-template-columns: 1fr; gap: 20px; }
    .cm-card:last-child:nth-child(odd) { grid-column: auto; width: auto; justify-self: stretch; }
    .cm-card-body { padding: 20px; }
    .cm-gallery { grid-template-rows: repeat(2, 115px); }
    .cm-promotion .cm-vote-button { padding: 13px 15px; font-size: 14px; }
}
