/* ============================================================
 * MENÜ-VISUALS: ZAHLEN & ZAHLRAUM (Blau)
 * Bereichsfarbe + Button-Visuals der Module numberline / compare /
 * placevaluechart / numbersequence.
 * ============================================================ */

.big-menu-btn {
    /* Bereichsfarbe: Die Kacheln dieser Seite tragen bereits die passende
       Farbklasse (menu-buttons.css) — hier wird deshalb NUR noch das
       Überlaufen der Visuals abgeschnitten. Die frühere Wiederholung von
       Farbe + Schatten per `!important` ist entfallen: sie setzte exakt
       dieselben Werte noch einmal und überstimmte dabei jedes andere Design
       (das neue Design kam an den Kacheln dieser Seite nie an). */
    overflow: hidden;
}

/* --- Emoji-Icon (numberline) --- */
.visual-icon-container {
    margin-top: 10px;
    display: flex;
    gap: 15px;
}
.visual-icon-container .symbol {
    filter: drop-shadow(0 4px 4px rgba(0,0,0,0.2));
    font-size: calc(clamp(35px, 8vw, 55px) * 1.2);
}

/* --- Vergleich (compare) --- */
.visual-comparison {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
}
.visual-comparison .box {
    border: 3px solid #f1c40f;
    color: #2c3e50;
}

/* --- Stellenwert-Tafel (placevaluechart) --- */
.visual-regrouping-menu {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
}
.v-bar {
    width: 16px;
    height: clamp(35px, 8vw, 45px);
    background: white;
    border: 3px solid #2980b9;
    border-radius: 6px;
}
.v-dot {
    width: 10px;
    height: 10px;
    background: #f1c40f;
    border: 2px solid white;
    border-radius: 50%;
}

/* --- Struktur/Pfeile (numbersequence) --- */
.visual-structure {
    position: relative;
    height: 80px;
    margin-top: 15px;
    width: 100%;
}
.state-normal,
.state-hover {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(8px, 2vw, 15px);
    transition: opacity 0.2s ease-in-out;
}
.state-normal { opacity: 1; }
.state-hover { opacity: 0; }
.big-menu-btn:hover .state-normal { opacity: 0; }
.big-menu-btn:hover .state-hover { opacity: 1; }

.visual-structure .box {
    background: white;
    border: 3px solid #2980b9;
    color: #2980b9;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    font-weight: 900;
    padding: 0;
}
.visual-structure .op {
    color: white;
}

/* --- ZAHLENSTRAHL-VISUAL (identisch zum Knopf „Zahlen & Zahlraum" im Mathe-Menü) --- */
.visual-line-container {
    width: 85%;
    height: 4px;
    background: white;
    position: relative;
    margin: 20px 0 35px 0;
    display: flex;
    align-items: center;
}

.visual-line-container::after {
    content: '';
    position: absolute;
    left: 100%;
    top: 50%;
    transform: translateY(-50%);
    border-left: 15px solid white;
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
}

.visual-ticks {
    display: flex;
    justify-content: space-between;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    padding-right: 15px;
    box-sizing: border-box;
}

.visual-tick {
    width: 3px;
    height: 18px;
    background: white;
    position: relative; /* Wichtig für die Position der Zahl darunter */
}

/* Die Zahlen unter den Strichen */
.visual-tick span {
    position: absolute;
    top: 25px; /* Fester Abstand nach unten */
    left: 50%;
    transform: translateX(-50%);
    font-size: 18px;
    font-weight: bold;
    color: white;
}

/* --- Verliebte Zahlen (numberbonds) --- */
.visual-hearts {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    margin-top: 10px;
    transition: gap 0.25s ease;
}
/* Überfahren = das Herz wird ganz (wie im Modul beim richtigen Stück). */
.big-menu-btn:hover .visual-hearts {
    gap: 0;
}
.vh-half {
    --vh-h: clamp(46px, 11vw, 68px);
    position: relative;
    height: var(--vh-h);
    width: calc(var(--vh-h) * 50 / 90);
    flex: 0 0 auto;
}
.vh-half svg {
    width: 100%;
    height: 100%;
    display: block;
}
.vh-half path {
    fill: #e8455f;
}
.vh-half span {
    position: absolute;
    top: 40%;
    transform: translate(-50%, -50%);
    color: #fff;
    font-weight: 900;
    line-height: 1;
    font-size: calc(var(--vh-h) * 0.32);
}
.vh-half:first-child span  { left: 54%; }
.vh-half:last-child span   { left: 46%; }
