.cp-live-cup,
.cp-cup-offer {
    color: #592203;
    scroll-margin-top: 6rem;
}

.cp-live-cup {
    margin-block: clamp(2rem, 5vw, 4.5rem) 1.5rem;
    padding: clamp(1.25rem, 4vw, 3.5rem);
    background: #fffaf1;
}

.cp-cup-intro { margin-bottom: clamp(1.5rem, 3.5vw, 2.75rem); }

:is(.cp-live-cup, .cp-cup-offer) h2 {
    max-width: 16ch;
    margin: 0 0 .75rem;
    font: 400 clamp(2rem, 4vw, 3.65rem)/1.09 Lora, Georgia, serif;
    color: inherit;
}

:is(.cp-live-cup, .cp-cup-offer) h2 em { color: #993800; }

.cp-cup-label {
    margin: 0 0 .5rem;
    color: #805d49;
    font-size: .875rem;
    font-weight: 600;
}

.cp-cup-grid,
.cp-cup-offer {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
    gap: clamp(1rem, 5vw, 4.5rem);
    align-items: start;
}

.cp-cup-video { margin: 0; }

.cp-cup-cover {
    position: relative;
    display: grid;
    align-items: end;
    min-height: 11rem;
    aspect-ratio: 5 / 3;
    isolation: isolate;
    background: #321509;
}

.cp-cup-cover img {
    position: absolute;
    inset: 0;
    z-index: -1;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cp-cup-play {
    justify-self: start;
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    min-height: 44px;
    margin: .75rem;
    padding: .35rem .75rem;
    background: #fffaf1;
    color: #592203;
    font-size: .875rem;
    font-weight: 600;
}

.cp-cup-cover:hover .cp-cup-play { background: #f1be53; }

.cp-cup-link,
.cp-cup-action {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    min-height: 44px;
}

.cp-cup-link { color: #873400; text-decoration: underline; text-underline-offset: .23em; }
.cp-cup-link span, .cp-cup-action span { flex: none; }

:is(.cp-live-cup, .cp-cup-offer) a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 4px;
}

.cp-cup-steps {
    margin: 0;
    padding: 0;
    counter-reset: cup-step;
    border-top: 1px solid #dfcbb3;
    list-style: none;
}

.cp-cup-steps li {
    display: grid;
    grid-template-columns: 1.8rem minmax(0, 1fr);
    gap: .5rem;
    padding-block: .75rem;
    border-bottom: 1px solid #dfcbb3;
    counter-increment: cup-step;
}

.cp-cup-steps li::before {
    content: counter(cup-step);
    color: #993800;
    font: 400 1.375rem/1.4 Lora, Georgia, serif;
}

.cp-cup-steps h3,
.cp-cup-note h3,
.cp-cup-course h3 {
    margin: 0 0 .25rem;
    color: inherit;
    font: 400 1.2rem/1.35 Lora, Georgia, serif;
}

.cp-cup-steps p,
.cp-cup-note p { margin: 0; }
.cp-cup-steps p, .cp-cup-terms { color: #805d49; }

.cp-cup-note {
    margin-top: 1.5rem;
    padding: 1rem 1.25rem;
    border-inline-start: 2px solid #993800;
    background: #f6ecd7;
}

.cp-cup-offer {
    margin-block: 1rem;
    padding: clamp(1.25rem, 4vw, 3.5rem);
    align-items: center;
}

.cp-cup-personal { background: #f0e3ca; }
.cp-cup-course { background: #321509; color: #fffaf1; }
.cp-cup-course :is(h2 em, .cp-cup-label) { color: #f1be53; }
.cp-cup-course h3 { font-size: clamp(1.25rem, 2vw, 1.65rem); }
.cp-cup-offer h2 { margin-bottom: 0; }
.cp-cup-offer p:not(.cp-cup-label) { margin: .4rem 0 .8rem; }
.cp-cup-terms { font-size: .9rem; }

.cp-cup-action {
    box-sizing: border-box;
    justify-content: space-between;
    padding: .55rem 1rem;
    border-radius: 4px;
    background: #592203;
    color: #fffaf1;
    font-size: .9rem;
    font-weight: 600;
}

.cp-cup-action:hover { background: #321509; color: #fffaf1; text-decoration: none; }
.cp-cup-course .cp-cup-action { background: #f1be53; color: #321509; }
.cp-cup-course .cp-cup-action:hover { background: #ffd47f; }
.cp-cup-personal .cp-cup-action:focus-visible { outline-color: #592203; }
.cp-cup-course .cp-cup-action:focus-visible { outline-color: #f1be53; }

@media (max-width: 720px) {
    .cp-cup-grid, .cp-cup-offer { grid-template-columns: minmax(0, 1fr); }
    .cp-cup-action { width: 100%; }
}
