/* Coqpit Circuit Track - structural styles (colors/typography come from Elementor controls) */

.coqpit-track {
    --coqpit-track-line: 1px;
    --coqpit-track-label-gap: 8px;
    width: 100%;
    font-family: 'Manrope', sans-serif;
}

/* Container-query unit (cqw) lets label lines scale with the block width */
.coqpit-track__stage {
    position: relative;
    container-type: inline-size;
    width: 100%;
    aspect-ratio: 736 / 463;
}

.coqpit-track__svg {
    position: absolute;
    top: 0;
    left: 9.9%;
    width: 90.1%;
    height: auto;
    overflow: visible;
}

.coqpit-track__shape {
    fill: #fff;
    stroke: #fff;
    stroke-width: 0;
    stroke-linejoin: round;
    color: #fff;
}

.coqpit-track__kart {
    fill: #e10b17;
    color: #e10b17;
    opacity: 0;
}

/* Hidden until the script has armed the animation, so the finished drawing never flashes */
.coqpit-track:not(.is-ready) .coqpit-track__shape,
.coqpit-track:not(.is-ready) .coqpit-track__label {
    opacity: 0;
}

/* Label: zero-size box placed on the point where its line touches the track */
.coqpit-track__label {
    position: absolute;
    left: var(--x);
    top: var(--y);
    width: 0;
    height: 0;
}

.coqpit-track__line {
    position: absolute;
    background-color: rgba(255, 255, 255, 0.59);
}

.coqpit-track__text {
    position: absolute;
    white-space: nowrap;
    line-height: 1;
}

/* Horizontal lines: text sits above the far end */
.coqpit-track__label--left .coqpit-track__line,
.coqpit-track__label--right .coqpit-track__line {
    top: calc(var(--coqpit-track-line) / -2);
    width: calc(var(--len) * 1cqw);
    height: var(--coqpit-track-line);
}

.coqpit-track__label--left .coqpit-track__line {
    right: 0;
    transform-origin: 100% 50%;
}

.coqpit-track__label--right .coqpit-track__line {
    left: 0;
    transform-origin: 0 50%;
}

.coqpit-track__label--left .coqpit-track__text {
    left: calc(var(--len) * -1cqw);
    bottom: var(--coqpit-track-label-gap);
}

.coqpit-track__label--right .coqpit-track__text {
    left: calc(var(--len) * 1cqw);
    bottom: var(--coqpit-track-label-gap);
    transform: translateX(-100%);
}

/* Vertical lines: text sits beside the far end */
.coqpit-track__label--up .coqpit-track__line,
.coqpit-track__label--down .coqpit-track__line {
    left: calc(var(--coqpit-track-line) / -2);
    width: var(--coqpit-track-line);
    height: calc(var(--len) * 1cqw);
}

.coqpit-track__label--up .coqpit-track__line {
    bottom: 0;
    transform-origin: 50% 100%;
}

.coqpit-track__label--down .coqpit-track__line {
    top: 0;
    transform-origin: 50% 0;
}

.coqpit-track__label--up .coqpit-track__text {
    bottom: calc(var(--len) * 1cqw);
    right: var(--coqpit-track-label-gap);
    transform: translateY(50%);
}

.coqpit-track__label--down .coqpit-track__text {
    top: calc(var(--len) * 1cqw);
    left: var(--coqpit-track-label-gap);
    transform: translateY(-50%);
}
