/* enrol wizard — three-step registration */
.enrol-wizard__h1.enrol-wizard__h1 {
    font-size: clamp(3rem, 1.6rem + 4.6vw, 6rem);
    line-height: 1;
    letter-spacing: -0.04em;
}

.enrol-wizard__h2.enrol-wizard__h2,
.enrol-wizard__legend.enrol-wizard__legend {
    font-size: clamp(1.625rem, 1.49rem + 0.56vw, 2rem);
    line-height: 1.2;
    letter-spacing: -0.04em;
}

.enrol-wizard__tight.enrol-wizard__tight {
    letter-spacing: -0.04em;
    line-height: 1.15;
}

@media (min-width: 1024px) {
    .enrol-wizard__rail {
        position: sticky;
        top: 2rem;
        align-self: start;
    }
}

.enrol-wizard__bar {
    transform-origin: 0 50%;
    transform: scaleX(var(--wizard-progress, 1));
    transition: transform 500ms cubic-bezier(0.215, 0.61, 0.355, 1);
}

.enrol-wizard__dot {
    transition: opacity 300ms ease;
}

/* inactive steps stay readable (≥4.5:1 on white / primary-50): mute, don't fade out */
[data-enrol-wizard].is-armed .enrol-wizard__dot:not(.is-current) {
    opacity: 0.68;
}

[data-enrol-wizard].is-armed .enrol-wizard__dot.is-done {
    opacity: 0.82;
}

.enrol-wizard__ctrl.enrol-wizard__ctrl {
    appearance: none;
    -webkit-appearance: none;
    border-radius: 0;
    font: inherit;
    font-size: 1.125rem;
}

.enrol-wizard__ctrl:focus {
    outline: none;
    border-bottom-width: 2px;
}

.enrol-wizard__area {
    resize: vertical;
    min-height: 7rem;
}

.enrol-wizard__radio {
    width: 1rem;
    height: 1rem;
    accent-color: currentColor;
}

.enrol-wizard__check {
    width: 1.25rem;
    height: 1.25rem;
    cursor: pointer;
}

.enrol-wizard__ghost,
.enrol-wizard__btn {
    cursor: pointer;
    min-height: 3.5rem;
}

.enrol-wizard__btn-fill.enrol-wizard__btn-fill {
    top: 100%;
    left: -25%;
    width: 150%;
    height: auto;
    aspect-ratio: 1;
    border-radius: 50%;
    transform: translateY(0);
    transition: transform 700ms cubic-bezier(0.215, 0.61, 0.355, 1);
}

.enrol-wizard__btn:hover .enrol-wizard__btn-fill,
.enrol-wizard__btn:focus-visible .enrol-wizard__btn-fill {
    transform: translateY(-70%);
}

@media (prefers-reduced-motion: reduce) {
    .enrol-wizard__bar,
    .enrol-wizard__btn-fill {
        transition: none;
    }
}

/* steps / nav buttons are flex & inline-flex, so the UA [hidden] rule alone does not hide them */
[data-enrol-wizard] [hidden] {
    display: none !important;
}

