/* ---- Badge: exakt gleiche Optik wie die vier bestehenden Designer-Icons links,
   eine Position darunter (220px statt 168px) - eigener Selektor, rührt keine
   Designer-eigene Regel an. ---- */
#gi-info-badge {
    position: absolute;
    z-index: 190;
    top: 220px;
    left: 10px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 2px 10px rgba(0,0,0,0.35);
    border: none;
    transition: transform .15s, box-shadow .15s;
    user-select: none;
    -webkit-user-select: none;
    touch-action: manipulation;
    pointer-events: auto;
}
#gi-info-badge:hover,
#gi-info-badge:active {
    transform: scale(1.12);
    box-shadow: 0 3px 14px rgba(0,0,0,0.4);
}
#gi-info-badge svg { pointer-events: none; }

/* ---- Modal: Slide-in von unten, scrollbar, Karten mit dezenten Trennlinien
   (Optik angelehnt an Spreadshirts "Mehr Optionen"-Modal, eigenständig umgesetzt) ---- */
#gi-modal-ov {
    position: fixed;
    inset: 0;
    z-index: 100000;
    background: rgba(0,0,0,0.45);
    display: none;
    align-items: flex-end;
    justify-content: center;
}
#gi-modal-ov.gi-open { display: flex; }

#gi-modal-sheet {
    background: #fff;
    width: 100%;
    max-width: 600px;
    max-height: 82vh;
    border-radius: 16px 16px 0 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: gi-slide-up .25s ease-out;
}
@keyframes gi-slide-up {
    from { transform: translateY(100%); }
    to   { transform: translateY(0); }
}

#gi-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 20px;
    font-size: 17px;
    font-weight: 700;
    border-bottom: 1px solid #eee;
    flex-shrink: 0;
    color: #111;
}
#gi-modal-close {
    cursor: pointer;
    font-size: 30px;
    line-height: 1;
    color: #111;
    padding: 4px 8px;
}

#gi-modal-body {
    overflow-y: auto;
    padding: 6px 20px 28px;
    -webkit-overflow-scrolling: touch;
}

.gi-card {
    padding: 18px 0;
    border-bottom: 1px solid #eee;
    color: #222;
}
.gi-card,
.gi-card p,
.gi-card li,
.gi-card ul,
.gi-card ol {
    font-size: 15px !important;
    line-height: 1.2 !important;
}
.gi-card:last-child { border-bottom: none; }
.gi-card h4 { margin: 0 0 12px; font-size: 18px; }
.gi-card p { margin: 0 0 10px; }
.gi-card ul { margin: 0 0 10px 20px; padding: 0; }
.gi-card li { margin-bottom: 6px; }

.gi-size-visual {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    margin: 6px 0 18px;
}
.gi-size-img { max-width: 130px; width: 40%; flex-shrink: 0; display: block; }
.gi-size-legend {
    flex: 1;
    margin: 4px 0 0;
    padding: 0 0 0 18px;
    font-size: 15px;
    line-height: 1.6;
    color: #333;
}
.gi-fit-text {
    margin: 4px 0 10px;
    font-size: 15px;
    color: #333;
}
.gi-card p.gi-size-hint {
    margin: 4px 0 14px;
    font-size: 17px !important;
    color: #555;
    line-height: 1.35 !important;
}

.gi-size-table-wrap { overflow-x: auto; }
.gi-size-table { width: 100%; border-collapse: collapse; font-size: 16px; white-space: nowrap; }
.gi-size-table th, .gi-size-table td { text-align: center; padding: 11px 8px; border-bottom: 1px solid #f0f0f0; }
.gi-size-table th { font-weight: 600; color: #555; }
.gi-size-table td { font-weight: 700; color: #111; }
.gi-size-table tr:last-child td { border-bottom: none; }

.gi-video-link {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
    font-size: 15px;
    font-weight: 600;
    color: #111;
}
.gi-video-link svg { flex-shrink: 0; }
.gi-video-link span { text-decoration: underline; }
.gi-video-wrap { position: relative; margin-top: 12px; }
.gi-video-wrap video { width: 100%; border-radius: 8px; display: block; }
.gi-video-embed { position: relative; width: 100%; padding-top: 56.25%; border-radius: 8px; overflow: hidden; }
.gi-video-embed iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; }
.gi-video-close {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 200000;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(0,0,0,0.65);
    color: #fff;
    border: none;
    font-size: 20px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0,0,0,0.35);
}

@media (min-width: 769px) {
    #gi-modal-ov { align-items: center; }
    #gi-modal-sheet { border-radius: 16px; max-height: 78vh; animation: none; }
}
