/* Hero der Startseite mit Radarsignatur und Kurslinie */

.hero {
    min-height: 100svh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    overflow: hidden;
    padding-top: 7rem;
}

/* Füllt den Raum zwischen Header-Padding und Kurslinie und zentriert den
   Inhalt darin – unabhängig davon, ob die Eyebrow gesetzt ist. */
.hero-body {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.hero h1 {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(3rem, 9vw, 7.5rem);
    line-height: .95;
    letter-spacing: -.02em;
    text-wrap: balance;
}

.hero h1 .accent {
    color: var(--signal);
}

.hero .lede {
    max-width: 34rem;
}

/* ---- Radar ---- */
.radar-wrap {
    position: absolute;
    right: -12vmin;
    top: 50%;
    translate: 0 -50%;
    width: 78vmin;
    height: 78vmin;
    opacity: .9;
    pointer-events: none;
}

.radar-ring {
    fill: none;
    stroke: rgba(237, 241, 240, .09);
    stroke-width: 1;
}

.radar-cross {
    stroke: rgba(237, 241, 240, .07);
    stroke-width: 1;
}

.radar-sweep {
    transform-origin: 300px 300px;
    animation: radar-sweep 7s linear infinite;
}

.radar-blip {
    fill: var(--signal);
    animation: radar-blip 7s linear infinite;
}

.radar-blip.b2 { animation-delay: 2.4s; }
.radar-blip.b3 { animation-delay: 4.6s; }

@keyframes radar-sweep {
    to { transform: rotate(360deg); }
}

@keyframes radar-blip {
    0%, 6% { opacity: 0; }
    8%     { opacity: 1; }
    40%    { opacity: .15; }
    100%   { opacity: 0; }
}

@media (max-width: 991px) {
    .radar-wrap {
        right: -42vmin;
        opacity: .45;
    }
}

/* ---- Kurslinie mit Wegpunkten ---- */
.course {
    position: relative;
    padding-top: 1.8rem;
}

.course-line {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: var(--hairline);
}

.waypoint {
    position: relative;
    padding-top: 1.7rem;
}

.waypoint::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    translate: -50% -50%;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--ink);
    border: 1.5px solid var(--signal);
}

.waypoint::after {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    translate: -50% 0;
    width: 1px;
    height: 1.7rem;
    background: var(--hairline);
}

.waypoint strong {
    display: block;
    color: var(--fog);
    font-weight: 600;
    font-size: .95rem;
    margin-bottom: .2rem;
}

.waypoint small {
    display: block;
    color: var(--steel);
    font-size: .72rem;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.waypoint.live::before {
    background: var(--signal);
    animation: waypoint-pulse 2.4s ease-in-out infinite;
}

@keyframes waypoint-pulse {
    50% { opacity: .3; }
}

@media (max-width: 991px) {
    .course-line { display: none; }
}
