{"title":"Women's Bikini","description":"\u003ch1\u003e New collection of bikinis – For bold looks \u0026amp; pure joie de vivre!\u003c\/h1\u003e\n\n\u003cp\u003e Do you love the sun on your skin and want to feel completely comfortable? Our new \u003cstrong\u003ebikinis\u003c\/strong\u003e bring color, joie de vivre, and comfort to your summer. Whether sporty, playful, classic, or trendy – at Bodenseemarke, you'll find the perfect bikini set for every figure and every taste.\u003c\/p\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e \n\u003cstrong\u003eBold colors \u0026amp; patterns:\u003c\/strong\u003e From delicate pastel shades to vibrant trend colors – your summer will be colorful!\u003c\/li\u003e\n\n\u003cli\u003e\n\n \u003cstrong\u003eIndividual fits:\u003c\/strong\u003e Triangle, Bandeau, High Waist, Push-Up – find your perfect style!\u003c\/li\u003e\n\n\u003cli\u003e\n\n \u003cstrong\u003eComfortable support:\u003c\/strong\u003e Elastic materials, soft cups and a clever fit – so you can enjoy every movement.\u003c\/li\u003e\n\n\u003cli\u003e\n\n \u003cstrong\u003eMix \u0026amp; Match:\u003c\/strong\u003e Combine tops and bottoms freely – for a look that suits you!\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cp\u003e Make your summer unique – with a bikini that will make you shine! Discover them now and secure your favorite bikini.\u003c\/p\u003e\n\n\u003cp\u003e \u003cstrong\u003eNote:\u003c\/strong\u003e Many styles are only available in limited quantities!\u003c\/p\u003e","products":[{"product_id":"bikini-damen-mit-set","title":"yellow bikini tropical print","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini that fits just as well by the lake as it does after the first dip in the water?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003eYou might know that calm feeling when a bikini just *stays* – no pulling, no adjusting.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eAnd often, you don't notice the difference immediately, but at some point during the day – when you're no longer even thinking about it.\u003c\/p\u003e\n\n  \u003ch2\u003eYellow Women's Bikini with Tropical Pattern – for Beach, Lake, and Vacation\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nA two-piece set with a tropical floral and pineapple pattern on warm yellow – designed for movement in the water and quiet hours on the shore, made from 78% polyamide and 22% elastane.\u003c\/p\u003e\n\n\u003cp\u003eThe pattern evokes something many know from vacation: that lightness when color and motif match the mood without saying too much. Blossoms and pineapple details on yellow – it looks just as harmonious on the shores of Lake Constance as it does by the sea, because it doesn't try to be louder than its surroundings. The tropical print remains understated due to its calm coloring.\u003c\/p\u003e\n\n\u003cp\u003eYou put it on in the morning, go to the water, and the pattern silently does its job: it's noticeable without being attention-grabbing. Lying on the jetty, with the light dancing on the water, the yellow appears warm and vibrant. When you stand up and go into the water, the tropical motif blends with summer without trying to force a statement. For some, this is just the right balance.\u003c\/p\u003e\n\n\u003cp\u003eAs a gift, this bikini is suitable for anyone who loves vacation joy without being intrusive – the tropical print communicates lightness without needing any explanation. Can be combined with a simple white beach towel or light shorts that pick up the yellow.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• You put it on and the first thought is: Fits.\u003cbr\u003e• The pattern feels harmonious, not intrusive – by the water as much as on the way there.\u003cbr\u003e• After swimming, it still fits the same as before – no constant readjusting needed.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eSelect your size below – S to XXL available.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"bust_min\": 86.0, \"bust_max\": 91.0, \"waist_min\": 66.0, \"waist_max\": 71.0, \"hip_min\": 88.0, \"hip_max\": 93.0}, {\"name\": \"M\", \"bust_min\": 91.0, \"bust_max\": 96.0, \"waist_min\": 71.0, \"waist_max\": 76.0, \"hip_min\": 93.0, \"hip_max\": 98.0}, {\"name\": \"L\", \"bust_min\": 96.0, \"bust_max\": 101.0, \"waist_min\": 76.0, \"waist_max\": 81.0, \"hip_min\": 98.0, \"hip_max\": 103.0}, {\"name\": \"XL\", \"bust_min\": 101.0, \"bust_max\": 106.0, \"waist_min\": 81.0, \"waist_max\": 86.0, \"hip_min\": 103.0, \"hip_max\": 108.0}, {\"name\": \"XXL\", \"bust_min\": 106.0, \"bust_max\": 111.0, \"waist_min\": 86.0, \"waist_max\": 91.0, \"hip_min\": 111.0, \"hip_max\": 116.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: 78% Polyamide, 22% Elastane\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Delicate wash 30 °C, do not tumble dry\u003c\/li\u003e\n\n\u003cli\u003e✔ Design: Two-piece bikini set, tropical floral and pineapple pattern on yellow\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eWhen the cut and size fit you, a yellow bikini with a tropical pattern can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini set lasts all day without you having to think about it\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eFit that shows itself in everyday life – not just when trying it on.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top fits well at first, but will it hold up while swimming?\u003c\/li\u003e\n\n\u003cli\u003eSynthetic fabrics sometimes feel too stiff or too smooth\u003c\/li\u003e\n\n\u003cli\u003eBikinis stretched out or faded after just a few washes\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eMany know this: you put on a bikini, go into the water, come out – and start adjusting the top or waistband. Not because something broke, but because the fabric didn't have enough leeway to adapt to movement. By the lake, getting up from a deckchair, sitting down on a jetty – such moments show whether a bikini truly \"thinks along.\"\u003c\/p\u003e\n\n\u003cp\u003eThe reason often lies in the material: fabrics without sufficient elastane content don't follow movement, but resist it. The blend of 78% polyamide and 22% elastane is therefore common in swimwear – polyamide gives the fabric stability and shape retention under normal stress, elastane ensures that the bikini stretches and recovers. This is not a promise, but an indication of why this material mix has proven successful for many wearers.\u003c\/p\u003e\n\n\u003cp\u003eThis yellow bikini with a tropical pattern is designed for situations where swimwear simply needs to work: at the lake, at the pool, on vacation. The elastane content can help the top and bottom sit securely even when moving – this is not an absolute promise, but the choice of material supports it. If you prefer fabrics with a very natural feel or cotton-based textiles, a polyamide set may not be your first choice – that's an honest assessment.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDoes this fit how you wear swimwear – lots of movement in the water or rather quiet hours on the shore?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eAvailable sizes: S, M, L, XL, XXL – select your size above.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay special attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Wears the same by the lake as it does on the beach or by the pool\u003c\/li\u003e\n\n\u003cli\u003e→ Tropical pattern that suits summer without being intrusive\u003c\/li\u003e\n\n\u003cli\u003e→ Two-piece set that can be combined with simple beach looks\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis helps you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Material mix of polyamide and elastane – designed for movement in water under normal stress\u003c\/li\u003e\n\n\u003cli\u003e✅ Tropical floral and pineapple pattern on yellow – subtle and combinable\u003c\/li\u003e\n\n\u003cli\u003e✅ Clear care instructions: Delicate wash 30 °C, no tumble dryer\u003c\/li\u003e\n\n\u003cli\u003e✅ Available as a complete two-piece set, sizes S to XXL\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ For wearers who prefer very natural or cotton-based fabrics, this set may not be the first choice\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those expecting maximum support like sports bra constructions will not find it in this bikini\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Detailed information on waistband shape or top cut is currently unavailable\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical with similar\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Yellow tropical pattern bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips during movement or in water\u003c\/td\u003e\n\n\u003ctd\u003e22% elastane content can help the top sit more securely during normal movement\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eBikinis lose their shape after a few washes\u003c\/td\u003e\n\n\u003ctd\u003ePolyamide-elastane blend is designed for shape retention under normal stress – observe care instructions\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eCare instructions unclear or contradictory\u003c\/td\u003e\n\n\u003ctd\u003eDelicate wash 30 °C, do not tumble dry – clearly and understandably stated\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTropical patterns often appear overloaded or touristy\u003c\/td\u003e\n\n\u003ctd\u003eSubtle floral and pineapple pattern on warm yellow – does not appear overloaded due to calm coloring\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eThese are exactly the situations we've considered with the yellow tropical pattern bikini – so you have to adjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the yellow tropical pattern bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash 30°C, do not tumble dry – observe care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 78% Polyamide, 22% Elastane\u003cbr\u003e• Care: Delicate wash 30 °C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay fit well if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003eyellow tropical pattern bikini\u003c\/strong\u003e with a fit that can suit you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being intrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort in everyday life\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct details at a glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Delicate wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently asked questions about the yellow tropical pattern bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs the yellow tropical pattern bikini available as a complete women's set?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes, this yellow tropical pattern bikini is available as a two-piece women's set – top and bottom in the same design. Available sizes: S, M, L, XL, and XXL.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for this bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eOur size calculator gives you an initial guide based on height and weight. If you're unsure between two sizes, it might be advisable to choose the larger option – especially if you prefer more room in the top.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I care for this bikini properly?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water, then wash at 30 °C on a delicate cycle. Do not tumble dry – air dry flat. This protects the elastane and can help the fabric retain its shape longer under normal stress.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat situations is this tropical bikini designed for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThis bikini is designed for the beach, lake, and pool – meaning for days with movement in the water and quiet hours in the sun. The polyamide-elastane fabric is common for swimwear and designed for water contact and movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eDoes polyamide-elastane feel comfortable in the water?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003ePolyamide-elastane blends are widely used in swimwear because the fabric stretches well and usually conforms quickly to the body. The skin feel is smooth and light – those who prefer very natural or cotton-like fabrics should consider this when making their decision.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the waistband fit with movement – for example, when swimming or sitting down?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe 22% elastane content is designed so that the material stretches with movement. Whether and how well the waistband fits your body shape also depends on the chosen size – the size calculator can help as a guide.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/die-perfekte-bademode-finden\"\u003eFinding the perfect swimwear\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-damen-finden-sie-den-perfekten-badeanzug-fur-den-sommer-2024\"\u003eWomen's Swimsuits: Find the perfect swimsuit for Summer 2024\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/bikini-damen\/wie-man-den-perfekten-bikini-fur-seine-korperform-findet\"\u003eHow to find the perfect bikini for your body shape\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Gelber Bikini mit tropischem Blumen- und Ananasprint im Sonnenlicht auf einem Holzsteg\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Trägerin steht am Wasser, Muster im Kontrast zum ruhigen Blau des Sees\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce to order – this reduces overproduction and excess stock, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the yellow tropical pattern bikini could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eyellow tropical pattern bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€29.97\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the yellow tropical pattern bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 2026-05-20\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"gelber Bikini tropisches Muster\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/S64cec08ef35e43ceb848bea303746da6Q.jpg?v=1753462373\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"29.97\", \"priceCurrency\": \"EUR\"}, \"additionalProperty\": [{\"@type\": \"PropertyValue\", \"name\": \"Pflegehinweis\", \"value\": \"Feinwäsche 30 °C, nicht im Trockner\"}]}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Pink \/ S","offer_id":44457297510668,"sku":"14:173#Pink;5:100014064","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Pink \/ M","offer_id":44457297969420,"sku":"14:173#Pink;5:361386","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Pink \/ L","offer_id":44457298428172,"sku":"14:173#Pink;5:361385","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Pink \/ XL","offer_id":44457298886924,"sku":"14:173#Pink;5:100014065","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Dark purple \/ S","offer_id":44457297576204,"sku":"14:175#Dark purple;5:100014064","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Dark purple \/ M","offer_id":44457298034956,"sku":"14:175#Dark purple;5:361386","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Dark purple \/ L","offer_id":44457298493708,"sku":"14:175#Dark purple;5:361385","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Dark purple \/ XL","offer_id":44457298952460,"sku":"14:175#Dark purple;5:100014065","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Lake blue \/ S","offer_id":44457297608972,"sku":"14:350852#Lake blue;5:100014064","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Lake blue \/ M","offer_id":44457298067724,"sku":"14:350852#Lake blue;5:361386","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Lake blue \/ L","offer_id":44457298526476,"sku":"14:350852#Lake blue;5:361385","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Lake blue \/ XL","offer_id":44457298985228,"sku":"14:350852#Lake blue;5:100014065","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Wine \/ S","offer_id":44457297674508,"sku":"14:366#Wine;5:100014064","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Wine \/ M","offer_id":44457298133260,"sku":"14:366#Wine;5:361386","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Wine \/ L","offer_id":44457298592012,"sku":"14:366#Wine;5:361385","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Wine \/ XL","offer_id":44457299050764,"sku":"14:366#Wine;5:100014065","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Purple \/ S","offer_id":44457297740044,"sku":"14:100018786#Purple;5:100014064","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Purple \/ M","offer_id":44457298198796,"sku":"14:100018786#Purple;5:361386","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Purple \/ L","offer_id":44457298657548,"sku":"14:100018786#Purple;5:361385","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Purple \/ XL","offer_id":44457299116300,"sku":"14:100018786#Purple;5:100014065","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Bright yellow \/ S","offer_id":44457297805580,"sku":"14:200004890#Bright yellow;5:100014064","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Bright yellow \/ M","offer_id":44457298264332,"sku":"14:200004890#Bright yellow;5:361386","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Bright yellow \/ L","offer_id":44457298723084,"sku":"14:200004890#Bright yellow;5:361385","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Bright yellow \/ XL","offer_id":44457299181836,"sku":"14:200004890#Bright yellow;5:100014065","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Red \/ S","offer_id":44457297871116,"sku":"14:200006159#Red;5:100014064","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Red \/ M","offer_id":44457298329868,"sku":"14:200006159#Red;5:361386","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Red \/ L","offer_id":44457298788620,"sku":"14:200006159#Red;5:361385","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Red \/ XL","offer_id":44457299247372,"sku":"14:200006159#Red;5:100014065","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Blacklbue \/ S","offer_id":44460903203084,"sku":"SetBlackblueS","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Blacklbue \/ M","offer_id":44460903235852,"sku":"SetBlackblueM","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Blacklbue \/ L","offer_id":44460903268620,"sku":"SetBlackblueL","price":29.97,"currency_code":"EUR","in_stock":true},{"title":"Blacklbue \/ XL","offer_id":44460903301388,"sku":"SetBlackblueXL","price":29.97,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/S64cec08ef35e43ceb848bea303746da6Q.jpg?v=1753462373"},{"product_id":"bikini-damen-mit-hohen-huftband","title":"Tropical Leaf Print Bikini","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini stay put at the lake – and still do so after a whole day?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that feeling when a bikini just fits – and you forget about it all day long.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eMany don't notice the difference when they first put it on, but sometime in the afternoon, when everything still sits exactly as it did in the morning.\u003c\/p\u003e\n\n  \u003ch2\u003eWomen's High-Waist Bikini with Tropical Leaf Pattern – for Lake, Beach, and Holiday\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nHigh-waist for a comfortable fit during movement – tropical leaf and palm leaf pattern in green and pink, fabric made of 78% polyamide and 22% elastane with a light stretch feel.\u003c\/p\u003e\n\n\u003cp\u003eThe motif features large leaves and palm fronds in muted green and delicate pink – imagery reminiscent of a peaceful summer day, without being loud. If you're lying in the sun on the shores of Lake Constance and gazing at the water, you'll find the same quiet mood in this pattern: present, but not intrusive. The design is intended not to compete with the surroundings, but to become a part of them.\u003c\/p\u003e\n\n\u003cp\u003eThe combination of green and pink hues looks equally calm on light and dark skin tones. The pattern is generously placed – no small-scale repetitions, but a flowing overall picture. If you're looking for a simple bikini with a leaf pattern that goes with a white linen shirt for the walk to the bar, you'll find an option here that can do both: function by the water and accompany the transition to evening. In terms of color, it can be combined with off-white, beige, or khaki-colored cover-ups.\u003c\/p\u003e\n\n\u003cp\u003eIn the morning, when the water is still smooth and you glide into it from the jetty – the pattern remains in view, without being distracting. At lunch on the terrace, a towel casually draped over your shoulders: the bikini looks dressed, not just functional. And in the evening, when the light gets warmer and you're sitting on a beach towel, the green and pink create a calm overall picture that matches the mood.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The pattern doesn't feel like a costume – it stays in the background, but makes the surroundings appear more prominent.\u003cbr\u003e• The view of the water, the green of the leaves – both complement each other without looking planned.\u003cbr\u003e• If you like a bikini that will fit for a few summers without going out of style, this design could be a good match.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you are unsure about the size: Our size calculator helps you to estimate the top and bottom size correctly.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": []}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: 78% polyamide, 22% elastane\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Delicate wash 30 °C, do not tumble dry\u003c\/li\u003e\n\n\u003cli\u003e✔ Cut: high-waist, top and bottom can be selected separately\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, the Tropical Leaf Pattern Bikini can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini fits differently in the water than expected\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eA few considerations before you decide.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eTop slips after the first swim\u003c\/li\u003e\n\n\u003cli\u003eWaistband digs in or sags – both are uncomfortable\u003c\/li\u003e\n\n\u003cli\u003eOnline bikini sizes are often hard to estimate\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou go into the water, turn around once, and already you're adjusting – the top, the waistband, somewhere. This is not an uncommon experience. Many bikinis are cut to look good when standing, but remain less stable when moving in the water. The waistband, in particular, can shift if the cut is not adapted to the body.\u003c\/p\u003e\n\n\u003cp\u003eOne reason for this is often the fit of the waistband itself: A low-cut waistband has little contact surface and can slip more easily with movement. A higher-cut waistband distributes the tension more evenly – this can help it stay put during swimming, sitting down, or standing up. Whether this is perceived as such with this bikini also depends on the individual body shape and the chosen size.\u003c\/p\u003e\n\n\u003cp\u003eThis high-waist bikini is designed for a comfortable fit during everyday movements by the water – swimming, walking, sitting on a towel. It is less designed for intense water sports or competitive swimming; those looking for maximum support in these activities would be better served with swimwear from the sports sector. If, however, you are looking for a bikini for relaxed days at the lake, pool, or beach, this cut could suit you well.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDoes a high waist suit your body shape – or do you prefer lower-cut styles?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eTop and bottom are selectable separately, allowing you to choose both parts independently in the correct size.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Stays put during swimming and getting up\u003c\/li\u003e\n\n\u003cli\u003e→ Pattern remains clear and colorfast after delicate wash – observe care instructions\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you make a decision\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ High-waist – designed for stable fit during movement by the water\u003c\/li\u003e\n\n\u003cli\u003e✅ Top and bottom can be selected separately for individual size combination\u003c\/li\u003e\n\n\u003cli\u003e✅ Calm tropical pattern in green and pink – timelessly combinable\u003c\/li\u003e\n\n\u003cli\u003e✅ Stretch material made of 78% polyamide, 22% elastane – conforms to movement\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Less suitable for intensive water sports or competitive swimming\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer low-rise bikini cuts will be less familiar with this high waist\u003c\/li\u003e\n\n\u003cli\u003e⚠️ No information on chlorine or saltwater resistance – observe care instructions\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Tropical Leaf Pattern Bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming\u003c\/td\u003e\n\n\u003ctd\u003eDesigned for stable fit during movement in water – with appropriate size\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eWaistband digs in or sags after the first day\u003c\/td\u003e\n\n\u003ctd\u003eHigh waistband with elastane content for even fit under normal strain\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eOnline bikini sizes hard to estimate\u003c\/td\u003e\n\n\u003ctd\u003eTop and bottom selectable separately, size calculator available as a guide\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eExactly these situations were considered for the Tropical Leaf Pattern Bikini – so you have to adjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the Tropical Leaf Pattern Bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash 30°C, do not tumble dry – observe care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 78% polyamide, 22% elastane\u003cbr\u003e• Care: Delicate wash 30 °C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eCould fit well if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003eTropical Leaf Pattern Bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct details at a glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Delicate wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently asked questions about the Tropical Leaf Pattern Bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for a high-waist women's bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eSince the top and bottom can be chosen separately, you can select both parts independently in your respective size. Our size calculator helps you estimate based on height and weight. If unsure between two sizes, it is generally recommended to choose the larger option – especially for the high-waist bottom.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the high waist fit during movement in the water?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe higher-cut waistband is designed to have more contact surface than low-rise models. This can help it stay in place during swimming, standing up, or sitting down. A consistently good fit also depends on the chosen size – the size calculator provides a good reference point here.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for a bikini with a tropical leaf pattern?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water, then wash at 30 °C on a delicate cycle. Do not tumble dry – this protects the material and the colors of the pattern. Drying flat is generally gentler than hanging.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs this high-waist bikini with a tropical print suitable for water sports?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe bikini is designed for relaxed days by the water – swimming, sitting, moving on the beach or by the lake. It is less designed for intensive water sports or competitive swimming. Those who need maximum support for these activities will find more suitable options in the sports swimwear section.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eDoes the leaf pattern fade after multiple wears?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe material made of 78% polyamide and 22% elastane is designed for the demands of bathing. To preserve the colors for as long as possible, it is recommended to rinse the bikini with clear water after each wear and wash it at 30 °C on a gentle cycle. Direct detergent stains on the fabric should be avoided.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat can a simple bikini with a tropical design be combined with?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe muted green and pink of the pattern can be well combined with off-white, beige, or khaki-colored cover-ups, linen shirts, or beach bags. The calm print does not look overdressed either by the water or during the transition to the evening.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Large-scale leaf and palm leaf pattern in green and pink – calm, not overpowering\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"High-waist that accentuates the waist without constricting\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and inventory for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you find yourself in the scenarios above, the Tropical Leaf Pattern Bikini could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eTropical Leaf Pattern Bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€34.90\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        In the end, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the Tropical Leaf Pattern Bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20\/05\/2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Tropisches Blättermuster Bikini\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/H80d9e8f5d6ab487aa881080fa8ff8d02i.jpg?v=1753462020\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"34.90\", \"priceCurrency\": \"EUR\"}, \"additionalProperty\": [{\"@type\": \"PropertyValue\", \"name\": \"Pflegehinweis\", \"value\": \"Feinwäsche 30 °C, nicht im Trockner\"}]}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"TZ18042B6 \/ S","offer_id":44457299312908,"sku":"14:771#TZ18042B6;5:100014064","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042B6 \/ M","offer_id":44457299804428,"sku":"14:771#TZ18042B6;5:361386","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042B6 \/ L","offer_id":44457300295948,"sku":"14:771#TZ18042B6;5:361385","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042B6 \/ XL","offer_id":44457300787468,"sku":"14:771#TZ18042B6;5:100014065","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042B6 \/ 2XL","offer_id":44466080678156,"sku":"TZ18042B6 \/ 2XL","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042B6 \/ 3XL","offer_id":44466080710924,"sku":"TZ18042B6 \/ 3XL","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042B6 \/ 4XL","offer_id":44466080743692,"sku":"TZ18042B6 \/ 4XL","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042B6 \/ 5XL","offer_id":44466080776460,"sku":"TZ18042B6 \/ 5XL","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042B6 \/ 6XL","offer_id":44466080809228,"sku":"TZ18042B6 \/ 6XL","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042DP \/ S","offer_id":44457299411212,"sku":"14:365458#TZ18042DP;5:100014064","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042DP \/ M","offer_id":44457299902732,"sku":"14:365458#TZ18042DP;5:361386","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042DP \/ L","offer_id":44457300394252,"sku":"14:365458#TZ18042DP;5:361385","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042DP \/ XL","offer_id":44457300885772,"sku":"14:365458#TZ18042DP;5:100014065","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042DP \/ 2XL","offer_id":44466080841996,"sku":"TZ18042DP \/ 2XL","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042DP \/ 3XL","offer_id":44466080874764,"sku":"TZ18042DP \/ 3XL","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042DP \/ 4XL","offer_id":44466080907532,"sku":"TZ18042DP \/ 4XL","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042DP \/ 5XL","offer_id":44466080940300,"sku":"TZ18042DP \/ 5XL","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042DP \/ 6XL","offer_id":44466080973068,"sku":"TZ18042DP \/ 6XL","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042D2 \/ S","offer_id":44457299640588,"sku":"14:1052#TZ18042D2;5:100014064","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042D2 \/ M","offer_id":44457300132108,"sku":"14:1052#TZ18042D2;5:361386","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042D2 \/ L","offer_id":44457300623628,"sku":"14:1052#TZ18042D2;5:361385","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042D2 \/ XL","offer_id":44457301115148,"sku":"14:1052#TZ18042D2;5:100014065","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042D2 \/ 2XL","offer_id":44466081005836,"sku":"TZ18042D2 \/ 2XL","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042D2 \/ 3XL","offer_id":44466081038604,"sku":"TZ18042D2 \/ 3XL","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042D2 \/ 4XL","offer_id":44466081071372,"sku":"TZ18042D2 \/ 4XL","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042D2 \/ 5XL","offer_id":44466081104140,"sku":"TZ18042D2 \/ 5XL","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042D2 \/ 6XL","offer_id":44466081136908,"sku":"TZ18042D2 \/ 6XL","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042G1 \/ S","offer_id":44457299673356,"sku":"14:496#TZ18042G1;5:100014064","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042G1 \/ M","offer_id":44457300164876,"sku":"14:496#TZ18042G1;5:361386","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042G1 \/ L","offer_id":44457300656396,"sku":"14:496#TZ18042G1;5:361385","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042G1 \/ XL","offer_id":44457301147916,"sku":"14:496#TZ18042G1;5:100014065","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042G1 \/ 2XL","offer_id":44466081169676,"sku":"TZ18042G1 \/ 2XL","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042G1 \/ 3XL","offer_id":44466081202444,"sku":"TZ18042G1 \/ 3XL","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042G1 \/ 4XL","offer_id":44466081235212,"sku":"TZ18042G1 \/ 4XL","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042G1 \/ 5XL","offer_id":44466081267980,"sku":"TZ18042G1 \/ 5XL","price":34.9,"currency_code":"EUR","in_stock":true},{"title":"TZ18042G1 \/ 6XL","offer_id":44466081300748,"sku":"TZ18042G1 \/ 6XL","price":34.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/H80d9e8f5d6ab487aa881080fa8ff8d02i.jpg?v=1753462020"},{"product_id":"bikini-damen-als-frucht","title":"yellow patterned bikini","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a patterned women's bikini stay in place even after a long day at the beach?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that calm feeling when a bikini just stays put – without you having to adjust it in between.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eMany don't notice the difference when they first put it on, but rather when they go into the water, come out, and simply carry on.\u003c\/p\u003e\n\n  \u003ch2\u003ePatterned women's bikini – yellow top with tropical leaf pattern for beach and pool\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nTwo-piece bikini with a yellow top and patterned bottom – a clear splash of color that gets a calm vibrancy from the tropical leaf pattern on the bottom. Fabric made from 78% polyamide and 22% elastane, comfortably snug without constricting.\u003c\/p\u003e\n\n\u003cp\u003eThe yellow of the top looks vibrant in the sunlight without appearing artificial – on the shores of Lake Constance or a stretch of beach where the light falls flat on the water, it sets a clear tone. The tropical leaf pattern of the bottom stays close to the top in its color scheme, creating a set that belongs together without being identical. This combination of plain top and patterned bottom has a lightness to it – it stands out without dominating.\u003c\/p\u003e\n\n\u003cp\u003eFor those who like a summery look that isn't completely plain but also doesn't seem overloaded, this combination works well. The pattern is large enough to show, and subtle enough not to compete. By the pool, on a terrace with a lake view, or strolling along the lakeside promenade – the yellow top with the patterned bottom fits these moods without commenting on them.\u003c\/p\u003e\n\n\u003cp\u003eThis bikini set makes a great gift if you want to give someone something that evokes summer and lightness – without imposing a specific style. A yellow bikini with a tropical pattern says: I was thinking of you, with a smile.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll know\u003c\/h3\u003e\n\n\u003cp\u003e• You put on the top, and the yellow looks clearer and fresher in the mirror than expected – not gaudy, more sunny.\u003cbr\u003e• You look at the bottom and notice that the leaf pattern and the yellow support each other – a combination choice that explains itself.\u003cbr\u003e• You pack the bikini for your next vacation and are happy because you know it goes with more than one look.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you like, select your size below – the size calculator will help you.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"XS\", \"hip_min\": 73.0, \"hip_max\": 79.0, \"bust_min\": 76.0, \"bust_max\": 79.0}, {\"name\": \"S\", \"hip_min\": 78.0, \"hip_max\": 84.0, \"bust_min\": 81.0, \"bust_max\": 84.0}, {\"name\": \"M\", \"hip_min\": 83.0, \"hip_max\": 89.0, \"bust_min\": 86.0, \"bust_max\": 89.0}, {\"name\": \"L\", \"hip_min\": 88.0, \"hip_max\": 94.0, \"bust_min\": 91.0, \"bust_max\": 94.0}, {\"name\": \"XL\", \"hip_min\": 94.0, \"hip_max\": 100.0, \"bust_min\": 97.0, \"bust_max\": 99.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: 78% Polyamide (fiber), 22% Elastane (fiber)\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Delicate wash 30 °C, do not tumble dry – rinse briefly with clear water after wearing\u003c\/li\u003e\n\n\u003cli\u003e✔ Design: yellow top, bottom with tropical leaf pattern\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size fit you, a yellow bikini with a pattern can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen your bikini doesn't stay where it belongs in the water\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eFit, fabric, and pattern – what really matters in a patterned bikini.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top shifts when swimming\u003c\/li\u003e\n\n\u003cli\u003eThe waistband becomes uncomfortably tight after a while\u003c\/li\u003e\n\n\u003cli\u003eThe pattern looks different in person than in the picture\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou go into the water, dive briefly, and when you resurface, you notice the top has shifted – you pull it back, adjust it, and the issue is resolved for the moment. But after the third time, it's no longer just an issue, it's a distraction. A bikini that sits calmly during movement simply isn't noticed in these moments – that's its advantage.\u003c\/p\u003e\n\n\u003cp\u003eThe fabric of this bikini consists of 78% polyamide and 22% elastane – a combination designed for stretch and shape retention. The material adapts to movements and generally returns to its shape. Whether this is noticeable in everyday life depends on the cut, size choice, and stress – not a promise, but a guideline.\u003c\/p\u003e\n\n\u003cp\u003eIf you are looking for a bikini made for relaxed days at the lake, pool, or on vacation, with a clear, colorful design, this two-piece might be suitable. If you prefer a very simple, solid-colored set or need maximum coverage and athletic function, this model with its patterned bottom and vibrant yellow might not be your style.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDoes the interplay of the yellow top and tropical pattern match what you envision for your next summer days?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator will help you assess the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eCheck the available sizes and choose the one that matches your measurements.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay special attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Stays in place quietly after a long day of swimming\u003c\/li\u003e\n\n\u003cli\u003e→ Top remains in position when entering the water\u003c\/li\u003e\n\n\u003cli\u003e→ Yellow color looks clear and fresh in sunlight\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Yellow top with tropical patterned bottom – a coordinated set\u003c\/li\u003e\n\n\u003cli\u003e✅ Fabric made of 78% polyamide, 22% elastane – designed for stretch and shape retention\u003c\/li\u003e\n\n\u003cli\u003e✅ Suitable for beach, pool, and vacation under normal use\u003c\/li\u003e\n\n\u003cli\u003e✅ Delicate wash 30 °C – easy care for everyday use\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Less suitable for a very plain, solid-colored design preference\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Not designed for intensive water sports or competitive swimming\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Not opaque or athletically reinforced cut – no promise of maximum coverage\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical with similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Yellow bikini with pattern\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming and diving\u003c\/td\u003e\n\n\u003ctd\u003eElastane content in the fabric is designed for movement adaptation and shape retention under normal use\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePattern and color often don't truly match in bikini sets\u003c\/td\u003e\n\n\u003ctd\u003eYellow top and leaf-patterned bottom are color-coordinated and designed as a set\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSize of bikinis is hard to estimate online\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator available with height and weight as decision aid\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eWaistband presses uncomfortably after prolonged wear\u003c\/td\u003e\n\n\u003ctd\u003eStretchable polyamide-elastane fabric adapts – fit largely depends on size selection\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered precisely these situations with the yellow patterned bikini – so you'll have to adjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the yellow patterned bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eConcrete moments where you realize: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even when moving.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang, done. Delicate wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 78% Polyamide, 22% Elastane\u003cbr\u003e• Care: Delicate wash 30 °C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMight be a good fit if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You're looking for a \u003cstrong\u003eyellow patterned bikini\u003c\/strong\u003e with a fit that can suit you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct Details at a Glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Delicate wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about the Yellow Patterned Bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for the yellow bikini with a patterned bottom?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eUse the size calculator with your height and weight as a first guide. Since bikini tops and bottoms can fit differently, it's worth choosing a size up if you're unsure – especially if you prefer a comfortable, not too tight fit.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the waistband of the patterned bikini bottom fit when moving?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe polyamide and elastane material is designed for stretch and generally returns to its shape under normal use. However, a comfortable fit also depends on the chosen size – so we recommend carefully comparing the size chart.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for a polyamide and elastane bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eRinse briefly with clear water after wearing, then wash at 30 °C on a delicate cycle. Do not tumble dry – this can affect the elasticity of the fabric. Laying flat to dry is gentler for the shape.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs this bikini suitable for active water sports?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThis bikini is designed for relaxed days at the beach, lake, or pool. It is less suitable for intensive water sports or competitive swimming – for those, there are models with specially reinforced support and an athletic cut.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eDoes the yellow top match the patterned bottom in color?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe bottom features a tropical leaf pattern that is color-coordinated with the yellow of the top. The combination is intended as a set – top and bottom have been coordinated, but can also be combined individually depending on personal style.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWho is this bikini rather not suitable for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThose looking for a purely solid-colored, very simple design might be less happy with the patterned bottom. Also, for buyers who need maximum coverage or a particularly athletic cut, this model is not the first choice.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Yellow top in the sunlight by the water – vibrant, not gaudy\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Tropical leaf pattern on the bottom – large enough to show, subtle enough to combine\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and inventory, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information checked according to EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the yellow patterned bikini can be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eYellow Patterned Bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€27.99\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the yellow patterned bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"gelber Bikini mit Muster\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/IMG-20240610-WA0022.png?v=1753461194\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"27.99\", \"priceCurrency\": \"EUR\"}, \"additionalProperty\": [{\"@type\": \"PropertyValue\", \"name\": \"Pflegehinweis\", \"value\": \"Feinwäsche 30 °C, nicht im Trockner\"}]}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"1 Style \/ XS","offer_id":44457301311756,"sku":"CJYJ142257902BY","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"1 Style \/ S","offer_id":44457301901580,"sku":"CJYJ142257903CX","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"1 Style \/ M","offer_id":44457302491404,"sku":"CJYJ142257904DW","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"1 Style \/ L","offer_id":44457303081228,"sku":"CJYJ142257905EV","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"1 Style \/ XL","offer_id":44457303671052,"sku":"CJYJ142257906FU","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"2 Style \/ XS","offer_id":44457301475596,"sku":"CJYJ142257908HS","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"2 Style \/ S","offer_id":44457302065420,"sku":"CJYJ142257909IR","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"2 Style \/ M","offer_id":44457302655244,"sku":"CJYJ142257910JQ","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"2 Style \/ L","offer_id":44457303245068,"sku":"CJYJ142257911KP","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"2 Style \/ XL","offer_id":44457303834892,"sku":"CJYJ142257912LO","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"5 Style \/ XS","offer_id":45431064199436,"sku":"CJYJ142257926ZA","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"5 Style \/ S","offer_id":45431064232204,"sku":"CJYJ142257927AZ","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"5 Style \/ M","offer_id":45431064264972,"sku":"CJYJ142257928BY","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"5 Style \/ L","offer_id":45431064297740,"sku":"CJYJ142257929CX","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"5 Style \/ XL","offer_id":45431064330508,"sku":"CJYJ142257930DW","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"6 Style \/ XS","offer_id":45431064396044,"sku":"CJYJ142257932FU","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"6 Style \/ S","offer_id":45431064428812,"sku":"CJYJ142257933GT","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"6 Style \/ M","offer_id":45431064461580,"sku":"CJYJ142257934HS","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"6 Style \/ L","offer_id":45431064494348,"sku":"CJYJ142257935IR","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"6 Style \/ XL","offer_id":45431064527116,"sku":"CJYJ142257936JQ","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"7 Style \/ XS","offer_id":44460897534220,"sku":"CJYJ142257938LO","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"7 Style \/ S","offer_id":44460897566988,"sku":"CJYJ142257939MN","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"7 Style \/ M","offer_id":44460897599756,"sku":"CJYJ142257940NM","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"7 Style \/ L","offer_id":44460897632524,"sku":"CJYJ142257941OL","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"7 Style \/ XL","offer_id":44460897665292,"sku":"CJYJ142257942PK","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"8 Style \/ XS","offer_id":44457301344524,"sku":"CJYJ142257944RI","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"8 Style \/ S","offer_id":44457301934348,"sku":"CJYJ142257945SH","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"8 Style \/ M","offer_id":44457302524172,"sku":"CJYJ142257946TG","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"8 Style \/ L","offer_id":44457303113996,"sku":"CJYJ142257947UF","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"8 Style \/ XL","offer_id":44457303703820,"sku":"CJYJ142257948VE","price":27.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/IMG-20240610-WA0022.png?v=1753461194"},{"product_id":"triangel-bikini","title":"Watermelon Bikini Women","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini that stays in place all day – and remains light and carefree?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that calm feeling when a bikini just *is* – without you constantly having to think about it.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eOver the course of a long day at the beach, you quickly notice whether a bikini cooperates or if you're constantly adjusting it.\u003c\/p\u003e\n\n  \u003ch2\u003eWatermelon Triangle Bikini – Playful Pattern for Lake, Pool, and Beach\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nTriangle top with adjustable straps – for a fit that can be adapted, watermelon illustration with black seeds on a light background, fabric made of elastic polyester that feels comfortable on the skin.\u003c\/p\u003e\n\n\u003cp\u003eThe watermelon pattern is one of those motifs you either instantly love or don't – and that's precisely what makes it honest. The illustration is clearly drawn: juicy green and red areas, black seeds, no frills. On the shores of Lake Constance, where the afternoon light skims flat across the water, this pattern appears light and direct – like a summer that needs no grand announcement.\u003c\/p\u003e\n\n\u003cp\u003eThe triangle top can be adjusted with the straps, allowing for a customized fit. The color combination of green, red, and white stays within a clear framework – loud enough to stand out, quiet enough to pair with simple linen shorts or a white wrap skirt. Those who usually shy away from striking patterns might make an exception here – despite its size, the motif remains understated in its overall effect.\u003c\/p\u003e\n\n\u003cp\u003eGetting up and going into the water at the lake – the pattern briefly catches the eye without shouting. Sitting down on the pier, applying sunscreen, the bikini stays calmly in place. As a souvenir or gift for someone who loves summer and doesn't want to be stuck in overly serious colors, this set is a harmonious choice.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The fabric feels soft against the skin – even after a long day in the water.\u003cbr\u003e• The pattern brings joy without needing explanation – it speaks for itself.\u003cbr\u003e• You put it on and feel ready – no second-guessing if it fits.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you like, you'll find the size calculator below – it will help you estimate the right top and bottom.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust measurement (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"hip_min\": 76.0, \"hip_max\": 78.0, \"bust_min\": 72.0, \"bust_max\": 74.0}, {\"name\": \"M\", \"hip_min\": 80.0, \"hip_max\": 82.0, \"bust_min\": 76.0, \"bust_max\": 78.0}, {\"name\": \"L\", \"hip_min\": 84.0, \"hip_max\": 86.0, \"bust_min\": 80.0, \"bust_max\": 82.0}, {\"name\": \"XL\", \"hip_min\": 88.0, \"hip_max\": 90.0, \"bust_min\": 84.0, \"bust_max\": 86.0}, {\"name\": \"2XL\", \"hip_min\": 93.0, \"hip_max\": 95.0, \"bust_min\": 89.0, \"bust_max\": 91.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: Polyester, elastic\u003c\/li\u003e\n\n\u003cli\u003e✔ Cut: Triangle top with adjustable straps\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Rinse briefly with clear water after wearing, delicate wash 30 °C, do not tumble dry\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eWhen the cut and size are right for you, the Women's Watermelon Bikini can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini feels restless in the water and gives way\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eWhat makes the difference with a triangle cut – and who it suits.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eTop that slips in the water and needs constant adjustment\u003c\/li\u003e\n\n\u003cli\u003eWaistband that pinches or cuts in after a few hours\u003c\/li\u003e\n\n\u003cli\u003eFabric that feels unpleasant when wet or bulks up\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eWho hasn't experienced this: you go into the water, dive in, and the top immediately needs attention afterwards. Or the waistband pulls so much after a while that you'd rather leave the lake sooner than planned. This is not an unchangeable law – but it happens more often than it should.\u003c\/p\u003e\n\n\u003cp\u003eOften it's due to the interaction of cut and material. A triangle top with too few adjustment options simply doesn't fit every bust shape equally well. And a waistband that fits when dry can behave differently when wet – depending on how the fabric reacts to moisture.\u003c\/p\u003e\n\n\u003cp\u003eThis watermelon bikini is designed as a triangle set – with adjustable straps so the top can be adapted to different proportions, and an elastic polyester fabric that should remain stable during normal movement in the water. Whether this is true for you, of course, depends on how you swim and what you expect from a bikini. This cut is less suitable for intense water sports or strenuous activities – such as surfing or active diving. As a bathing and beach bikini for lakes, pools, and more relaxed vacation use, it can be a good option.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eImagine you get out of the water after swimming – is the bikini still sitting the way you put it on?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight to find a suitable top and bottom.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eIf you're unsure, it's worth taking a look at the bikini size guide – there you'll find information on waistband shapes and top variations.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Top stays securely in place even during gentle swimming\u003c\/li\u003e\n\n\u003cli\u003e→ The pattern still looks fresh even after a long day at the beach\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you make a decision\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Playful watermelon pattern – clearly drawn, understated in overall effect\u003c\/li\u003e\n\n\u003cli\u003e✅ Triangle top with adjustable straps for an individual fit\u003c\/li\u003e\n\n\u003cli\u003e✅ Elastic polyester fabric – comfortable on the skin during normal wear\u003c\/li\u003e\n\n\u003cli\u003e✅ Top and bottom can be chosen separately for individual size combinations\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Less suitable for intense water sports (surfing, diving, strenuous activities)\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer plain or very subtle patterns might tire of the motif\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Triangle cut offers less support than padded or structured tops\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Women's Watermelon Bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips after swimming\u003c\/td\u003e\n\n\u003ctd\u003eAdjustable straps allow for individual fit – can help the top stay more securely in place\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eDifficult to estimate size for online bikinis\u003c\/td\u003e\n\n\u003ctd\u003eTop and bottom can be chosen separately, size calculator available for guidance\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eWaistband pinches with prolonged wear\u003c\/td\u003e\n\n\u003ctd\u003eElastic polyester fabric adapts to normal wear\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered precisely such situations with the Women's Watermelon Bikini – so you have to make fewer adjustments while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the Women's Watermelon Bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments where you notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: High-quality polyester, elastic \u0026amp; comfortable on the skin\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay fit well if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003eWomen's Watermelon Bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about the Women's Watermelon Bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for a triangle bikini with a watermelon pattern?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eTop and bottom can be chosen separately. Use the size calculator with your height and weight as a guide. If in doubt, it is generally recommended to choose the larger size, so the triangle top has enough room for adjustment.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the waistband fit during movement – for example, when swimming?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe bottom is made of elastic polyester and designed for normal use at the beach and in the water. During gentle swimming and everyday beach movement, it generally stays securely in place. This cut is less designed for intensive water sports activities.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I care for this Watermelon Bikini correctly?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eRinse briefly with clear, cool water after wearing. Wash on a delicate cycle at 30 °C. Do not tumble dry – laying flat to air dry preserves shape and material longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs this bikini also suitable for Lake Constance or other lakes?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes, the triangle bikini with a watermelon pattern is suitable for use at the lake, pool, and beach. It is designed for everyday beach situations – gentle swimming, walking around, sitting on the shore.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan I also order the regional Watermelon Bikini as a gift?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThat is possible. Since bikinis are very size-dependent, it is advisable to look at the size calculator or – if unsure – a gift voucher, so the recipient can choose the size themselves.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/bikini-damen\/push-up-bikini\"\u003ePush-up Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/bikini-damen\/bikini-grosse-grossen\"\u003ePlus Size Bikinis\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Watermelon illustration with black seeds on a light background – clear and direct\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Triangle top on the shores of Lake Constance in the afternoon light\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and inventory for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information checked in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the Women's Watermelon Bikini can be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eWomen's Watermelon Bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€25.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope the Women's Watermelon Bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Wassermelonen Bikini Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/products\/Hb29d579058b749d3934f67fe54ec6e115.jpg?v=1753460804\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"25.95\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Watermelon \/ S","offer_id":44489438789900,"sku":"14:365458#red;5:100014064;200007763:201336100","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Watermelon \/ M","offer_id":44489438953740,"sku":"14:365458#red;5:361386;200007763:201336100","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Watermelon \/ L","offer_id":44489439117580,"sku":"14:365458#red;5:361385;200007763:201336100","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Watermelon \/ XL","offer_id":44489439281420,"sku":"14:365458#red;5:100014065;200007763:201336100","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Watermelon \/ 2XL","offer_id":44489456156940,"sku":"Wassermelone2XL","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Leopard \/ S","offer_id":44489438822668,"sku":"14:350852#black;5:100014064;200007763:201336100","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Leopard \/ M","offer_id":44489438986508,"sku":"14:350852#black;5:361386;200007763:201336100","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Leopard \/ L","offer_id":44489439150348,"sku":"14:350852#black;5:361385;200007763:201336100","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Leopard \/ XL","offer_id":44489439314188,"sku":"14:350852#black;5:100014065;200007763:201336100","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Leopard \/ 2XL","offer_id":44489456189708,"sku":"Leopard2XL","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Honeydew melon \/ S","offer_id":44489438855436,"sku":"14:366#yellow;5:100014064;200007763:201336100","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Honeydew melon \/ M","offer_id":44489439019276,"sku":"14:366#yellow;5:361386;200007763:201336100","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Honeydew melon \/ L","offer_id":44489439183116,"sku":"14:366#yellow;5:361385;200007763:201336100","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Honeydew melon \/ XL","offer_id":44489439346956,"sku":"14:366#yellow;5:100014065;200007763:201336100","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Honeydew melon \/ 2XL","offer_id":44489456222476,"sku":"Honigmelone2XL","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"wavy colorful \/ S","offer_id":44489438888204,"sku":"14:1254#striped;5:100014064;200007763:201336100","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"wavy colorful \/ M","offer_id":44489439052044,"sku":"14:1254#striped;5:361386;200007763:201336100","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"wavy colorful \/ L","offer_id":44489439215884,"sku":"14:1254#striped;5:361385;200007763:201336100","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"wavy colorful \/ XL","offer_id":44489439379724,"sku":"14:1254#striped;5:100014065;200007763:201336100","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"wavy colorful \/ 2XL","offer_id":44489456255244,"sku":"Weilligbunt2XL","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Wavy yellow \/ S","offer_id":44489438920972,"sku":"14:200004891#yellow;5:100014064;200007763:201336100","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Wavy yellow \/ M","offer_id":44489439084812,"sku":"14:200004891#yellow;5:361386;200007763:201336100","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Wavy yellow \/ L","offer_id":44489439248652,"sku":"14:200004891#yellow;5:361385;200007763:201336100","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Wavy yellow \/ XL","offer_id":44489439412492,"sku":"14:200004891#yellow;5:100014065;200007763:201336100","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Wavy yellow \/ 2XL","offer_id":44489456288012,"sku":"Welliggelb2XL","price":25.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/products\/Hb29d579058b749d3934f67fe54ec6e115.jpg?v=1753460804"},{"product_id":"bikini-damen-punkte","title":"black polka dot bikini","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini that stays put all day – without you even thinking about it?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that calm feeling when a bikini simply fits – just as well in the morning at the lake as after the third jump into the water.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eThe difference often doesn't show immediately, but rather by midday – when you realize you haven't had to adjust it at all.\u003c\/p\u003e\n\n  \u003ch2\u003eWomen's Black and White Polka Dot Bikini – Subtle Pattern for Lake, Beach, and Pool\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nA classic polka-dot pattern on a black background – white dots with fine stripe details that give the look a calm structure. Made from 78% polyamide and 22% elastane: soft on the body, with enough rebound for a comfortable fit.\u003c\/p\u003e\n\n\u003cp\u003eThe black and white pattern with its evenly distributed white dots seems familiar at first glance – and yet not interchangeable. It's the kind of pattern that doesn't need explaining on the shores of Lake Constance any more than on Lake Garda. A black and white polka dot bikini has a long visual history – from old holiday photos to today's beach days – and that's precisely what makes it so easy to combine.\u003c\/p\u003e\n\n\u003cp\u003eThe stripe details create a slight counterpoint to the polka dot pattern and add a subtle tension to the overall look. Those who like clear lines and calm contrasts will find themselves in it. Those who prefer colorful prints or floral motifs will probably be less happy with this bikini – the pattern thrives on understatement, not conspicuousness.\u003c\/p\u003e\n\n\u003cp\u003eDrink coffee on the pier in the morning, with a pattern that doesn't impose itself. Go into the water at lunchtime without thinking twice about the fit. A quick ice cream in the afternoon – the top goes along with it without you having to consciously deal with it. For days when you just want to be there, without your clothing becoming an issue.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The pattern stands out without dominating – a simple eye-catcher at the water.\u003cbr\u003e• The fabric feels soft, even when wet – no unpleasant stickiness.\u003cbr\u003e• The black and white can be combined with almost any beach towel and cover-up.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you're looking for a black and white polka dot bikini that doesn't draw attention to itself in everyday water activities – take your time to look at the cut and size.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"hip_min\": 86.0, \"hip_max\": 91.0}, {\"name\": \"M\", \"hip_min\": 91.0, \"hip_max\": 96.0}, {\"name\": \"L\", \"hip_min\": 96.0, \"hip_max\": 101.0}, {\"name\": \"XL\", \"hip_min\": 101.0, \"hip_max\": 106.0}, {\"name\": \"2XL\", \"hip_min\": 106.0, \"hip_max\": 111.0}, {\"name\": \"3XL\", \"hip_min\": 111.0, \"hip_max\": 116.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: 78% Polyamide, 22% Elastane\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Gentle wash 30 °C, do not tumble dry\u003c\/li\u003e\n\n\u003cli\u003e✔ Pattern: Black and white polka dot with stripe details\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, a black polka dot bikini can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini feels restless in the water\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eWhat can make a difference when buying a polka dot bikini.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top slips while swimming and constantly needs adjusting\u003c\/li\u003e\n\n\u003cli\u003eBikinis ordered online fit differently than expected\u003c\/li\u003e\n\n\u003cli\u003eAfter a few days at the beach, the fabric loses its comfortable feel\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou know the feeling: you go into the water, dive down – and when you resurface, the top has already slipped. At the beach, this is hardly noticeable, but after the third adjustment, it starts to demand the attention you actually wanted to dedicate to the day.\u003c\/p\u003e\n\n\u003cp\u003eThis often happens when the material has little inherent tension or the cut doesn't suit the body shape. A bikini that only fits while standing, but shifts with every movement, is usually due to a combination of elastane content and cut – both together determine how much rebound the fabric offers.\u003c\/p\u003e\n\n\u003cp\u003eThis black polka dot bikini is made from a polyamide-elastane blend and designed for a stable fit during everyday water movements – swimming, sitting on the pier, getting out of the water. It is less intended for intense water sports or competitive swimming; there are more specialized cuts for that. If you are planning a beach holiday at the lake or sea and want a bikini that goes along with it without constantly becoming an issue, this one might be suitable.\n\u003cbr\u003e\u003cbr\u003eDoes that fit what you imagine?\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eTake your time to look at the top and bottom – both can be chosen separately.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Stays put while swimming – without constant adjusting\u003c\/li\u003e\n\n\u003cli\u003e→ Pattern remains clear and structured even after several washes\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you make a decision\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Timeless polka-dot pattern – combinable with many beach accessories\u003c\/li\u003e\n\n\u003cli\u003e✅ Polyamide-elastane blend for a stable fit during everyday movements\u003c\/li\u003e\n\n\u003cli\u003e✅ Top and bottom can be chosen separately – practical for different sizes\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Less suitable for intense water sports or competitive swimming\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer colorful or floral patterns will be less happy with this simple black and white pattern\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ black polka dot bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips while swimming and constantly needs adjusting\u003c\/td\u003e\n\n\u003ctd\u003ePolyamide-elastane blend designed for a more stable fit during normal movement in water\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\u0026lt;\n\u003ctr\u003e\n\n\u003ctd\u003eOnline bikini sizes are rarely accurate\u003c\/td\u003e\n\n\u003ctd\u003eTop and bottom can be chosen separately, size calculator as a guide\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eFabric feels unpleasantly sticky when wet\u003c\/td\u003e\n\n\u003ctd\u003eHigh polyamide content usually feels soft – even when wet\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered exactly these situations with the black polka dot bikini – so you have to adjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the black polka dot bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: this fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even when moving.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSalt water, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Gentle wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 78% Polyamide, 22% Elastane\u003cbr\u003e• Care: Gentle wash 30 °C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eIt might be a good fit if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003eblack polka dot bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct details at a glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Gentle wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about the black polka dot bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for a black polka dot bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eRinse briefly with clear water after wearing, then wash on a gentle cycle at 30°C. Do not tumble dry – this protects the elasticity of the polyamide-elastane fabric and helps keep the pattern clear longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for a bikini online?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eWith bikinis, it can be useful to choose the top and bottom separately if your torso and hips are different sizes. Our size calculator gives you a guide based on height and weight – if in doubt, one size larger is usually the safer choice.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat water activities is a black and white polka dot bikini suitable for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThis bikini is designed for everyday water movements – swimming, snorkeling, splashing, beach days at the lake or sea. For intense water sports or competitive swimming, there are more specialized cuts that are better suited.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat distinguishes a simple polka dot bikini from a one-piece for the beach?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eA two-piece bikini can be adjusted separately for the top and bottom – practical if both body parts are different sizes. A swimsuit often offers more back coverage and a more closed fit, which some prefer. Which cut fits depends on personal preference and intended use.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the waistband of the bikini bottom fit when moving?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe bottom is made from a polyamide-elastane blend that usually stays put during normal activity – walking, sitting, going into the water. The exact fit depends on size and body shape; the size calculator provides a guide.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Black background with evenly distributed white dots – clear and calm\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Fine stripe details as a subtle counterpoint to the polka dot pattern\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and inventory, especially for printed items!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified according to EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, a black polka dot bikini can be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eblack polka dot bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€29.94\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the black polka dot bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"schwarzer Bikini mit Punkten\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/bikini5.png?v=1753460524\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"29.94\", \"priceCurrency\": \"EUR\"}, \"additionalProperty\": [{\"@type\": \"PropertyValue\", \"name\": \"Pflegehinweis\", \"value\": \"Feinwäsche 30 °C, nicht im Trockner\"}]}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Default Title","offer_id":44490902012172,"sku":"","price":29.94,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/bikini5.png?v=1753460524"},{"product_id":"bikini-damen-schwarz-weiss","title":"Zebra Bikini black white","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini that stays put on the beach – and still does after swimming?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that calm feeling when a bikini simply stays in place – whether you're just getting into the water or lying back down on your towel.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eAnd it's precisely in such moments that many notice the difference – not when first putting it on, but over the course of a long day at the beach.\u003c\/p\u003e\n\n  \u003ch2\u003eZebra Bikini Women's Black and White – with a comfortable fit for beach and lake\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nTwo-piece cut with clearly contoured lines – the black and white zebra pattern looks precise and calm at the same time, the fabric made of 78% polyamide and 22% elastane feels soft and adaptable.\u003c\/p\u003e\n\n\u003cp\u003eThe zebra pattern is one of those designs that repeatedly appear in swimwear – because it makes an impression without being loud. The clear contrast between black and white works just as well on the shores of Lake Constance as on a Mediterranean beach. You put on the top, glance in the mirror – and the pattern does its part without you having to add anything else.\u003c\/p\u003e\n\n\u003cp\u003eThe lines of the zebra pattern flow smoothly over the top and bottom. Combined with a neutral beach towel or a simple linen shirt, the result is a look that is neither too much nor too little. For people who like a recognizable pattern but are not looking for loud colors, this can be a harmonious choice. The black-and-white palette makes combining it with many items found in your vacation luggage uncomplicated.\u003c\/p\u003e\n\n\u003cp\u003eOn the jetty, before you jump into the water. On the sun lounger by the lake, while you open a book. Strolling through the beach market, just before you grab something to drink. In these moments, the pattern contributes – without you consciously thinking about it.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The pattern remains clearly visible even when wet – no fading upon first contact with water.\u003cbr\u003e• The fabric feels soft when dry and adapts with movement – whether swimming a stroke in the water or getting up from the sun lounger.\u003cbr\u003e• The black and white can be combined with what you already have with you – towel, shorts, shirt.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you prefer solid-colored swimwear or vibrant colors, this pattern might not be your style – in that case, take a look at our solid-colored options.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g., 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g., 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g., 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"waist_min\": 66.0, \"waist_max\": 96.0, \"hip_min\": 90.0, \"hip_max\": 94.0, \"bust_min\": 86.0, \"bust_max\": 90.0}, {\"name\": \"M\", \"waist_min\": 70.0, \"waist_max\": 73.0, \"hip_min\": 94.0, \"hip_max\": 98.0, \"bust_min\": 90.0, \"bust_max\": 94.0}, {\"name\": \"L\", \"waist_min\": 74.0, \"waist_max\": 77.0, \"hip_min\": 98.0, \"hip_max\": 102.0, \"bust_min\": 94.0, \"bust_max\": 98.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: 78% Polyamide, 22% Elastane\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Gentle wash 30 °C, do not tumble dry\u003c\/li\u003e\n\n\u003cli\u003e✔ Pattern: Zebra black and white, two-piece set\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size fit you, the black and white zebra bikini can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen bikinis shift with movement\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eA pattern that stays – and a fit that shouldn't make itself noticeable.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eTop slips without warning when swimming\u003c\/li\u003e\n\n\u003cli\u003eWaistband digs in uncomfortably after a few hours\u003c\/li\u003e\n\n\u003cli\u003eEstimating size online feels like a guessing game\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou go into the water, briefly dive under – and afterwards, something isn't sitting right. The top has shifted, the waistband is pulling in one spot. This isn't an uncommon phenomenon: many bikinis are designed for looks, less so for active movement in the water.\u003c\/p\u003e\n\n\u003cp\u003eThe reason often lies in the cut and how the material behaves when wet. Elastane content reacts differently to water – a higher elastane content can help the fabric adapt when worn and stay more securely in place during normal movement. No fabric makes an absolute promise in this regard – but the composition plays a role.\u003c\/p\u003e\n\n\u003cp\u003eThis zebra bikini is designed for a comfortable, movement-friendly fit – for swimming in the lake, splashing in the pool, the back-and-forth of a beach day. It is not a competition bikini or a swimsuit for intense lap swimming. If you are planning more athletic water activities where maximum support is paramount, a specialized sports swimsuit might be more suitable. For all other moments by the water, this cut can be a calm choice.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eHow much movement in the water do you plan – more relaxed swimming or more active sports sessions?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eLook at the top and bottom separately – this way you can adjust the sizes individually, in case the upper and lower measurements require different sizes.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Stays put calmly after a long day at the lake\u003c\/li\u003e\n\n\u003cli\u003e→ Top stays in place while swimming\u003c\/li\u003e\n\n\u003cli\u003e→ Pattern remains clear and high-contrast even when wet\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you make a decision\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Clear black and white zebra pattern – timelessly combinable\u003c\/li\u003e\n\n\u003cli\u003e✅ 78% polyamide, 22% elastane – adapts with movement\u003c\/li\u003e\n\n\u003cli\u003e✅ Top and bottom can be chosen separately – individual size combination possible\u003c\/li\u003e\n\n\u003cli\u003e✅ Designed for relaxed swimming, beach, and lake\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Less suitable for intense water sports or competitive swimming\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer solid colors or vibrant color patterns will find more suitable options elsewhere\u003c\/li\u003e\n\n\u003cli\u003e⚠️ No underwire or molded cups – those looking for targeted support in the top should consider this\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Zebra Bikini black and white\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming\u003c\/td\u003e\n\n\u003ctd\u003eCut designed for stable fit during normal water movement\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSize hard to estimate online\u003c\/td\u003e\n\n\u003ctd\u003eTop and bottom can be chosen separately, size calculator available\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePattern fades after the season\u003c\/td\u003e\n\n\u003ctd\u003ePolyamide-elastane material for use in water – with proper care, the color lasts longer\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered exactly these situations with the black and white zebra bikini – so you'll have to adjust less when wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the black and white zebra bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang to dry, done. Gentle wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 78% Polyamide, 22% Elastane\u003cbr\u003e• Care: Gentle wash 30°C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay be a good fit if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You're looking for a \u003cstrong\u003eblack and white zebra bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct Details at a Glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Gentle wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about the Black and White Zebra Bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs a black and white zebra bikini with a high waist suitable for a Lake Constance holiday?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes, the cut design and the timeless black and white pattern are well suited for relaxed days at the lake or beach. The elastane content contributes to a stable fit during normal movement – whether swimming or lounging.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for the zebra bikini if the top and bottom measurements are different?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe top and bottom can be chosen separately in different sizes. Our size calculator will help you with this – enter your height and weight to get an orientation. If in doubt, it may be advisable to choose the larger of the two possible sizes.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I care for the zebra print bikini properly?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eRinse briefly with clear water after wearing, then wash on a gentle cycle at 30°C. Do not tumble dry – this can affect the material and shape. Washing inside out will keep the pattern clear longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs the wire-free zebra print bikini suitable for active sports at the beach and lake?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe bikini is designed for relaxed swimming and beach days – it generally stays in place during normal water movement. For intense water sports or lap swimming, a special sports swimsuit would be a more suitable choice.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eDoes the black and white pattern fade after several days of swimming?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe polyamide-elastane fabric is designed for use in water. To maintain the color intensity for as long as possible, it is recommended to rinse with clear water after wearing and wash on a gentle cycle at 30°C. No manufacturer can guarantee permanently unchanged color – but care plays an important role.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Klare Schwarz-Weiß-Linien des Zebra-Musters an der Wasseroberfläche\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Bikini auf heller Liege am Bodenseeufer – Muster hebt sich ruhig ab\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and stock, for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – information verified in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the black and white zebra bikini could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eZebra Bikini black and white\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€34.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the black and white zebra bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Zebra Bikini schwarz weiß\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/Bild1_814b098c-8ae8-40fa-82cf-4f54c06ac7cd.png?v=1753459637\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"34.95\", \"priceCurrency\": \"EUR\"}, \"additionalProperty\": [{\"@type\": \"PropertyValue\", \"name\": \"Pflegehinweis\", \"value\": \"Feinwäsche 30 °C, nicht im Trockner\"}]}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"White \u0026amp; Black \/ S","offer_id":44528775594252,"sku":null,"price":34.95,"currency_code":"EUR","in_stock":true},{"title":"White \u0026amp; Black \/ M","offer_id":44528775627020,"sku":null,"price":34.95,"currency_code":"EUR","in_stock":true},{"title":"White \u0026amp; Black \/ L","offer_id":44528775659788,"sku":null,"price":34.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/Bild1_814b098c-8ae8-40fa-82cf-4f54c06ac7cd.png?v=1753459637"},{"product_id":"high-waist-angelina-bikini-set","title":"Women's Ethnic Pattern Bikini","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini that stays in place at the beach – all day long?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003eYou might know that calm feeling when a bikini fits without you having to constantly think about it.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eAnd usually, you only notice that throughout the day – when standing up, going into the water, or lying down on your towel.\u003c\/p\u003e\n\n  \u003ch2\u003eWomen's High-Waisted Bikini with Ethnic Pattern – for Beach and Lake\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nHigh waistband for more security – with an ethnic pattern of geometric shapes and subtle golden accents that appears understated without disappearing. Fabric made of 78% polyamide and 22% elastane, pleasantly stretchy and close-fitting.\u003c\/p\u003e\n\n\u003cp\u003eThe pattern is not a loud print. The geometric shapes and mask elements have a calming, almost timeless quality – they evoke textiles designed somewhere far away, yet function perfectly uncomplicatedly on the shores of Lake Constance. The golden accents create contrasts without being conspicuous. For those who appreciate reduced style but don't want purely plain swimwear, this offers a middle ground.\u003c\/p\u003e\n\n\u003cp\u003eOn the shore, on the towel, during a stroll through the market – the ethnic pattern can be easily combined with a linen sarong or a simple wrap skirt without clashing. The color scheme remains neutral enough to suit many skin tones. Those who prefer bold neon prints or very playful designs will probably not find what they are looking for here – this bikini is more aimed at those who like a subtle statement.\u003c\/p\u003e\n\n\u003cp\u003eWhen you first put it on in the morning at the holiday home – the fabric lies smoothly, the high waistband fits without digging in. When you go into the water, the bottom stays put, and the top provides support without restriction. When drying on the sun lounger afterward: no visible stretch marks, no shifted seams.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The high waistband sits similarly when getting out of the water as when lying down – it generally doesn't slip.\u003cbr\u003e• The ethnic pattern looks different in photos by the lake than on screen – calmer, warmer, less dominant.\u003cbr\u003e• If you're looking for swimwear that doesn't have to feel like a fashion statement, you can feel comfortable here.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you want to know which size fits, our size calculator can help.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"XS\", \"waist_min\": 104.1, \"waist_max\": 126.6, \"hip_min\": 81.0, \"hip_max\": 86.0, \"bust_min\": 76.0, \"bust_max\": 81.0, \"height_min\": 27.0, \"height_max\": 37.0}, {\"name\": \"S\", \"waist_min\": 114.6, \"waist_max\": 137.1, \"hip_min\": 86.0, \"hip_max\": 91.0, \"bust_min\": 81.0, \"bust_max\": 86.0, \"height_min\": 29.0, \"height_max\": 39.0}, {\"name\": \"M\", \"waist_min\": 61.0, \"waist_max\": 66.0, \"hip_min\": 91.0, \"hip_max\": 97.0, \"bust_min\": 86.0, \"bust_max\": 91.0, \"height_min\": 33.0, \"height_max\": 43.0}, {\"name\": \"L\", \"waist_min\": 66.0, \"waist_max\": 71.0, \"hip_min\": 97.0, \"hip_max\": 102.0, \"bust_min\": 91.0, \"bust_max\": 97.0, \"height_min\": 37.0, \"height_max\": 47.0}, {\"name\": \"XL\", \"waist_min\": 71.0, \"waist_max\": 76.0, \"hip_min\": 102.0, \"hip_max\": 107.0, \"bust_min\": 97.0, \"bust_max\": 102.0, \"height_min\": 41.0, \"height_max\": 51.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: 78% Polyamide, 22% Elastane\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Delicate wash 30°C, do not tumble dry\u003c\/li\u003e\n\n\u003cli\u003e✔ Design: Ethnic pattern with geometric shapes and golden accents, high waistband\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eWhen the cut and size are right for you, the women's ethnic pattern bikini can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini starts to slip in the water\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eFit and cut – what you only notice on the second day of swimming.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top doesn't stay securely in place when swimming\u003c\/li\u003e\n\n\u003cli\u003eThe waistband digs into your stomach after an hour\u003c\/li\u003e\n\n\u003cli\u003eIt's hard to estimate bikini sizes online\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eSome bikinis fit well when you try them on – and then start to slip in the water. The top shifts when diving, the bottom needs adjusting after every jump. This is barely noticeable on the beach. In the water, it is.\u003c\/p\u003e\n\n\u003cp\u003eThis is often because the cut and material composition are not designed for movement in the water. The elastane content, seam construction, and waistband shape determine how a bikini reacts to movement – not just how it looks.\u003c\/p\u003e\n\n\u003cp\u003eThis bikini is designed with a high waistband and 22% elastane for a more stable fit during movement – for the beach, lake, and calmer swimming. If you engage in intensive water sports or plan very active swimming, functional sports swimwear might be a better choice. For relaxed days at the lake or beach, this cut can be a suitable option.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDo you prefer a bikini primarily designed for relaxed swimming days – or are you looking for something that can handle more intense movement?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you assess the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eIf you are unsure, you can choose the top and bottom separately in different sizes.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Sits similarly when getting out of the water as when lying down\u003c\/li\u003e\n\n\u003cli\u003e→ Ethnic pattern appears calmer and warmer on the beach than on screen\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you make a decision\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ High waistband – designed for a more stable fit during normal movement\u003c\/li\u003e\n\n\u003cli\u003e✅ Ethnic pattern with golden accents – calm, not conspicuous\u003c\/li\u003e\n\n\u003cli\u003e✅ 78% Polyamide, 22% Elastane – stretchy and close-fitting\u003c\/li\u003e\n\n\u003cli\u003e✅ Top and bottom can be chosen separately – individual size adjustment possible\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Less suitable for intensive water sports or competitive swimming\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Not ideal if bold or playful prints are preferred\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Not a classic plain look – for those seeking a clear, solid design\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Women's Ethnic Pattern Bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming\u003c\/td\u003e\n\n\u003ctd\u003eCut designed for a more stable fit during normal movement in the water\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eWaistband digs in or rolls down\u003c\/td\u003e\n\n\u003ctd\u003eHigh waistband with elastane content – generally stays put under normal use\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eOnline bikini sizes are hard to estimate\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator available, top and bottom can be chosen separately\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePattern looks louder in real life than expected\u003c\/td\u003e\n\n\u003ctd\u003eEthnic pattern in a subtle color spectrum – discreet, not a dominant print\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe have considered precisely these situations with the women's ethnic pattern bikini – so you have to adjust it less often when wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the Women's Ethnic Pattern Bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang to dry, done. Delicate wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 78% Polyamide, 22% Elastane\u003cbr\u003e• Care: Delicate wash 30°C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay fit well if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003ewomen's ethnic pattern bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct details at a glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Delicate wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about Women's Ethnic Pattern Bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for a women's high-waisted bikini with an ethnic pattern?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eSince the top and bottom can be chosen separately, the size can be individually adjusted. Our size calculator helps you estimate based on your height and weight. If unsure, we recommend choosing one size larger – especially for the high-waisted bottom.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the high waistband fit when moving in the water?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe high waistband is designed for a more stable fit during normal movement – it generally stays put when walking, lying down, and swimming calmly. This cut is less suitable for intensive water sports or competitive swimming.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for this bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water, then wash at 30°C on a delicate cycle. Do not tumble dry – this can permanently impair the elasticity of the elastane content.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do the golden accents in the ethnic pattern look in the sun?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe golden accents are subtly incorporated and emphasize the geometric shapes of the pattern without being dominant. In direct sunlight, the pattern may appear somewhat warmer and more contrasting than in product images.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWho is this bikini less suitable for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThose who prefer bold neon prints or very playful patterns will not find what they are looking for here. This bikini is also not designed for intensive water sports or competitive swimming – for these activities, cuts from functional sports swimwear are recommended.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Geometrische Formen des Musters im Sonnenlicht am Wasser\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Hoher Hüftbund von vorne – Sitz und Schnitt erkennbar\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and stock, for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information checked in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the women's ethnic pattern bikini can be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eWomen's Ethnic Pattern Bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€28.99\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the women's ethnic pattern bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Bikini ethnisches Muster Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/1619849020834.jpg?v=1753458249\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"28.99\", \"priceCurrency\": \"EUR\"}, \"additionalProperty\": [{\"@type\": \"PropertyValue\", \"name\": \"Pflegehinweis\", \"value\": \"Feinwäsche 30 °C, nicht im Trockner\"}]}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Blue S","offer_id":45166027079948,"sku":"CJNSSYTZ00271-Blue S","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Blue M","offer_id":45166027047180,"sku":"CJNSSYTZ00271-Blue M","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Blue L","offer_id":45166027014412,"sku":"CJNSSYTZ00271-Blue L","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Blue XL","offer_id":45166027112716,"sku":"CJNSSYTZ00271-Blue XL","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Green S","offer_id":45166027211020,"sku":"CJNSSYTZ00271-Green S","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Green M","offer_id":45166027178252,"sku":"CJNSSYTZ00271-Green M","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Green L","offer_id":45166027145484,"sku":"CJNSSYTZ00271-Green L","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Green XL","offer_id":45166027243788,"sku":"CJNSSYTZ00271-Green XL","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Purple S","offer_id":45166027342092,"sku":"CJNSSYTZ00271-Purple S","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Purple M","offer_id":45166027309324,"sku":"CJNSSYTZ00271-Purple M","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Purple L","offer_id":45166027276556,"sku":"CJNSSYTZ00271-Purple L","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Purple XL","offer_id":45166027374860,"sku":"CJNSSYTZ00271-Purple XL","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Red S","offer_id":45166027473164,"sku":"CJNSSYTZ00271-Red S","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Red M","offer_id":45166027440396,"sku":"CJNSSYTZ00271-Red M","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Red L","offer_id":45166027407628,"sku":"CJNSSYTZ00271-Red L","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Red XL","offer_id":45166027505932,"sku":"CJNSSYTZ00271-Red XL","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Pink S","offer_id":45166027604236,"sku":"CJNSSYTZ00271-Rose Red S","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Pink M","offer_id":45166027571468,"sku":"CJNSSYTZ00271-Rose Red M","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Pink L","offer_id":45166027538700,"sku":"CJNSSYTZ00271-Rose Red L","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Pink XL","offer_id":45166027637004,"sku":"CJNSSYTZ00271-Rose Red XL","price":28.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/1619849020834.jpg?v=1753458249"},{"product_id":"bikini-patchwork","title":"black and white colorblock bikini","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini that fits just as well by Lake Constance as it does after an hour in the water?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003eYou might know that calm feeling when a bikini just stays put – no constant adjusting, no second-guessing.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eAnd it's precisely over the course of a day at the beach that you notice the difference – not when you first put it on, but when you get out of the water.\u003c\/p\u003e\n\n  \u003ch2\u003eColorblock Bikini for Women – Black and White for Lake, Beach, and Pool\u003c\/h2\u003e\n\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nClean color blocks in black and white – a minimalist design that eschews patterns and stands out precisely because of it. The fabric, made from 78% polyamide and 22% elastane, fits snugly without constricting – whether dry or wet.\u003c\/p\u003e\n\n\n\u003cp\u003eThe black and white color block isn't a seasonal trend. It's an attitude: clear, calm, without needing to persuade. On the shores of Lake Constance, where the light glides over the water and the mood is more tranquil than loud, such a design simply fits – it doesn't compete with its surroundings; it carves out space without demanding it. The contrast between black and white appears sharp and pleasantly striking in the sunlight.\u003c\/p\u003e\n\n\n\u003cp\u003eWhether sitting on a pier, walking on sand, or stepping into the cool water – the design remains true to itself. No surprises. The clear line between the colors is positioned to structure the body without emphasizing or hiding it. For those who appreciate subtle patterns and generally steer clear of graphic prints, this offers a consistent alternative. The color combination pairs equally well with a white linen wrap or a black beach bag – it doesn't need accessorizing, but it can handle it.\u003c\/p\u003e\n\n\n\u003cp\u003eThis colorblock bikini for women is suitable for a long day at the lake, as well as for a resort pool or a beach excursion – anywhere you don't want to overthink things but still want to be well-dressed. It's not a statement piece, but it's not an average piece either. It's what you wear when you've already made up your mind.\u003c\/p\u003e\n\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The first glance in the mirror: clear, calm, without distraction – the design needs nothing extra.\u003cbr\u003e• Standing up in the water and realizing nothing has shifted – fabric and cut stay where they should.\u003cbr\u003e• In the evening, when you throw on a wrap: black and white just go with it, without planning.\u003c\/p\u003e\n\n\n\u003cp\u003e\u003cstrong\u003eIf you like, choose your size above – top and bottom can be selected separately.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"hip_min\": 86.0, \"hip_max\": 91.0, \"height_min\": 32.0, \"height_max\": 34.0}, {\"name\": \"M\", \"hip_min\": 91.0, \"hip_max\": 96.0, \"height_min\": 34.0, \"height_max\": 36.0}, {\"name\": \"L\", \"hip_min\": 96.0, \"hip_max\": 101.0, \"height_min\": 36.0, \"height_max\": 38.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: 78% Polyamide, 22% Elastane\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Delicate wash 30 °C, do not tumble dry\u003c\/li\u003e\n\n\u003cli\u003e✔ Top and bottom can be selected separately\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size fit you, a black and white colorblock bikini can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini doesn't stay put in the water\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eA colorblock set designed for a secure fit during movement.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top slips when swimming, and you're constantly adjusting it\u003c\/li\u003e\n\n\u003cli\u003eThe waistband digs in after an hour and feels uncomfortable when wet\u003c\/li\u003e\n\n\u003cli\u003eEstimating bikini sizes online is particularly difficult\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou know the feeling: You dive in, turn around, get out of the water – and your bikini has moved with you, but not in the way you wanted. The top isn't quite right, the waistband has shifted a bit. Nothing dramatic, but it takes away some of the day's peace.\u003c\/p\u003e\n\n\n\u003cp\u003eThis is often due to a combination of cut, material composition, and elasticity. Too little elastane will stretch without returning to its original shape. A waistband designed for standing still will react differently when you bend over or swim. This isn't a question of overall quality, but of specific design.\u003c\/p\u003e\n\n\n\u003cp\u003eWith 22% elastane, this bikini is designed for a fit that generally stays put during normal movement in the water – swimming, diving, getting out. The top and bottom can be chosen separately, which simplifies size adjustment. However, if you plan very intense water sports like surfing or diving, a sport-cut swimsuit with a back zipper might be a more suitable choice.\u003c\/p\u003e\n\n\n\u003cp\u003e\u003cstrong\u003eHow much movement do you plan in the water – rather calm swimming and splashing, or intense activities?\u003c\/strong\u003e\u003c\/p\u003e\n\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – simply enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n\u003cp\u003eChoose your top and bottom in your size above – separately, without being forced into a set.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay special attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Stays put even after an hour in the water\u003c\/li\u003e\n\n\u003cli\u003e→ Clean design that can be combined with many things\u003c\/li\u003e\n\n\u003cli\u003e→ Top and bottom separate – finally the right size for both pieces\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Clear black and white design – timelessly combinable, no seasonal patterns\u003c\/li\u003e\n\n\u003cli\u003e✅ 78% polyamide, 22% elastane – designed for freedom of movement under normal conditions\u003c\/li\u003e\n\n\u003cli\u003e✅ Top and bottom can be selected separately – individual size adjustment possible\u003c\/li\u003e\n\n\u003cli\u003e✅ Delicate wash 30 °C – easy to care for with proper handling\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ For intense water sports (e.g., surfing, diving), a sports swimsuit with a back zipper is generally more suitable\u003c\/li\u003e\n\n\u003cli\u003e⚠️ If you prefer colorful patterns or floral prints, you won't find a printed design here\u003c\/li\u003e\n\n\u003cli\u003e⚠️ No documented information on chlorine or saltwater resistance – follow care instructions\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical with similar\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Black and white colorblock bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming\u003c\/td\u003e\n\n\u003ctd\u003eDesigned for a stable fit during normal movement in the water – thanks to 22% elastane content\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eBikini sizes difficult to estimate online\u003c\/td\u003e\n\n\u003ctd\u003eTop and bottom can be selected separately – size calculator with height and weight available\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eColors fade after one season\u003c\/td\u003e\n\n\u003ctd\u003ePolyamide-elastane mix – with proper care (delicate wash 30 °C, no tumble dryer) the shape is generally retained\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eWaistband digs in after prolonged wear\u003c\/td\u003e\n\n\u003ctd\u003eElastic waistband can adapt to movement – no rigid band\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've thought about precisely such situations with the black and white colorblock bikini – so you have to adjust less when wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the black and white colorblock bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 78% Polyamide, 22% Elastane\u003cbr\u003e• Care: Delicate wash 30 °C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eCould be a good fit if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You're looking for a \u003cstrong\u003eblack and white colorblock bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being ostentatious\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid mispurchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct details at a glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Delicate wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently asked questions about the black and white colorblock bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for the black and white colorblock bikini for women?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eSince bikini tops and bottoms can have different fits, we recommend choosing both pieces separately. Our size calculator will help you with this – simply enter your height and weight. If you are uncertain between two sizes, it may be useful to decide the top based on bust measurement and the bottom based on hip measurement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the waistband of this bikini fit when moving in the water?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe fabric contains 22% elastane, which can help the top and bottom stay put during normal movement – swimming, diving, getting out. For very intense water sports, a sport-cut swimsuit is generally the more suitable choice.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for this bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water, then wash at 30 °C on a delicate cycle. Do not tumble dry – drying flat in the air will preserve its shape and material longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs this bikini also suitable for women with small busts?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eSince the top and bottom can be selected separately, the bikini can be individually adjusted. You can find which top cut best suits which bust size in our bikini size guide.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat distinguishes this simple black and white bikini from other models?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe black and white colorblock design is timeless and season-neutral. The 22% elastane content is designed for a movement-friendly fit. The special feature: top and bottom can be ordered separately – this allows for a more precise size selection than with a set.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Clear horizontal or vertical colorblock line between black and white in the sunlight on the shore of Lake Constance\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Wearer gets out of the water – bikini still fits exactly as when getting in\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce to order – this reduces overproduction and inventory for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information checked according to EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you find yourself in the scenarios above, the black and white colorblock bikini could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eBlack and white colorblock bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€29.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the black and white colorblock bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20\/05\/2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"schwarz weißer Colorblock Bikini\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/6ad065fe-158e-46ec-9fe5-3cdd4c01bd87.jpg?v=1753456471\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"29.95\", \"priceCurrency\": \"EUR\"}, \"additionalProperty\": [{\"@type\": \"PropertyValue\", \"name\": \"Pflegehinweis\", \"value\": \"Feinwäsche 30 °C, nicht im Trockner\"}]}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Ebony black \/ L","offer_id":45166067056908,"sku":"CJBJ144124025YB","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Ebony black \/ M","offer_id":45166067089676,"sku":"CJBJ144124026ZA","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Ebony black \/ S","offer_id":45166067122444,"sku":"CJBJ144124027AZ","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Sky blue \/ L","offer_id":45166067155212,"sku":"CJBJ144124007GT","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Sky blue \/ M","offer_id":45166067187980,"sku":"CJBJ144124006FU","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Sky blue \/ S","offer_id":45166067220748,"sku":"CJBJ144124005EV","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Coffee brown \/ L","offer_id":45166067253516,"sku":"CJBJ144124003CX","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Coffee brown \/ M","offer_id":45166067286284,"sku":"CJBJ144124002BY","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Coffee brown \/ S","offer_id":45166067319052,"sku":"CJBJ144124001AZ","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Navy blue \/ L","offer_id":45166067351820,"sku":"CJBJ144124029CX","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Navy blue \/ M","offer_id":45166067384588,"sku":"CJBJ144124030DW","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Navy blue \/ S","offer_id":45166067417356,"sku":"CJBJ144124031EV","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Lagoon Green \/ L","offer_id":45166067450124,"sku":"CJBJ144124021UF","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Lagoon Green \/ M","offer_id":45166067482892,"sku":"CJBJ144124022VE","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Lagoon Green \/ S","offer_id":45166067515660,"sku":"CJBJ144124023WD","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Grass green \/ L","offer_id":45166067548428,"sku":"CJBJ144124015OL","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Grass green \/ M","offer_id":45166067581196,"sku":"CJBJ144124014NM","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Grass green \/ S","offer_id":45166067613964,"sku":"CJBJ144124013MN","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Mahogany color \/ L","offer_id":45166067646732,"sku":"CJBJ144124017QJ","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Mahogany color \/ M","offer_id":45166067679500,"sku":"CJBJ144124018RI","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Mahogany color \/ S","offer_id":45166067712268,"sku":"CJBJ144124019SH","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Rose red \/ L","offer_id":45166067745036,"sku":"CJBJ144124011KP","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Rose red \/ M","offer_id":45166067777804,"sku":"CJBJ144124010JQ","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Rose red \/ S","offer_id":45166067810572,"sku":"CJBJ144124009IR","price":29.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/6ad065fe-158e-46ec-9fe5-3cdd4c01bd87.jpg?v=1753456471"},{"product_id":"bikini-damen-flora-hoher-huftbund","title":"Women's Tropical Print Bikini","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini stay put even after a long day at the beach?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003eYou might know that relaxed feeling when a bikini just goes with the flow – while swimming, sitting down, or walking along the shore.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eMany don't notice the difference immediately, but only later in the day – when nothing needs to be adjusted.\u003c\/p\u003e\n\n  \u003ch2\u003eTropical Print Bikini for Women with High Waist – for Beach and Lake\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nHigh waist for a more secure fit during movement – tropical leaf and flower pattern that looks subtly summery without being intrusive.\u003c\/p\u003e\n\n\u003cp\u003eThe pattern features leaves and flowers in calm tones – like those seen on the shore of a serene lake when light and shadow fall through the greenery. The print is present yet understated: not a loud vacation motif, but a tranquil image that still looks harmonious even after many hours by the water.\u003c\/p\u003e\n\n\u003cp\u003eOn the beach, when first entering the water, the pattern appears different in the light than it does in the changing room. The blossoms and leaves look soft and organic – not a geometric pattern that appears outdated after just a few weeks. The high waistband creates a clear line that structures the look without dominating it. If you combine the bikini with a light linen shirt, you can also wear it from the water to the beach cafe without changing.\u003c\/p\u003e\n\n\u003cp\u003eAs a companion for relaxed days by the lake, for vacation weeks by the sea, or for a spontaneous swim after work – this tropical print bikini for women is designed for situations where you don't want to constantly think about your bikini. It also works well as a gift: the pattern is personal enough not to seem generic, and open enough to suit many tastes.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• You sit on your towel, stand up, go into the water – and the waistband stays where it was.\u003cbr\u003e• The pattern looks different in the morning by the pool than in the afternoon against the light – both times tranquil.\u003cbr\u003e• Someone asks if the bikini is new – even though you've been wearing it all week.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you like, select your size above – S, M, L, or XL are available.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"hip_min\": 90.0, \"hip_max\": 96.0}, {\"name\": \"M\", \"hip_min\": 96.0, \"hip_max\": 102.0}, {\"name\": \"L\", \"hip_min\": 102.0, \"hip_max\": 108.0}, {\"name\": \"XL\", \"hip_min\": 108.0, \"hip_max\": 114.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Cut: Bikini set with high waist\u003c\/li\u003e\n\n\u003cli\u003e✔ Pattern: Tropical leaf and flower pattern\u003c\/li\u003e\n\n\u003cli\u003e✔ Available sizes: S, M, L, XL\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, a tropical print bikini for women can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen fit and comfort in the water are not a given\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eHigh waist, tropical pattern – designed for days when you just want to be present.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eWaistband digs in uncomfortably after a short time\u003c\/li\u003e\n\n\u003cli\u003eTop slips while swimming or moving\u003c\/li\u003e\n\n\u003cli\u003eSize is difficult to estimate online\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou lie by the lake, stand up, go into the water – and only then realize that the waistband is digging in or the top no longer fits. This is not an exception, but something many people know: bikinis that look good in the changing room but require more attention than desired in everyday use by the water.\u003c\/p\u003e\n\n\u003cp\u003eMost of the time, it's due to the cut: a waistband designed for standing still reacts differently to movement. A top that is not adapted to the body will shift with every movement. This is not solely a question of quality, but of the fit in that specific moment.\u003c\/p\u003e\n\n\u003cp\u003eThis bikini is designed for a stable fit during normal movement – i.e., walking, sitting, calm swimming. The high waist can help the bottom stay put, even when moving. It is not designed for intense water sports or competitive swimming – if you're looking for that, a sports swimsuit is probably a better choice. If you like subtle swimwear for relaxed days at the lake or beach, this cut might be suitable.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDoes the high waistband suit your body shape and your way of spending the day by the water?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eAvailable sizes: S, M, L, XL – top and bottom can be chosen separately if needed.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay special attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Stays put calmly after a long day at the beach – no adjusting\u003c\/li\u003e\n\n\u003cli\u003e→ Pattern looks especially beautiful in the backlight by the water\u003c\/li\u003e\n\n\u003cli\u003e→ High waistband generally stays in place while swimming\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ High waist – designed for a more secure fit during movement\u003c\/li\u003e\n\n\u003cli\u003e✅ Subtle tropical pattern – summery without being intrusive\u003c\/li\u003e\n\n\u003cli\u003e✅ Top and bottom can be selected separately in S, M, L, XL\u003c\/li\u003e\n\n\u003cli\u003e✅ Designed for relaxed days at the lake, pool, or beach\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not designed for competitive swimming or intense water sports\u003c\/li\u003e\n\n\u003cli\u003e⚠️ If you are looking for very sporty swimwear, a sports swimsuit is a better choice\u003c\/li\u003e\n\n\u003cli\u003e⚠️ If you prefer clear, patterned styles, you might find the pattern too subtle\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical of similar\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ tropical print bikini for women\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips while swimming and constantly needs adjusting\u003c\/td\u003e\n\n\u003ctd\u003eDesigned for a stable fit during normal movement in the water\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eWaistband digs in after a short time or shifts with movement\u003c\/td\u003e\n\n\u003ctd\u003eHigh waist for a more secure fit – even when walking and sitting down\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eOnline sizing for bikinis is difficult to estimate\u003c\/td\u003e\n\n\u003ctd\u003eTop and bottom can be selected separately, size calculator available with height and weight\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePattern looks outdated after one season\u003c\/td\u003e\n\n\u003ctd\u003eCalm leaf-flower motif – subtle enough for several summers\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe considered precisely such situations with the tropical print bikini for women – so you have to adjust it less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the tropical print bikini for women feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: this fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: the fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash 30°C, do not tumble dry – observe care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 30 seconds\u003cbr\u003e• Care: Delicate wash 30 °C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay fit well if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003etropical print bikini for women\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being intrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct details at a glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Delicate wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently asked questions about the tropical print bikini for women\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for a high-waisted bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eOur size calculator helps you estimate a suitable size based on your height and weight. If you are unsure between two sizes, we generally recommend choosing the larger option – especially for the high-waisted bottom. Available sizes are S, M, L, and XL.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the high waist fit while swimming and moving?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe high waist is designed for a more secure fit during normal movement – i.e., walking, sitting, and calm swimming. For very dynamic water activities, the fit may vary. A general guide: for a relaxed day at the lake or pool, it usually stays stable.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat activities is this tropical print bikini for women suitable for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThis bikini is designed for relaxed days at the beach, lake, or pool – i.e., swimming, sunbathing, walking by the water. It is not designed for competitive swimming or intense water sports; a sports swimsuit would be a more suitable choice for that.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for a tropical print bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water, then wash on a delicate cycle at 30 °C. Do not tumble dry – lay flat to air dry. This will help maintain its shape and pattern longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan I choose the top and bottom in different sizes?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes, the top and bottom can be chosen separately in sizes S, M, L, and XL. This can be useful if your upper and lower body have different sizes. The size calculator provides a guide for both pieces.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs the bikini's pattern timeless or very trend-dependent?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe tropical leaf and flower pattern is deliberately kept calm – no bright colors or strongly trend-dependent graphics. It is designed to look harmonious for summers to come, if you prefer subtle swimwear.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Tropical leaf and flower pattern in the sunlight by the water\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"High waistband that stays put when standing up from the towel\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce to order – this reduces overproduction and inventory for printed items!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified according to EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the tropical print bikini for women might be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eTropical Print Bikini for Women\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€34.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect Size \u0026amp; Order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the tropical print bikini for women can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"tropischer Print Bikini Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/2496416977496.jpg?v=1771873495\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"34.95\", \"priceCurrency\": \"EUR\"}, \"additionalProperty\": [{\"@type\": \"PropertyValue\", \"name\": \"Pflegehinweis\", \"value\": \"Feinwäsche 30 °C, nicht im Trockner\"}]}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Green palm \/ L","offer_id":45166089863436,"sku":"CJYDYYBJ00564-Green pattern-L","price":34.95,"currency_code":"EUR","in_stock":true},{"title":"Green palm \/ M","offer_id":45166089896204,"sku":"CJYDYYBJ00564-Green pattern-M","price":34.95,"currency_code":"EUR","in_stock":true},{"title":"Green palm \/ S","offer_id":45166089928972,"sku":"CJYDYYBJ00564-Green pattern-S","price":34.95,"currency_code":"EUR","in_stock":true},{"title":"Green palm \/ XL","offer_id":45166089961740,"sku":"CJYDYYBJ00564-Green pattern-XL","price":34.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/2496416977496.jpg?v=1771873495"},{"product_id":"bikini-hot-style","title":"Black Bikini Neon","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a black bikini that stays put at the beach – and also stays secure while swimming?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that feeling when a bikini just goes with the flow – no pulling, no adjusting, just water and summer.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eAnd that's where many notice the difference – not when putting it on, but when the day at the lake lasts longer than planned.\u003c\/p\u003e\n\n  \u003ch2\u003eBlack Bikini with Neon Details – for Beach, Pool, and Summer Days by the Water\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat the Black Bikini Neon is made for:\u003c\/strong\u003e\u003cbr\u003e\nA bikini in deep black with targeted neon accents – the silhouette remains calm, the details provide a clear counterpoint. Fabric made of 78% polyamide and 22% elastane, designed for movement in water.\u003c\/p\u003e\n\n\u003cp\u003eBlack is not a compromise, but a statement. This black bikini works with the tension between a subtle base tone and vibrant neon details – a contrast that works just as well on the shores of Lake Constance as by the pool on vacation. The neon accents are not an exclamation mark; they are a quiet eye-catcher: present without being loud.\u003c\/p\u003e\n\n\u003cp\u003eWhen you go to the water in the morning and the light still lies flat across the surface, the neon briefly lands – soft, not glaring. In the afternoon on the jetty, when others pass by in colorful prints, the black appears calm and clear. The bikini can be combined with a simple linen overshirt, dark shorts, or a light pareo – without any piece fighting for too much attention.\u003c\/p\u003e\n\n\u003cp\u003eFor a day at the lake, for the pool while traveling, for a beach holiday where you swim in the morning and grab coffee at the kiosk at noon – this black bikini with neon details is designed for exactly these changing moments, without having to explain itself anew for each one.\u003c\/p\u003e\n\n\u003ch3\u003eWhat you'll notice\u003c\/h3\u003e\n\n\u003cp\u003e• The black remains deep – no fading after the first swim, with normal care\u003cbr\u003e• The neon details stand out without dominating the overall look\u003cbr\u003e• The fabric gives way – when getting up from the towel, when entering the water, when sitting down on the jetty\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eTake a close look at the product images – the cut and neon gradient are best seen there.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g., 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g., 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g., 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"hip_min\": 86.0, \"hip_max\": 91.0, \"height_min\": 32.0, \"height_max\": 34.0}, {\"name\": \"M\", \"hip_min\": 91.0, \"hip_max\": 96.0, \"height_min\": 34.0, \"height_max\": 36.0}, {\"name\": \"L\", \"hip_min\": 96.0, \"hip_max\": 101.0, \"height_min\": 36.0, \"height_max\": 38.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: 78% Polyamide, 22% Elastane\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Delicate wash 30 °C, do not tumble dry\u003c\/li\u003e\n\n\u003cli\u003e✔ Design: Black with neon details, solid base color\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size fit you, the Black Bikini Neon can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini doesn't cooperate when moving in the water\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003ePolyamide-elastane blend – designed for movement, beach, and ease of care.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe bikini slips when swimming and constantly needs adjusting\u003c\/li\u003e\n\n\u003cli\u003eThe material feels stiff or uncomfortable after bathing\u003c\/li\u003e\n\n\u003cli\u003eThe shape loses its integrity after just a few washes\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou go into the water – and shortly thereafter, the top's fit is no longer where it should be. This happens when a bikini is primarily made for looks, but not for the moments when you are actually moving. At the shores of Lake Constance, when pushing off the jetty, when turning on the sun lounger – these are the real moments when cut and material show what they can do.\u003c\/p\u003e\n\n\u003cp\u003eThe reason is often the elastane content: too low, and the fabric doesn't follow movement. Too stiff, and it doesn't return after stretching. The polyamide-elastane blend of this bikini is designed for an elastic feel – the fabric can adapt and returns to its shape under normal strain. This is not a promise, but a guide for everyday life by the water.\u003c\/p\u003e\n\n\u003cp\u003eIf you are looking for a bikini that primarily has a shaping or strong structuring effect, this cut may not be the right choice – it focuses more on mobility than control. But if you like a simple black bikini with neon accents that moves with you without drawing too much attention, this approach might be suitable.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eImagine wearing it for an entire summer day – swimming, lying down, a quick trip to the nearby bar: Does that sound like the right rhythm for you?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you assess the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eIf you like, check the size chart – for bikinis, it's worth checking the top and bottom separately.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany particularly appreciate\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Worn for swimming and sunbathing at the lake\u003c\/li\u003e\n\n\u003cli\u003e→ Combined with a light linen overshirt for the walk from the water to the café\u003c\/li\u003e\n\n\u003cli\u003e→ Suitable for vacations at the beach, pool, and travel without additional coordination\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Elastic polyamide-elastane blend – designed for movement in water\u003c\/li\u003e\n\n\u003cli\u003e✅ Subtle black with neon accents – versatile and clear in appearance\u003c\/li\u003e\n\n\u003cli\u003e✅ Delicate wash 30 °C – uncomplicated everyday care\u003c\/li\u003e\n\n\u003cli\u003e✅ No motif, no pattern – the neon details provide the only accent\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not ideal if you prefer strongly shaping or structuring material\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Not ideal for people who only want machine washing at higher temperatures\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Not ideal if you prefer very thick or firm fabrics for swimwear\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical with similar ones\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Black Bikini Neon\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eDoesn't sit securely when swimming, needs constant adjusting\u003c\/td\u003e\n\n\u003ctd\u003e22% elastane can support a more flexible fit during movement – under normal strain\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eFabric feels stiff or sticky after bathing\u003c\/td\u003e\n\n\u003ctd\u003eThe polyamide-elastane blend is designed for a lighter, elastic feel\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eColor and shape noticeably degrade after a few washes\u003c\/td\u003e\n\n\u003ctd\u003eDelicate wash 30 °C without tumble drying can help preserve shape and color longer\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eColorful prints often look restless or dated at the beach\u003c\/td\u003e\n\n\u003ctd\u003eBlack base with neon details remains calm and can be combined across seasons\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe considered exactly these situations with the Black Bikini Neon – so you have to adjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the Black Bikini Neon feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 78% Polyamide, 22% Elastane\u003cbr\u003e• Care: Delicate wash 30 °C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay fit well if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003eBlack Bikini Neon\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct details at a glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Delicate wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently asked questions about the Black Bikini Neon\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat makes a simple black bikini with neon details special?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe contrast of deep black and vibrant neon accents keeps the design calm yet present. The color combination can be paired with light cover-ups, pareos, or dark shorts without any single piece drawing too much attention.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the bikini fit when moving in the water?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe 22% elastane content is designed to accommodate movements like swimming, standing up, and sitting down. Under normal strain, the fabric typically returns to its original shape. A secure fit also depends on the chosen size – if in doubt, it's worth checking the size chart.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for a bikini made of polyamide and elastane?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water, then delicate wash at 30 °C. Do not tumble dry – heat can affect elastane long-term. Gentle treatment can help maintain shape and color longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eFor what situations is this women's neon bikini suitable?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eIt is designed as swimwear for the beach, pool, and lake – that is, for situations where you are moving, swimming, or simply spending the day by the water. It is not designed for strong shaping wear or shapewear functions.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eDoes the black bikini lose its shape after several washes?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThat depends on care practices and wear. Delicate wash at 30 °C and no tumble drying are the key factors. The polyamide-elastane blend is designed for an elastic feel – with gentle care, the basic structure generally remains intact.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for this bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eFor bikinis, it's worth checking the top and bottom separately, as the fit can vary depending on body shape. Our size calculator helps you with this – enter your height and weight to get an initial estimate.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/die-perfekte-bademode-finden\"\u003eFinding the perfect swimwear\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-damen-finden-sie-den-perfekten-badeanzug-fur-den-sommer-2024\"\u003eSwimsuits for women: Find the perfect swimsuit for summer 2024\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/bikini-damen\/wie-man-den-perfekten-bikini-fur-seine-korperform-findet\"\u003eHow to find the perfect bikini for your body shape\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Neon accents in sunlight by the water – high contrast, but not overwhelming\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Black silhouette on bright sand or jetty – clear contour\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce to order – this reduces overproduction and excess stock for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without print. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified according to EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the Black Bikini Neon might be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eBlack Bikini Neon\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€25.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without print. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the Black Bikini Neon can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Schwarzer Bikini Neon\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/db0d8dde-d2d0-475d-9708-07034100bf3e.jpg?v=1753453410\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"25.95\", \"priceCurrency\": \"EUR\"}, \"additionalProperty\": [{\"@type\": \"PropertyValue\", \"name\": \"Pflegehinweis\", \"value\": \"Feinwäsche 30 °C, nicht im Trockner\"}]}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Ebony black \/ L","offer_id":45166096449804,"sku":"CJBJ120882206FU","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Ebony black \/ M","offer_id":45166096482572,"sku":"CJBJ120882205EV","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Ebony black \/ S","offer_id":45166096515340,"sku":"CJBJ120882204DW","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Navy blue \/ L","offer_id":45166096548108,"sku":"CJBJ120882209IR","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Navy blue \/ M","offer_id":45166096580876,"sku":"CJBJ120882208HS","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Navy blue \/ S","offer_id":45166096613644,"sku":"CJBJ120882207GT","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Tulip pink \/ L","offer_id":45166096646412,"sku":"CJBJ120882203CX","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Tulip pink \/ M","offer_id":45166096679180,"sku":"CJBJ120882202BY","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Tulip pink \/ S","offer_id":45166096711948,"sku":"CJBJ120882201AZ","price":25.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/db0d8dde-d2d0-475d-9708-07034100bf3e.jpg?v=1753453410"},{"product_id":"bikini-damen-triangel-print","title":"Bikini Women Palm Leaves","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini stay put even after a long day at the beach?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that feeling when a bikini simply stays in place – without constant adjustment.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eThroughout a day at the lake or beach, you often only realize if a bikini truly fits you – when getting up, going into the water, sitting down in the sand.\u003c\/p\u003e\n\n  \u003ch2\u003eTriangle Bikini for Women with Palm Leaf Print – for Beach, Lake, and Summer Holidays\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nTriangle cut with tie straps – adaptable to different proportions, tropical palm leaf print in green on black, tassel details on the ties, fabric with pleasant wearing comfort even when wet.\u003c\/p\u003e\n\n\u003cp\u003eThe starting point of this bikini is a motif you'd expect to see in a southern bay rather than a shop window: large, clear palm leaves in lush green on deep black. This creates a print that stands out at first glance – without being loud. If you walk along the shore of Lake Constance or unfold your deckchair, you're wearing a design that spells summer differently: calm, botanical, with a hint of wanderlust.\u003c\/p\u003e\n\n\u003cp\u003eThe tassels on the tie straps are the detail that makes all the difference. They move when you walk, when you get out of the water, or when you grab your towel – a small, casual signal. The green of the leaves is rich enough to glow on a black background, but not so garish that it looks tired after one season. For those who like muted colors and clear motifs, this print might offer a combination that lasts beyond one season. If you prefer solid colors, this bikini is probably not for you.\u003c\/p\u003e\n\n\u003cp\u003eOn the pier in the morning, when the light is still slanted and the water glimmers – that's when this print unfolds its magic. Or in the afternoon at the lake, towel spread out, book to the side, a quick dip and back onto the mat. The bikini also works as a travel companion that you recognize when packing and look forward to.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The print looks different on the body than on the screen – the green of the palm leaves on black has a certain depth that you only see when wearing it.\u003cbr\u003e• The tassels move – this is a visible, small detail that distinguishes the bikini from a simple triangle.\u003cbr\u003e• The cut can be adapted to different proportions thanks to the tie straps – this can help if you often find yourself between sizes with bikinis.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you're looking for a size: Our size calculator helps you find the right starting point.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"waist_min\": 114.6, \"waist_max\": 137.1, \"hip_min\": 86.0, \"hip_max\": 91.0, \"bust_min\": 81.0, \"bust_max\": 86.0, \"height_min\": 34.0, \"height_max\": 36.0}, {\"name\": \"M\", \"waist_min\": 61.0, \"waist_max\": 66.0, \"hip_min\": 91.0, \"hip_max\": 97.0, \"bust_min\": 86.0, \"bust_max\": 91.0, \"height_min\": 38.0, \"height_max\": 40.0}, {\"name\": \"L\", \"waist_min\": 66.0, \"waist_max\": 71.0, \"hip_min\": 97.0, \"hip_max\": 102.0, \"bust_min\": 91.0, \"bust_max\": 97.0, \"height_min\": 42.0, \"height_max\": 44.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: 78% Polyamide, 22% Elastane\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Delicate wash 30°C, do not tumble dry\u003c\/li\u003e\n\n\u003cli\u003e✔ Cut: Triangle top with tie straps, tassel details\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, the women's palm leaf bikini can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini becomes restless during the day\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eFit, movement, and material – what can play a role in a triangle bikini.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top slips when swimming\u003c\/li\u003e\n\n\u003cli\u003eThe band digs in after a while\u003c\/li\u003e\n\n\u003cli\u003eIt's hard to estimate the size online\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eSome bikinis fit well in the changing room – and then start shifting the first time you go into the water. The top rotates slightly, the bottom slips when you sit down on the towel. This isn't an isolated phenomenon, but something many wearers of triangle bikinis know.\u003c\/p\u003e\n\n\u003cp\u003ePart of this has to do with the fit: triangle bikini tops sit very differently on different breast shapes. The ties at the shoulder and neck make a difference – too loose, and it slips; too tight, and it digs in. The ratio between top and bottom size is also often not identical for many women, which can be a real problem with bikinis that are only available as a set.\u003c\/p\u003e\n\n\u003cp\u003eThis women's triangle bikini is designed for an adaptable fit: the straps can be tied individually, and the top and bottom can be chosen separately. This can help the bikini sit more securely during normal movement – walking, swimming, sitting down. A guideline, not a promise. Those who engage in intense water sports or need a lot of support when swimming are usually better off with a sports swimsuit – this bikini is not designed for that.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eHow much support and adaptability do you need – more for quiet beach days or also for active sessions in the water?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eChoose top and bottom separately, compare sizes – and if in doubt, use the return option.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Stays in place even after a long day at the beach\u003c\/li\u003e\n\n\u003cli\u003e→ Top usually stays where it was tied when swimming\u003c\/li\u003e\n\n\u003cli\u003e→ The green of the print appears deeper on the body than on the screen\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you make a decision\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Triangle cut with adjustable straps – can sit securely during normal movement\u003c\/li\u003e\n\n\u003cli\u003e✅ Top and bottom can be chosen separately – useful if sizes differ\u003c\/li\u003e\n\n\u003cli\u003e✅ Tropical palm leaf print in green on black with tassels – visible detail without a loud look\u003c\/li\u003e\n\n\u003cli\u003e✅ 78% Polyamide, 22% Elastane – comfortable on the body, even when wet\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not designed for intense water sports or competitive swimming\u003c\/li\u003e\n\n\u003cli\u003e⚠️ For those who prefer solid colors or very subtle patterns, this print is probably not the right one\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Triangle cut offers less support than padded or lined bikini tops\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Women's Palm Leaf Bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming and moving\u003c\/td\u003e\n\n\u003ctd\u003eAdjustable tie straps – can be set for a secure fit during normal movement\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop and bottom only as a set – size rarely fits both\u003c\/td\u003e\n\n\u003ctd\u003eTop and bottom can be chosen separately – each part suitable for your own proportions\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePrint looks faded after one season\u003c\/td\u003e\n\n\u003ctd\u003ePolyamide-Elastane mix is designed for water contact – care according to manufacturer's instructions recommended\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSize difficult to estimate online\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator available with height and weight as a guide\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered exactly such situations with the Women's Palm Leaf Bikini – so you have to adjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the Women's Palm Leaf Bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a secure fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 78% Polyamide, 22% Elastane\u003cbr\u003e• Care: Delicate wash 30°C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMight be a good fit if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003eWomen's Palm Leaf Bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid mispurchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct details at a glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Delicate wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently asked questions about the Women's Palm Leaf Bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs a tropical women's palm leaf triangle bikini with tassels suitable for a Lake Constance holiday?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes, the design – green palm leaves on black with tassels on the ties – is designed for quiet beach days at the lake, beach, or pool. The triangle cut with adjustable ties can be individually adapted. For intense water sports activities, a sporty swimsuit is usually the more suitable choice.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for this women's triangle bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eSince the top and bottom can be chosen separately, you can select both independently according to your measurements. Our size calculator helps you with height and weight as a starting point. If in doubt between two sizes, it can help to choose a smaller size for the top, as the triangle ties offer a lot of room for adjustment.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for this bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water, then wash at 30°C on a delicate cycle. Do not tumble dry – this protects the elastane and the fit. Drying flat is better than hanging to maintain its shape.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eDoes the top stay secure when swimming?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe triangle top is equipped with adjustable tie straps that can be tied tightly enough to generally stay in place during normal swimming movements. For intense water activities or competitive swimming, the fit of a sports swimsuit is more stable – this bikini is not designed for that.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan I order the top and bottom of this palm leaf bikini separately?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes, the top and bottom can be chosen separately. This is particularly practical if your top and bottom sizes are not identical – which is the case for many women.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Green palm leaves on a black background – clear and calm at the same time\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Tassels on the ties that move when walking\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce to order – this reduces overproduction and stock, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information checked in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the Women's Palm Leaf Bikini could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eWomen's Palm Leaf Bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€22.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the Women's Palm Leaf Bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Bikini Damen Palmblätter\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/27954017934.jpg?v=1752911223\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"22.95\", \"priceCurrency\": \"EUR\"}, \"additionalProperty\": [{\"@type\": \"PropertyValue\", \"name\": \"Pflegehinweis\", \"value\": \"Feinwäsche 30 °C, nicht im Trockner\"}]}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Rosa\u0026amp;Balu \/ L","offer_id":45166103658764,"sku":"CJYDYYLJ00199-C05-L","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Rosa\u0026amp;Balu \/ M","offer_id":45166103691532,"sku":"CJYDYYLJ00199-C05-M","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Rosa\u0026amp;Balu \/ S","offer_id":45166103724300,"sku":"CJYDYYLJ00199-C05-S","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Black \u0026amp; Pink \/ L","offer_id":45166103757068,"sku":"CJYDYYLJ00199-K01-L","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Black \u0026amp; Pink \/ M","offer_id":45166103789836,"sku":"CJYDYYLJ00199-K01-M","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Black \u0026amp; Pink \/ S","offer_id":45166103822604,"sku":"CJYDYYLJ00199-K01-S","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Red \u0026amp; Turquoise \/ L","offer_id":45166103855372,"sku":"CJYDYYLJ00199-K04-L","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Red \u0026amp; Turquoise \/ M","offer_id":45166103888140,"sku":"CJYDYYLJ00199-K04-M","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Red \u0026amp; Turquoise \/ S","offer_id":45166103920908,"sku":"CJYDYYLJ00199-K04-S","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Pink \u0026amp; Light Blue \/ L","offer_id":45166103953676,"sku":"CJYDYYLJ00199-K05-L","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Pink \u0026amp; Light Blue \/ M","offer_id":45166103986444,"sku":"CJYDYYLJ00199-K05-M","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Pink \u0026amp; Light Blue \/ S","offer_id":45166104019212,"sku":"CJYDYYLJ00199-K05-S","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Black \u0026amp; Red \/ L","offer_id":45166104051980,"sku":"CJYDYYLJ00199-K07-L","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Black \u0026amp; Red \/ M","offer_id":45166104084748,"sku":"CJYDYYLJ00199-K07-M","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Black \u0026amp; Red \/ S","offer_id":45166104117516,"sku":"CJYDYYLJ00199-K07-S","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Pink \u0026amp; White \/ L","offer_id":45166104150284,"sku":"CJYDYYLJ00199-Pink white-L","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Pink \u0026amp; White \/ M","offer_id":45166104183052,"sku":"CJYDYYLJ00199-Pink white-M","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Pink \u0026amp; White \/ S","offer_id":45166104215820,"sku":"CJYDYYLJ00199-Pink white-S","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Schwarz\u0026amp;Palm \/ L","offer_id":45166104248588,"sku":"CJYDYYLJ00199-Q01-L","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Schwarz\u0026amp;Palm \/ M","offer_id":45166104281356,"sku":"CJYDYYLJ00199-Q01-M","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Schwarz\u0026amp;Palm \/ S","offer_id":45166104314124,"sku":"CJYDYYLJ00199-Q01-S","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Black palm \/ L","offer_id":45166104346892,"sku":"CJYDYYLJ00199-Q02-L","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Black palm \/ M","offer_id":45166104379660,"sku":"CJYDYYLJ00199-Q02-M","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Black palm \/ S","offer_id":45166104412428,"sku":"CJYDYYLJ00199-Q02-S","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"leopard \/ L","offer_id":45166104445196,"sku":"CJYDYYLJ00199-Q03-L","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"leopard \/ M","offer_id":45166104477964,"sku":"CJYDYYLJ00199-Q03-M","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"leopard \/ S","offer_id":45166104510732,"sku":"CJYDYYLJ00199-Q03-S","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Navy blue \/ L","offer_id":45166104543500,"sku":"CJYDYYLJ00199-Q04-L","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Navy blue \/ M","offer_id":45166104576268,"sku":"CJYDYYLJ00199-Q04-M","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Navy blue \/ S","offer_id":45166104609036,"sku":"CJYDYYLJ00199-Q04-S","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Red \u0026amp; Black \/ L","offer_id":45166104641804,"sku":"CJYDYYLJ00199-Red black-L","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Red \u0026amp; Black \/ M","offer_id":45166104674572,"sku":"CJYDYYLJ00199-Red black-M","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Red \u0026amp; Black \/ S","offer_id":45166104707340,"sku":"CJYDYYLJ00199-Red black-S","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Red \u0026amp; White \/ L","offer_id":45166104740108,"sku":"CJYDYYLJ00199-Red white-L","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Red \u0026amp; White \/ M","offer_id":45166104772876,"sku":"CJYDYYLJ00199-Red white-M","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Red \u0026amp; White \/ S","offer_id":45166104805644,"sku":"CJYDYYLJ00199-Red white-S","price":22.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/27954017934.jpg?v=1752911223"},{"product_id":"bikini-coquillage-damen-muschel-design","title":"Women's Shell Bikini","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a shell-design bikini that fits just as well on the beach as it did the first time you put it on?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003eYou might know that feeling when a bikini just fits – without constantly having to think about it.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eAnd usually, you don't notice that when trying it on, but only after a long day by the water.\u003c\/p\u003e\n\n  \u003ch2\u003eShell Bikini for Women with Pink-Blue Gradient – for Beach, Lake, and Summer Days\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nA shell design with a delicate pink-blue gradient – the bikini makes a conscious maritime statement without being obtrusive. The top and bottom are made of 78% polyamide and 22% elastane – a common blend in swimwear that hugs the body and moves with you.\u003c\/p\u003e\n\n\u003cp\u003eThe shell motif with its soft color gradient is reminiscent of those hours when the light falls low over the water and the colors on the shore oscillate between pink and blue. The gradient isn't loud – it feels more like a silent gesture. You put it on in your vacation home in the morning, walk the few steps to the lake, and the pattern already feels harmonious before the day has truly begun.\u003c\/p\u003e\n\n\u003cp\u003eVisually, the bikini sets a clear focus: the shell design dominates, the gradient from pink to blue gives the set a lightness that suits light sands and calm waters. For those who like to throw a sarong or a white beach shirt over it, this color spectrum offers easy coordination. Lounging on the pier, jumping into the water, strolling back to your towel – the pattern remains legible in every situation without dominating.\u003c\/p\u003e\n\n\u003cp\u003eThree moments where this shell bikini for women finds its place: a quiet afternoon on the shores of Lake Constance, a pool day on vacation where you also wear the set for a quick trip to the ice cream stand – or a summer outing with the family, where swimwear and beach outfit blend seamlessly. If you're looking for a clear maritime summer look, this is a great starting point.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• You put it on and the color gradient creates the outfit – without any further effort.\u003cbr\u003e• By the water, you don't look like someone who's just wearing any bikini, but like someone with a clear summer vision in mind.\u003cbr\u003e• When you lay it on your towel, it lies neatly – no fussy motif, no gradient that falls apart.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you like, choose your size using the size calculator – or take another look at the set.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g., 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g., 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g., 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"waist_min\": 68.0, \"waist_max\": 72.0, \"hip_min\": 89.0, \"hip_max\": 93.0}, {\"name\": \"M\", \"waist_min\": 73.0, \"waist_max\": 77.0, \"hip_min\": 94.0, \"hip_max\": 98.0}, {\"name\": \"L\", \"waist_min\": 78.0, \"waist_max\": 82.0, \"hip_min\": 99.0, \"hip_max\": 103.0}, {\"name\": \"XL\", \"waist_min\": 83.0, \"waist_max\": 87.0, \"hip_min\": 104.0, \"hip_max\": 108.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: 78% polyamide, 22% elastane\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Gentle wash 30 °C, do not tumble dry\u003c\/li\u003e\n\n\u003cli\u003e✔ Design: Shell motif with pink-blue gradient\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, the Shell Bikini for Women can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eFit and Style of a Bikini with Decorative Detail – What Really Matters\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eA shell design with a pink-blue gradient for days when swimwear and mood align.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eBikinis with decorative details look good but often fit differently than expected\u003c\/li\u003e\n\n\u003cli\u003eFit varies greatly by brand – especially for separate tops and bottoms\u003c\/li\u003e\n\n\u003cli\u003eIt's hard to judge whether the motif truly stands out by the water or quickly looks overlooked\u003c\/li\u003e\n\n\u003cli\u003eCare and durability of decorative swimwear are not always transparent\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou know the feeling: a bikini looks great in the picture, but somehow fits differently on the body – the waistband pulls, the top slides forward, or you're constantly adjusting it when you stand up. This happens especially with models that have decorative details, because the focus is often first on the design, not on the cut and material.\u003c\/p\u003e\n\n\u003cp\u003eOne reason for this is often the material blend: Many bikinis with elaborate prints or motifs use fabrics that work visually but offer little adaptability. This bikini consists of 78% polyamide and 22% elastane – a combination designed for greater adaptability to the body shape in swimwear. Whether and how well it fits in individual cases still depends on the chosen size and your own figure.\u003c\/p\u003e\n\n\u003cp\u003eThis Shell Bikini for Women can be an option if you like a maritime design and don't want to compromise on fit. If, however, you're looking for a very simple, inconspicuous bikini without a motif or prioritize maximum sports function – swimming laps, intense water sports sessions – then this model, with its clear focus on beach aesthetics, might not be your first choice.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat situation do you primarily have in mind – relaxed days by the lake or more active sessions in the water?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eTake a good look at the size chart – and then decide what fits.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay special attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ worn on quiet days by Lake Constance\u003c\/li\u003e\n\n\u003cli\u003e→ chosen for summer vacation with a maritime look\u003c\/li\u003e\n\n\u003cli\u003e→ used as a set for pool, beach, and vacation photos\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Shell design with pink-blue gradient – clear maritime summer look\u003c\/li\u003e\n\n\u003cli\u003e✅ 78% polyamide, 22% elastane – designed for adaptable fit under normal use\u003c\/li\u003e\n\n\u003cli\u003e✅ Gentle wash 30 °C – clear, gentle care instructions\u003c\/li\u003e\n\n\u003cli\u003e✅ Subtle enough to be combined with beach outfits\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Those looking for a completely inconspicuous, solid-colored model will find a clear style focus here\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Not primarily designed for intense water activities or lap swimming\u003c\/li\u003e\n\n\u003cli\u003e⚠️ No detailed information on padding or strap variations – if you need this, please check the product details\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about in similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical of similar\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Shell Bikini for Women\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eDecorative bikinis look good but often feel insecure when moving\u003c\/td\u003e\n\n\u003ctd\u003e22% elastane can provide a more flexible fit – the exact fit depends on the chosen size\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eModels with striking motifs are hard to care for and quickly lose their shape\u003c\/td\u003e\n\n\u003ctd\u003eGentle wash 30 °C and no tumble drying provide clear care guidelines for gentle handling\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eInexpensive swimwear often lacks transparency regarding material and composition\u003c\/td\u003e\n\n\u003ctd\u003e78% polyamide, 22% elastane – verifiable material information as a basis for decision\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eMaritime bikinis often only seem wearable in specific vacation contexts\u003c\/td\u003e\n\n\u003ctd\u003eThe shell design deliberately sets an accent – it's designed for beach, lake, and relaxed summer days, not as an all-rounder\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered exactly these situations with the Shell Bikini for Women – so you'll have to adjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the Shell Bikini for Women feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eConcrete moments when you'll notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even when moving.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Gentle wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 78% polyamide, 22% elastane\u003cbr\u003e• Care: Gentle wash 30 °C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay fit well if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You're looking for a \u003cstrong\u003eShell Bikini for Women\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid mispurchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct details at a glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Gentle wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about the Shell Bikini for Women\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the Shell Bikini for Women fit when moving – for example, when swimming or standing up?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe 22% elastane content can help the top and bottom adapt to movement and reduce slipping. How secure the fit is in individual cases largely depends on the chosen size – if unsure, comparing your measurements with the size chart can be helpful.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for the shell-design bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eRinse briefly with clear water after wearing, then gentle wash at 30 °C. Do not tumble dry – this preserves the material and color gradient for longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for this Shell Bikini for Women?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eBikini sizes can vary by brand. Our size calculator helps you get an estimate based on your height and weight. If you're on the fence between two sizes, it might be advisable to choose the larger one for more freedom of movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat situations is this bikini with a pink-blue gradient suitable for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe bikini is designed for relaxed summer days by the water – beach, lake, pool. The shell design with a maritime accent goes well with calm beach days or vacation settings. It is less designed for intense water activities or competitive swimming.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan I wear the top and bottom in different sizes?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThat depends on whether the top and bottom are sold separately. If you need different sizes for the top and bottom, it's worth checking the product details or contacting customer service – this way you can avoid mispurchases.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eDoes the shell design look different on the body than in the product photo?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe pink-to-blue gradient can appear slightly different depending on the lighting conditions and body shape. The motif is flat and not three-dimensional – on the body, it unfolds similarly to the picture, but can vary slightly due to draping or tension in the fabric.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/die-perfekte-bademode-finden\"\u003eFinding the perfect swimwear\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-damen-finden-sie-den-perfekten-badeanzug-fur-den-sommer-2024\"\u003eSwimsuits for Women: Find the perfect swimsuit for Summer 2024\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/bikini-damen\/wie-man-den-perfekten-bikini-fur-seine-korperform-findet\"\u003eHow to find the perfect bikini for your body shape\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Farbverlauf von Rosa nach Blau im Sonnenlicht am Wasser\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Muschel-Motiv auf dem Oberteil – flächig und ruhig\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and excess stock, especially for printed items!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the Shell Bikini for Women might be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eShell Bikini for Women\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€32.99\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the Shell Bikini for Women can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Muschel Bikini Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/193072510384.jpg?v=1752911021\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"32.99\", \"priceCurrency\": \"EUR\"}, \"additionalProperty\": [{\"@type\": \"PropertyValue\", \"name\": \"Pflegehinweis\", \"value\": \"Feinwäsche 30 °C, nicht im Trockner\"}]}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"A \/ S","offer_id":45166120042764,"sku":"CJYDYYBJ00272-A-S","price":32.99,"currency_code":"EUR","in_stock":true},{"title":"A \/ M","offer_id":45166120009996,"sku":"CJYDYYBJ00272-A-M","price":32.99,"currency_code":"EUR","in_stock":true},{"title":"A \/ L","offer_id":45166119977228,"sku":"CJYDYYBJ00272-A-L","price":32.99,"currency_code":"EUR","in_stock":true},{"title":"A \/ XL","offer_id":45166120075532,"sku":"CJYDYYBJ00272-A-XL","price":32.99,"currency_code":"EUR","in_stock":true},{"title":"B \/ S","offer_id":45166120173836,"sku":"CJYDYYBJ00272-B-S","price":32.99,"currency_code":"EUR","in_stock":true},{"title":"B \/ M","offer_id":45166120141068,"sku":"CJYDYYBJ00272-B-M","price":32.99,"currency_code":"EUR","in_stock":true},{"title":"B \/ L","offer_id":45166120108300,"sku":"CJYDYYBJ00272-B-L","price":32.99,"currency_code":"EUR","in_stock":true},{"title":"B \/ XL","offer_id":45166120206604,"sku":"CJYDYYBJ00272-B-XL","price":32.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/193072510384.jpg?v=1752911021"},{"product_id":"bikini-ruffle-shorts-damen","title":"Women's Tie-Dye Rainbow Bikini","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a tie-dye bikini that looks colorful – yet stays perfectly in place?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that relaxed feeling when a bikini stays put all day without you having to give it a second thought.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eOver the course of a long day at the beach, it usually becomes clear whether a bikini truly works with you – or not.\u003c\/p\u003e\n\n  \u003ch2\u003eWomen's Tie-Dye Bikini with Off-Shoulder Top and Ruffle Shorts – for the Lake, Beach, and Vacation\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nOff-shoulder top with ruffled hem and high-waisted ruffle shorts – a tie-dye rainbow pattern that is colorful without being too loud. The milk silk fabric feels soft on the skin, both dry and wet.\u003c\/p\u003e\n\n\u003cp\u003eThe women's tie-dye bikini was born from the idea of wearing color and restraint simultaneously. The rainbow pattern is not a uniform print, but a soft gradient – as it appears when colors slowly blend into each other. On the shores of Lake Constance, where the midday light falls flat on the water, this very gradient looks particularly vibrant. Not gaudy, but visibly present.\u003c\/p\u003e\n\n\u003cp\u003eThe off-shoulder top rests on the shoulder without pinching – a cut that hardly shifts when walking on sand or getting up from your towel. The ruffle shorts drape over the hips, the small ruffles give the bottom a soft structure that allows for movement without losing its fit. If you wear magenta tones, turquoise, and yellow together in one piece, you barely need anything else – a white beach towel, simple sunglasses, and you're done.\u003c\/p\u003e\n\n\u003cp\u003eThis bikini suits a quiet afternoon by the lake just as well as a vacation where you stroll more than you swim. If you take it off briefly after a swim and have a coffee, you'll notice that the pattern works outside the water too – colorful, but never overdressed. It makes a great vacation souvenir, a birthday or summer gift, for anyone who likes to wear color but prefers clean lines.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The color gradient appears different depending on the light – cooler in the morning on the jetty, warmer at midday in the sun.\u003cbr\u003e• The top still sits in the same place after an hour in the water as it did when you put it on.\u003cbr\u003e• The ruffle shorts can be worn without constantly tugging at the waistband.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you want to estimate the size and fit, our size calculator can help you.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"hip_min\": 75.0, \"hip_max\": 81.0, \"bust_min\": 79.0, \"bust_max\": 85.0}, {\"name\": \"M\", \"hip_min\": 80.0, \"hip_max\": 86.0, \"bust_min\": 84.0, \"bust_max\": 90.0}, {\"name\": \"L\", \"hip_min\": 85.0, \"hip_max\": 91.0, \"bust_min\": 89.0, \"bust_max\": 95.0}, {\"name\": \"XL\", \"hip_min\": 90.0, \"hip_max\": 96.0, \"bust_min\": 94.0, \"bust_max\": 100.0}, {\"name\": \"2XL\", \"hip_min\": 95.0, \"hip_max\": 101.0, \"bust_min\": 99.0, \"bust_max\": 105.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: Milk Silk with 70% elastane – soft, stretchy, designed for normal swimwear use\u003c\/li\u003e\n\n\u003cli\u003e✔ Cut: Off-shoulder top with ruffled hem, ruffle shorts with a soft waistband\u003c\/li\u003e\n\n\u003cli\u003e✔ Available sizes: S, M, L, XL, 2XL\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, the women's tie-dye rainbow bikini can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini feels unsettled after the first dip\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eFit, fabric, and color gradient – what matters in a women's tie-dye bikini.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top shifts after a short time in the water\u003c\/li\u003e\n\n\u003cli\u003eThe waistband digs in or rolls up when you move\u003c\/li\u003e\n\n\u003cli\u003eThe pattern looks good in photos, but too colorful or flat in person\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eMany people know this: you go into the water, swim a few strokes, and suddenly the top sits differently than before. Or the waistband of the bottom pulls in a direction you didn't intend when sitting down on the sunbathing lawn. This isn't a dramatic problem – but it costs attention you'd rather spend on enjoying the day.\u003c\/p\u003e\n\n\u003cp\u003eOften, it's due to the interplay of cut and material. Fabrics that fit well when dry can have less grip in the water. An off-shoulder top without enough elasticity moves with every wave. The milk silk material of this bikini is designed for high elasticity – it can help the top sit more calmly during normal movement in the water than less elastic fabrics.\u003c\/p\u003e\n\n\u003cp\u003eThe women's tie-dye rainbow bikini is designed for beach days at the lake, beach, or pool – i.e., for situations where you go into the water but don't plan performance swimming or intensive water sports. If you're looking for a bikini for surfing or intensive swim training, a different cut is probably more suitable. For a relaxed beach day with alternating between water and sunbathing, this bikini can be a calm option.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDo you like color gradients that stand out without dominating – or do you prefer solid-colored designs?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eAvailable sizes: S, M, L, XL, 2XL – top and bottom can be selected in the same size.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Top still sits in the same place after swimming\u003c\/li\u003e\n\n\u003cli\u003e→ Color gradient looks more vibrant at the lake than in the product photo\u003c\/li\u003e\n\n\u003cli\u003e→ Ruffle shorts stay put all day without needing adjustment\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Soft-stretch Milk Silk material with 70% elastane – for a comfortable feel wet and dry\u003c\/li\u003e\n\n\u003cli\u003e✅ Off-shoulder cut with ruffled hem – designed for stable fit during normal movement\u003c\/li\u003e\n\n\u003cli\u003e✅ Ruffle shorts with soft waistband – less pressure around the hip area than classic bikini briefs\u003c\/li\u003e\n\n\u003cli\u003e✅ Tie-dye color gradient in rainbow colors – colorful, but visually calmer than all-over prints due to the gradient\u003c\/li\u003e\n\n\u003cli\u003e✅ Sizes S to 2XL available – top and bottom can be selected separately\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not designed for performance swimming or intensive water sports\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Off-shoulder cut is not suitable for everyone who prefers maximum shoulder freedom when swimming\u003c\/li\u003e\n\n\u003cli\u003e⚠️ The rainbow pattern is visibly present for everyone – those looking for very subtle looks are better off with a solid-colored model\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical of similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Women's Tie-Dye Rainbow Bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming or moving in the water\u003c\/td\u003e\n\n\u003ctd\u003eMilk silk material with high elastane content – designed for stable fit during normal movement\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eWaistband digs in or rolls up when sitting down\u003c\/td\u003e\n\n\u003ctd\u003eRuffle shorts with a soft, stretchy waistband – fewer pressure points under normal use\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTie-dye pattern looks too gaudy or restless in person\u003c\/td\u003e\n\n\u003ctd\u003eSoft color gradient instead of harsh color blocks – the pattern generally appears calmer than it does in photos\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eOnline bikini sizes are difficult to estimate\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator with height and weight – and sizes S to 2XL to choose from\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe considered exactly these situations with the women's tie-dye rainbow bikini – so you have to make fewer adjustments while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the women's tie-dye rainbow bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang, done. Delicate wash at 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: High-quality Milk Silk with 70% elastane – super soft, stretchy \u0026amp; durable\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay fit well if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You're looking for a \u003cstrong\u003ewomen's tie-dye rainbow bikini\u003c\/strong\u003e with a fit that can suit you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about the Women's Tie-Dye Rainbow Bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs the women's tie-dye rainbow bikini with ruffle shorts available in large sizes?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes, the bikini is available in sizes S, M, L, XL, and 2XL. Top and bottom are chosen in the same size. For an accurate assessment, our size calculator helps with height and weight.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eDoes the off-shoulder top stay in place when swimming?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe top is designed for high elasticity and generally stays put during normal movement in the water. It is not designed for performance swimming or intensive water sports – for a relaxed day at the lake or pool, it can be a suitable option.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for this bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eOur size calculator helps you estimate the right size based on your height and weight. If you are between two sizes, it can be helpful to choose the larger size – especially if the top is meant to fit snugly.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for the bikini after wearing it?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water, then wash on a delicate cycle at 30°C. Do not tumble dry – drying flat best preserves the shape and material.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the tie-dye rainbow pattern look in practice – too colorful or subtle?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe pattern is a soft color gradient with rainbow colors – not a uniform all-over print. It looks colorful, but due to the gradient effect, it generally appears calmer than flat patterns. Those who prefer very subtle tones may find more suitable options in the solid-colored range.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan the bikini also be ordered as a gift?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes – the set of off-shoulder top and ruffle shorts in a uniform tie-dye color gradient is suitable as a summer or birthday gift. For size selection, the size calculator helps if you know the recipient's height and weight.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuide\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits for Women\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwired Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Soft rainbow color gradient in backlight on the water\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Off-shoulder line on the way to the jetty\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and warehouse stock, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the women's tie-dye rainbow bikini can be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eWomen's Tie-Dye Rainbow Bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€28.90\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the women's tie-dye rainbow bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20\/05\/2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Tie Dye Regenbogen Bikini Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/1858453949043.jpg?v=1752910512\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"28.90\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Green \/ S","offer_id":45166126301452,"sku":"CJNSSYTZ03422-Blue-S","price":28.9,"currency_code":"EUR","in_stock":true},{"title":"Green \/ M","offer_id":45166126268684,"sku":"CJNSSYTZ03422-Blue-M","price":28.9,"currency_code":"EUR","in_stock":true},{"title":"Green \/ L","offer_id":45166126235916,"sku":"CJNSSYTZ03422-Blue-L","price":28.9,"currency_code":"EUR","in_stock":true},{"title":"Green \/ XL","offer_id":45166126334220,"sku":"CJNSSYTZ03422-Blue-XL","price":28.9,"currency_code":"EUR","in_stock":true},{"title":"Green \/ XXL","offer_id":45166126366988,"sku":"CJNSSYTZ03422-Blue-XXL","price":28.9,"currency_code":"EUR","in_stock":true},{"title":"Orange \/ S","offer_id":45166126465292,"sku":"CJNSSYTZ03422-Orange-S","price":28.9,"currency_code":"EUR","in_stock":true},{"title":"Orange \/ M","offer_id":45166126432524,"sku":"CJNSSYTZ03422-Orange-M","price":28.9,"currency_code":"EUR","in_stock":true},{"title":"Orange \/ L","offer_id":45166126399756,"sku":"CJNSSYTZ03422-Orange-L","price":28.9,"currency_code":"EUR","in_stock":true},{"title":"Orange \/ XL","offer_id":45166126498060,"sku":"CJNSSYTZ03422-Orange-XL","price":28.9,"currency_code":"EUR","in_stock":true},{"title":"Orange \/ XXL","offer_id":45166126530828,"sku":"CJNSSYTZ03422-Orange-XXL","price":28.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/1858453949043.jpg?v=1752910512"},{"product_id":"bikini-damen-trendfarben","title":"solid olive green bikini","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini look modern – and feel just right at the same time?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003eMaybe you know that calm feeling when a color just suits you – without you having to think much about it.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eAnd many only realize this at the beach or lake: whether a color really works or only looked good in the photo.\u003c\/p\u003e\n\n  \u003ch2\u003ePlain olive green bikini – simple, modern, for lake and beach\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nA plain olive green bikini in a minimalist cut – the color sets a calm accent without being conspicuous. The blended fabric of polyamide and elastane fits snugly while yielding.\u003c\/p\u003e\n\n\u003cp\u003eIn 2026, olive is one of the shades that move between earthiness and zeitgeist – warm enough to suit many skin types, and subtle enough not to dominate. No pattern, no appliques: the color field speaks for itself. For those who want to wear a trendy color without the look immediately catching the eye, olive green offers an option that blends in rather than stands out.\u003c\/p\u003e\n\n\u003cp\u003eOn the shore of Lake Constance, when the light flattens in the afternoon, olive green takes on a warmer tone – the fabric ensemble then appears almost earthier than in the product photo. By the pool in direct sunlight, the color appears clearer and fresher. Depending on the light, the effect can vary slightly – this is a good indicator if you want to assess the color online. Plain trendy shades like this are usually easier to combine with beachwear than patterned models: a cream-colored sarong, a striped beach towel, or an olive linen shirt usually integrate seamlessly.\u003c\/p\u003e\n\n\u003cp\u003eThree moments where this bikini finds its place: the first jump into the water on a summer day, when the fabric feels cool for a moment and then gives way; sitting down on the towel, realizing that nothing pulls or digs in; and getting up for an ice cream, without having to adjust it briefly.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The color appears warmer in real light than on many screens – a calm olive green, not khaki.\u003cbr\u003e• The cut is designed for movement: no pulling when walking or swimming, under normal stress.\u003cbr\u003e• The plain color makes combining easier – accessories and beachwear can bring color and texture.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you want to take a closer look at the color: The product photos show the bikini in various lighting situations – this can help to better assess the shade.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": []}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: 78% Polyamide, 22% Elastane\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Delicate wash 30 °C, do not tumble dry\u003c\/li\u003e\n\n\u003cli\u003e✔ Design: plain olive green, without patterns or appliqués\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, a plain olive green bikini can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a trendy color looks different online than on the body\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eA plain bikini in olive green – calm in tone, open to combinations.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe color looks different in the photo than in real light\u003c\/li\u003e\n\n\u003cli\u003eTrendy colors sometimes appear louder on the body than desired\u003c\/li\u003e\n\n\u003cli\u003eUnsure whether olive green combines well with existing beachwear\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eMany know this: a bikini looks exactly right in the product photo – the shade, the simplicity, the overall look. And then, at the lake or beach, it appears either lighter, darker, or somehow different than expected. With olive green, this is particularly relevant because the shade can shift between warm earthy brown and fresh green depending on the light source.\u003c\/p\u003e\n\n\u003cp\u003eThis is less due to the product presentation than to the nature of the shade itself: olive green is a mixed tone that is influenced by white light, shadows, and one's own skin color. A clue: in warm afternoon light, it appears deeper and warmer; in direct sun, clearer and greener. If you are unsure, you can compare the product photos in different lighting situations – this usually gives a more realistic picture than a single studio photo.\u003c\/p\u003e\n\n\u003cp\u003eThe 22% elastane content can help the bikini generally sit securely when moving – getting into the water, standing up, sitting down – without constant readjustment. This is not a promise for every body shape and every cut, but the material is designed for freedom of movement. If you prefer strongly shaping models with underwire or shaping inserts, this simple cut might not be your first choice – this is an honest hint, not a judgment.\n\nDoes this calm, plain shade suit how you want to present yourself by the water?\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you assess the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eTake your time to look at the color photos – sometimes it's only decided on the second glance.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay special attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Secure fit when getting into the water and swimming\u003c\/li\u003e\n\n\u003cli\u003e→ Combinable with sarong, beach towel, and linen shirt\u003c\/li\u003e\n\n\u003cli\u003e→ Olive green as a trendy color for beach, lake, and pool holidays 2026\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you make a decision\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Olive green shade – calm trendy color that can be combined with many beachwear styles\u003c\/li\u003e\n\n\u003cli\u003e✅ 22% elastane – designed for freedom of movement when swimming and walking\u003c\/li\u003e\n\n\u003cli\u003e✅ Plain without pattern – universal starting point for various looks by the water\u003c\/li\u003e\n\n\u003cli\u003e✅ Delicate wash 30 °C – easy to care for with normal handling\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ For buyers who prefer strongly shaping models with underwire, this simple cut might not be the first choice\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who only wear neutral, inconspicuous tones like black or white might find olive green too colorful\u003c\/li\u003e\n\n\u003cli\u003e⚠️ For very intensive water sports activities, there are more specific models with stronger support\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ plain olive green bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eColor looks different in product photos than in real life\u003c\/td\u003e\n\n\u003ctd\u003eOlive green is a warm earth tone – the product photos show it in various lighting situations as a guide\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTrendy colors are difficult to combine with existing beachwear\u003c\/td\u003e\n\n\u003ctd\u003ePlain olive green without a pattern can generally be integrated more easily into existing beach outfits than patterned models\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eBikinis often sit uncomfortably during movement or need to be adjusted\u003c\/td\u003e\n\n\u003ctd\u003eThe 22% elastane content is designed for freedom of movement – with normal use, the fit usually remains secure\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eBikinis quickly lose color and shape after washing and sun exposure\u003c\/td\u003e\n\n\u003ctd\u003eDelicate wash at 30 °C and no tumble drying can help preserve color and material longer\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered precisely these situations for the plain olive green bikini – so you have to adjust less when wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the plain olive green bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 78% Polyamide, 22% Elastane\u003cbr\u003e• Care: Delicate wash 30 °C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eCould be a good fit if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003eplain olive green bikini\u003c\/strong\u003e with a fit that can suit you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct details at a glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Delicate wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about the plain olive green bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does a plain olive green bikini look in real light?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eOlive green is a mixed tone that can vary depending on the lighting situation: in warm light, it appears deeper and earthier; in direct sun, it looks fresher and greener. The product photos show the bikini in different lighting situations – this can help you better assess the shade before making a decision.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan a simple bikini in the trendy color olive green be easily combined?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003ePlain models without patterns are generally easier to combine than patterned ones. Cream-colored or beige sarongs, striped beach towels, or neutral linen shirts usually go well with olive green. The calm tone gives other accessories room to shine.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for a bikini made of polyamide and elastane?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water, then wash at 30 °C on a delicate cycle. Do not tumble dry – this can damage the material and color. Drying flat is generally gentler for the shape.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for this bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eOur size calculator helps you assess the cut and size based on your height and weight. If you are unsure between two sizes, it can help to compare the measurement chart directly – top and bottom can be chosen separately if the model allows it.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs this olive green women's bikini also suitable for intensive water sports?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe bikini is designed for normal beach and swimming situations – swimming, sunbathing, moving by the water. For intensive water sports or frequent diving, there are special models with stronger support. For regular use, delicate washing at 30 °C is recommended to protect the material and color.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/die-perfekte-bademode-finden\"\u003eFinding the Perfect Swimwear\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/trendige-bademode-fur-damen-2025-stilvoll-am-strand\"\u003eTrendy Swimwear for Women 2025: Stylish at the Beach\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bademode-fur-frauen\"\u003eSwimwear for Women\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Olive green color surface in warm afternoon light on the shore of Lake Constance\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Bikini when standing up from the towel – fit remains secure, no readjustment\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and stock, for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified according to EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you identify with the scenarios above, the plain olive green bikini could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eplain olive green bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€22.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the plain olive green bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"einfarbiger olivgrüner Bikini\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/7717468035728.png?v=1752908619\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"22.95\", \"priceCurrency\": \"EUR\"}, \"additionalProperty\": [{\"@type\": \"PropertyValue\", \"name\": \"Pflegehinweis\", \"value\": \"Feinwäsche 30 °C, nicht im Trockner\"}]}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"S \/ Olive green","offer_id":45166133674252,"sku":"CJYDYYBJ00431-S-Green","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"S \/ Sky blue","offer_id":45166133707020,"sku":"CJYDYYBJ00431-S-Light Blue","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"S \/ Tulip pink","offer_id":45166133739788,"sku":"CJYDYYBJ00431-S-Pink","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"S \/ Purple","offer_id":45166133772556,"sku":"CJYDYYBJ00431-S-Purple","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"S \/ Cherry red","offer_id":45166133805324,"sku":"CJYDYYBJ00431-S-Red","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"S \/ Sun yellow","offer_id":45166133838092,"sku":"CJYDYYBJ00431-S-Yellow","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"M \/ Olive green","offer_id":45166133477644,"sku":"CJYDYYBJ00431-M-Green","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"M \/ Sky blue","offer_id":45166133510412,"sku":"CJYDYYBJ00431-M-Light Blue","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"M \/ Tulip pink","offer_id":45166133543180,"sku":"CJYDYYBJ00431-M-Pink","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"M \/ Purple","offer_id":45166133575948,"sku":"CJYDYYBJ00431-M-Purple","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"M \/ Cherry red","offer_id":45166133608716,"sku":"CJYDYYBJ00431-M-Red","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"M \/ Sun yellow","offer_id":45166133641484,"sku":"CJYDYYBJ00431-M-Yellow","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"L \/ Olive green","offer_id":45166133281036,"sku":"CJYDYYBJ00431-L-Green","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"L \/ Sky blue","offer_id":45166133313804,"sku":"CJYDYYBJ00431-L-Light Blue","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"L \/ Tulip pink","offer_id":45166133346572,"sku":"CJYDYYBJ00431-L-Pink","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"L \/ Purple","offer_id":45166133379340,"sku":"CJYDYYBJ00431-L-Purple","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"L \/ Cherry red","offer_id":45166133412108,"sku":"CJYDYYBJ00431-L-Red","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"L \/ Sun yellow","offer_id":45166133444876,"sku":"CJYDYYBJ00431-L-Yellow","price":22.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/7717468035728.png?v=1752908619"},{"product_id":"bandeau-bikini-damen","title":"lilac bandeau bikini palm print","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bandeau bikini that stays put all day – while feeling lightweight?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that calm feeling when a bikini just fits – without constantly readjusting it throughout the day.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eAnd that's precisely when many notice the difference – not when putting it on, but when getting out of the water and reaching for a towel.\u003c\/p\u003e\n\n  \u003ch2\u003eWomen's Bandeau Bikini with Palm Print – for Lake, Pool, and Summer Days\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nStrapless bandeau cut – for relaxed lying and moving by the water, subtle palm print in purple-blue-pink tones, fabric made of 78% polyamide and 22% elastane – soft, close-fitting, with slight stretch.\u003c\/p\u003e\n\n\u003cp\u003eThe palm print on this women's bandeau bikini is not loud. The motifs – palms and geometric shapes in calm purple-blue-pink tones – add a summery accent without overwhelming the overall look. On the shores of Lake Constance, where the light falls flat over the water, this pattern looks like a quiet reference to vacation – without theatrics. It's a design you enjoy wearing without constantly being reminded of it.\u003c\/p\u003e\n\n\u003cp\u003eThe combination of a bandeau top and bikini bottoms with the same print creates a calm, coordinated look. If you're sitting on a blanket by the lake and throw the top over your towel, you'll see a piece that works even out of the water. However, if you prefer bold patterns or bright colors, you'll find less of that here – the pattern is deliberately subdued.\u003c\/p\u003e\n\n\u003cp\u003eAs a souvenir from a summer vacation, a gift before the first swim day at the lake, or simply to refresh your swimwear drawer: This bikini fits situations where you want something that feels light and effortless. Three specific moments: Getting out of the water without having to pull at the top. Sitting on the jetty without the bottoms digging in. Packing up after a day at the beach – and the pattern looks just as calm as it did in the morning.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The fabric lies on the body without digging in – even after prolonged wear by the water\u003cbr\u003e• The pattern remains calm even when moving – no visual disturbance\u003cbr\u003e• The color combination of purple, blue, and pink integrates well with many towels, bags, and summer outfits\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you're unsure which size fits: Our size calculator will help you.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": []}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: 78% polyamide, 22% elastane\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Delicate wash 30 °C, do not tumble dry – rinse briefly with clear water after wearing\u003c\/li\u003e\n\n\u003cli\u003e✔ Cut: Strapless bandeau top, bikini bottoms with palm print\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, the purple bandeau bikini with palm print can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen the bikini slips in the water and the band digs in\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eWhat often happens with bandeau bikinis – and what matters for a good fit.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top doesn't stay where it should when swimming\u003c\/li\u003e\n\n\u003cli\u003eThe band feels comfortable in the morning, but you distinctly feel it in the afternoon\u003c\/li\u003e\n\n\u003cli\u003eBikinis ordered online rarely fit as expected\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eMany know the feeling: you go into the water, briefly dip under – and afterwards the bandeau top isn't quite where it was. Or the bottoms have shifted slightly while swimming, and you discreetly adjust them when getting out. This is not an isolated case, but a typical characteristic of bikinis that are not designed for movement.\u003c\/p\u003e\n\n\u003cp\u003eThe reason often lies in the material's elasticity ratio: if the fabric has too little recovery force, it yields and doesn't return on its own. The blend of polyamide and elastane in this bikini is designed precisely for this recovery force – the fabric stretches with movement and returns to its original shape under normal stress. This is not a guarantee, but the approach differs from bikinis with a lower elastane content.\u003c\/p\u003e\n\n\u003cp\u003eThis bandeau bikini can be an option if you enjoy relaxed swimming and days lounging by the lake or pool and prefer a calm fit. If you plan more intensive water sports like diving, surfing, or competitive swimming, a sports swimsuit or a swimsuit with a clasp is probably the more suitable choice – this is made for movement by the water, not for high performance in the water.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDo you wear bikinis more for relaxed beach days – or do you need something that also holds up during more athletic activities?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you assess the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eIf you like, check the available sizes and compare them with your measurements.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Still fits comfortably after a long day at the beach\u003c\/li\u003e\n\n\u003cli\u003e→ Top usually stays put while swimming\u003c\/li\u003e\n\n\u003cli\u003e→ Pattern looks as subtle on the body as in the product image\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Bandeau cut without straps – for relaxed lounging and moving by the water\u003c\/li\u003e\n\n\u003cli\u003e✅ Subtle palm print in purple-blue-pink – understated, versatile\u003c\/li\u003e\n\n\u003cli\u003e✅ Polyamide-elastane blend – designed for a calm fit under normal stress\u003c\/li\u003e\n\n\u003cli\u003e✅ Easy care: Delicate wash 30 °C\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not suitable for intense water sports, diving, or competitive swimming\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer bold, eye-catching patterns will find a deliberately calmer design here\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Strapless bandeau top – less stable than models with clasps for very active swimming sessions\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ purple bandeau bikini with palm print\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eBandeau top slips when swimming\u003c\/td\u003e\n\n\u003ctd\u003eElastane content designed for recovery force – usually stays put during normal movement\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eBand digs in after prolonged wear\u003c\/td\u003e\n\n\u003ctd\u003eSoft polyamide-elastane fabric – designed for comfortable wear throughout the day\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eOnline bikini sizes difficult to estimate\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator available with height and weight as guidance\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePattern looks different on the body than in the picture\u003c\/td\u003e\n\n\u003ctd\u003eSubtle palm print in calm colors – remains visually harmonious even when moving\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered precisely such situations with the purple bandeau bikini with palm print – so you have to adjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the purple bandeau bikini with palm print feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you'll notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even during movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSalt water, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang, done. Delicate wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 78% polyamide, 22% elastane\u003cbr\u003e• Care: Delicate wash 30 °C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eCould be a good fit if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You're looking for a \u003cstrong\u003epurple bandeau bikini with palm print\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct details at a glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Delicate wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about the purple bandeau bikini with palm print\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for a purple bandeau bikini with palm print?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eUse our size calculator with your height and weight as a starting point. Since bikini tops and bottoms can have separate sizes, it's worth assessing both parts individually. If you're unsure between two sizes, we recommend choosing the larger variant – especially for the bandeau top, as a fit that is too tight can become uncomfortable over time.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the bikini bottom band fit when moving in the water?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe polyamide and elastane fabric is designed for recovery force – it stretches with movement and returns to its shape under normal stress. For calm swimming and lounging days, the band usually stays put. For intensive water sports, a bikini is generally less suitable.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for a women's bandeau bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eRinse briefly with clear water after wearing. Wash at 30 °C on a delicate cycle, do not tumble dry. This helps the fabric retain its shape and the print last longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs the palm print bikini also suitable for Lake Constance?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes – the bikini is designed for relaxed days at the lake. The cut and material are suitable for swimming, lounging, and moving by the water. For very athletic activities in the water, a sports swimsuit is a better choice.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan I order the top and bottom of this bikini in different sizes?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThat depends on the store's offerings – check the product variants directly. Many customers benefit from combining tops and bottoms in different sizes, as bust and hip measurements are often different.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwired Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Palms and geometric patterns in purple-blue-pink on a light background\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Strapless bandeau top – clear, calm silhouette\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce to order – this reduces overproduction and stock, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified according to EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the purple bandeau bikini with palm print could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003epurple bandeau bikini with palm print\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€25.90\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the purple bandeau bikini with palm print can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"lila Bandeau Bikini Palmenprint\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/3725643164_1123842909.jpg?v=1717171385\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"25.90\", \"priceCurrency\": \"EUR\"}, \"additionalProperty\": [{\"@type\": \"PropertyValue\", \"name\": \"Pflegehinweis\", \"value\": \"Feinwäsche 30 °C, nicht im Trockner\"}]}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Ebony black \/ L","offer_id":45166141276428,"sku":"CJYDYYBJ00167-Black-L","price":25.9,"currency_code":"EUR","in_stock":true},{"title":"Ebony black \/ M","offer_id":45166141309196,"sku":"CJYDYYBJ00167-Black-M","price":25.9,"currency_code":"EUR","in_stock":true},{"title":"Ebony black \/ S","offer_id":45166141341964,"sku":"CJYDYYBJ00167-Black-S","price":25.9,"currency_code":"EUR","in_stock":true},{"title":"Purple \/ L","offer_id":45166141374732,"sku":"CJYDYYBJ00167-Purple-L","price":25.9,"currency_code":"EUR","in_stock":true},{"title":"Purple \/ M","offer_id":45166141407500,"sku":"CJYDYYBJ00167-Purple-M","price":25.9,"currency_code":"EUR","in_stock":true},{"title":"Purple \/ S","offer_id":45166141440268,"sku":"CJYDYYBJ00167-Purple-S","price":25.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/3725643164_1123842909.jpg?v=1717171385"},{"product_id":"bikini-damen-surfer","title":"Long Sleeve Bikini Floral Print Women's","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a long-sleeved bikini stay put in the water—and still fit days later?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that feeling when a bikini just fits from the first moment—no pulling, no tugging.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eMany don't notice the difference when they put it on, but only when the day gets long—on the shore, in the water, getting up from the sand.\u003c\/p\u003e\n\n  \u003ch2\u003eWomen's Long-Sleeved Surfer Bikini with Floral Pattern – Criss-Cross Back for Lakes and Seas\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this long-sleeved bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nCriss-cross back for a secure fit during movement – turquoise background with violet blossoms, elastic fabric made of 78% polyamide and 22% elastane, which feels soft and moves with you.\u003c\/p\u003e\n\n\u003cp\u003eThe floral pattern of this long-sleeved bikini has a quiet, self-evident quality: a turquoise background, violet blossoms – a color world reminiscent of clear lake water and bright summer light. Not a loud pattern that calls for attention, but one that simply is. Emerging on the shores of Lake Constance, with the gentle crunch of gravel underfoot.\u003c\/p\u003e\n\n\u003cp\u003eThe long sleeves change how the day at the water feels: a cool morning session, when the light is still low and the water is still fresh – and yet no hesitation on the shore. The criss-cross back is open at the back and stable at the front, so nothing slips when paddling or pulling yourself out of the water. A bikini that lasts longer throughout the day.\u003c\/p\u003e\n\n\u003cp\u003eAs a travel companion in your bag, for a relaxed afternoon at the lake, as a gift for someone who values style and function equally – this long-sleeved bikini with a floral pattern is perfect for moments when you'd rather swim than overthink.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The fabric is snug enough to move with you – and soft enough to forget it's there.\u003cbr\u003e• The pattern looks calm, even when you emerge wet from the water.\u003cbr\u003e• The criss-cross back allows freedom of movement without the top shifting.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you like calm patterns and a bikini that lasts more than half a day – this one might be for you.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"hip_min\": 83.0, \"hip_max\": 88.0, \"bust_min\": 81.0, \"bust_max\": 86.0}, {\"name\": \"M\", \"hip_min\": 88.0, \"hip_max\": 93.0, \"bust_min\": 86.0, \"bust_max\": 91.0}, {\"name\": \"L\", \"hip_min\": 93.0, \"hip_max\": 98.0, \"bust_min\": 91.0, \"bust_max\": 96.0}, {\"name\": \"XL\", \"hip_min\": 98.0, \"hip_max\": 103.0, \"bust_min\": 96.0, \"bust_max\": 101.0}, {\"name\": \"2XL\", \"hip_min\": 103.0, \"hip_max\": 108.0, \"bust_min\": 101.0, \"bust_max\": 106.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: 78% Polyamide, 22% Elastane\u003c\/li\u003e\n\n\u003cli\u003e✔ Cut: Long-sleeved top with criss-cross back\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Delicate wash 30 °C, do not tumble dry\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, a Women's Long-Sleeved Floral Bikini can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini doesn't stay put in the water\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eFit, movement, material – what really matters for a long-sleeved bikini.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top slips as soon as you enter the water\u003c\/li\u003e\n\n\u003cli\u003eAfter a few days, the bikini no longer fits like on the first day\u003c\/li\u003e\n\n\u003cli\u003eThe fabric feels unpleasantly damp and clammy when wet\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou go into the water, briefly submerge – and notice when you resurface that the top has ridden up. Or you're sitting on the board, paddling, and the band digs in exactly where it shouldn't. Small things, but they add up over a long day at the beach.\u003c\/p\u003e\n\n\u003cp\u003eThe reason is often not the size alone, but the interplay of cut, elasticity, and back design. A criss-cross back distributes tension differently than a straight strap – the top tends to stay more securely in place during arm movements. The material – here 78% polyamide, 22% elastane – is designed for stretch and shape retention, under normal use in water.\u003c\/p\u003e\n\n\u003cp\u003eThis long-sleeved bikini can be an option if you're looking for a bikini that stays put even with more movement in the water – without constant adjustments. If, however, you prefer a sleeveless or triangle-cut bikini, this style might not be for you.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDo you have a clear idea of how much movement your bikini needs to withstand?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eBrowse the available sizes and choose the one that fits your midsection and arms – both should feel secure.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay special attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Still fits securely in the evening after a long beach day, just like in the morning\u003c\/li\u003e\n\n\u003cli\u003e→ Criss-cross back generally stays in place during movement in the water\u003c\/li\u003e\n\n\u003cli\u003e→ Pattern still looks clear and not washed out when wet\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you make a decision\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Long-sleeved cut for more coverage on cooler days or during longer sessions in the water\u003c\/li\u003e\n\n\u003cli\u003e✅ Criss-cross back – designed for a stable fit under normal stress\u003c\/li\u003e\n\n\u003cli\u003e✅ Floral pattern with turquoise background – a calm design that can be combined well\u003c\/li\u003e\n\n\u003cli\u003e✅ Elastane content for freedom of movement and shape retention\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not ideal for competitive swimming or intense water sports\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer a classic triangle or strapless bikini may not feel comfortable with this cut\u003c\/li\u003e\n\n\u003cli\u003e⚠️ No documented information on chlorine or saltwater resistance – observe care instructions\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical with similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Women's Long-Sleeved Floral Bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming or paddling\u003c\/td\u003e\n\n\u003ctd\u003eCriss-cross back cut designed for a more stable fit during arm movements in the water\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eFabric feels unpleasantly clammy after bathing\u003c\/td\u003e\n\n\u003ctd\u003e78% Polyamide, 22% Elastane – material mix designed for elasticity and fit\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eBikini sizes are hard to estimate online\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator with height and weight as a guide – not a promise, but a reference point\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eShort sleeves or straps offer little protection in cool water\u003c\/td\u003e\n\n\u003ctd\u003eLong sleeves for more coverage – for cool mornings or longer water activities\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've thought about these very situations with the Women's Long-Sleeved Floral Bikini – so you have to adjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the Women's Long-Sleeved Floral Bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSalt water, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang to dry, done. Delicate wash 30°C, do not tumble dry – observe care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 78% Polyamide, 22% Elastane\u003cbr\u003e• Care: Delicate wash 30 °C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay fit well if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003eWomen's Long-Sleeved Floral Bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort in everyday life\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct details at a glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Delicate wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently asked questions about the Women's Long-Sleeved Floral Bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat activities is a long-sleeved floral bikini suitable for surfing?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThis long-sleeved bikini is designed for active days on the water – paddling, swimming, beach days. It is less intended for intense competitive water sports or competitive swimming; a special sports swimsuit is recommended for that.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the criss-cross back of the women's long-sleeved surfer bikini fit during movement?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe criss-cross back distributes tension more evenly during arm movements than a straight strap. The top generally stays more securely in place during normal movement in the water. Under very heavy stress, any bikini can shift – no promise, but a reference point.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for a polyamide and elastane bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eRinse briefly with clear water after wearing, then wash on a delicate cycle at 30 °C. Do not tumble dry – this preserves the elasticity and shape of the fabric.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for the women's long-sleeved surfer bikini with a criss-cross back?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eUse our size calculator with your height and weight as a starting point. For long-sleeved bikinis, it's also worth considering arm circumference – if in doubt between two sizes, the larger option may provide more freedom of movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs the simple surfer bikini from Lake Constance also suitable for a seaside vacation?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes, the cut and material are not tied to a specific type of water body. The floral pattern with a turquoise background and violet blossoms looks just as good at the lake as at the beach – depending on personal taste.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Turquoise background with violet blossoms – color world reminiscent of clear lake water\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Criss-cross back detail – open but guided\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce to order – this reduces overproduction and stock, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information checked according to EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the Women's Long-Sleeved Floral Bikini could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eWomen's Long-Sleeved Floral Bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€40.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the Women's Long-Sleeved Floral Bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Langarm Bikini Blumenmuster Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/1618450463531.jpg?v=1752906786\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"40.95\", \"priceCurrency\": \"EUR\"}, \"additionalProperty\": [{\"@type\": \"PropertyValue\", \"name\": \"Pflegehinweis\", \"value\": \"Feinwäsche 30 °C, nicht im Trockner\"}]}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Sky blue \/ S","offer_id":45166153892108,"sku":"CJYJ108072001AZ","price":40.95,"currency_code":"EUR","in_stock":true},{"title":"Sky blue \/ M","offer_id":45166153859340,"sku":"CJYJ108072002BY","price":40.95,"currency_code":"EUR","in_stock":true},{"title":"Sky blue \/ L","offer_id":45166153826572,"sku":"CJYJ108072003CX","price":40.95,"currency_code":"EUR","in_stock":true},{"title":"Sky blue \/ XL","offer_id":45166153924876,"sku":"CJYJ108072004DW","price":40.95,"currency_code":"EUR","in_stock":true},{"title":"Sky blue \/ 2XL","offer_id":45166153793804,"sku":"CJYJ108072005EV","price":40.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/1618450463531.jpg?v=1752906786"},{"product_id":"bikini-damen-schmetterlingsmuster","title":"Women's bikini with butterfly pattern","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini stay put all day – and keep its composure?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that feeling when a bikini just fits – without needing to readjust or think about it at midday.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eThe difference usually isn't apparent when you first put it on, but rather sometime in the afternoon – when you stand up from your towel or go into the water.\u003c\/p\u003e\n\n  \u003ch2\u003eButterfly Pattern Bikini – Blue Two-Piece for Beach and Lake\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nA two-piece bikini with a blue butterfly pattern – designed for beach days when you don't want to constantly worry about the fit. The pattern is present without being overwhelming. The fabric, made of 78% polyamide and 22% elastane, fits snugly without constricting.\u003c\/p\u003e\n\n\u003cp\u003eThe butterfly pattern on a blue background creates a calm visual – not loud, not minimalist-bare. The motifs appear like a moment in between: visible if you look closely, yet subtle amidst the beach bustle. This is precisely what makes this butterfly pattern bikini a piece that can be combined with other summer wear without overpowering them.\u003c\/p\u003e\n\n\u003cp\u003eBlue tones and butterfly prints have something that goes well with water – whether at Lake Constance, by the pool, or at the sea. The coloring looks different in the sun than in the shade: sometimes more vibrant, sometimes almost delicate. Those who like patterns that offer a certain leeway without being playful might find what they're looking for here. Those who prefer pure solid colors or very graphic prints will probably look elsewhere – and that's perfectly fine.\u003c\/p\u003e\n\n\u003cp\u003eAt the beach: You go into the water, come back, settle onto your towel – the pattern stays as it was. During coffee afterward, still slightly salty and relaxed: The blue looks fresh, the butterfly stands out if someone looks closely. As a souvenir or gift, this bikini works for anyone who likes color but isn't seeking attention.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice\u003c\/h3\u003e\n\n\u003cp\u003e• The fabric feels soft against the skin without rubbing – even after prolonged wear near water.\u003cbr\u003e• The butterfly pattern appears vibrant in the light without being obtrusive.\u003cbr\u003e• The cut is suitable for various body shapes – not just one specific type.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you're unsure whether the cut and size fit – our size calculator can give you an indication.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g., 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g., 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g., 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"hip_min\": 72.0, \"hip_max\": 76.0, \"bust_min\": 66.0, \"bust_max\": 72.0, \"height_min\": 32.0, \"height_max\": 34.0}, {\"name\": \"M\", \"hip_min\": 76.0, \"hip_max\": 80.0, \"bust_min\": 72.0, \"bust_max\": 78.0, \"height_min\": 34.0, \"height_max\": 36.0}, {\"name\": \"L\", \"hip_min\": 80.0, \"hip_max\": 84.0, \"bust_min\": 92.0, \"bust_max\": 96.0, \"height_min\": 78.0, \"height_max\": 84.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: 78% Polyamide, 22% Elastane\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Delicate wash 30 °C, do not tumble dry\u003c\/li\u003e\n\n\u003cli\u003e✔ Pattern: Butterfly pattern on a blue background, two-piece\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, the women's butterfly pattern bikini can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini becomes restless during the day\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eFit, pattern, material – what works together.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top slips after the first swim\u003c\/li\u003e\n\n\u003cli\u003eThe waistband uncomfortably constricts when sitting\u003c\/li\u003e\n\n\u003cli\u003eAfter a few days of swimming, the bikini no longer fits as it did initially\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eMany know this feeling: You put on a bikini in the morning that fits well – and sometime in the afternoon, after a few swims and hours by the lake, it doesn't quite fit anymore. The top sits slightly differently, the waistband presses in a spot that wasn't a problem before.\u003c\/p\u003e\n\n\u003cp\u003eThis is often due to the material: fabrics with little elastane or not designed for water contact change their behavior when wet. The fit that worked dry is different when wet.\u003c\/p\u003e\n\n\u003cp\u003eThis bikini is made from a polyamide-elastane blend (78% \/ 22%) designed for movement in and around water. The top can stay in place under normal activity – swimming, walking, sitting. Not an absolute guarantee, but a good indication. Those planning intense water sports or making very dynamic movements might be better off with a sportier cut.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eHow much movement do you do on a typical beach day – and what's more important to you: fit or appearance?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eIf you're still unsure: the top and bottom can usually be chosen separately, which helps with sizes that aren't always the same.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Stays put while swimming – without needing readjustment\u003c\/li\u003e\n\n\u003cli\u003e→ The pattern stands out without being overwhelming\u003c\/li\u003e\n\n\u003cli\u003e→ Comfortable to wear even after several days at the beach\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you make a decision\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Polyamide-elastane blend – designed for movement in and around water\u003c\/li\u003e\n\n\u003cli\u003e✅ Butterfly pattern in blue – subtly patterned, versatile\u003c\/li\u003e\n\n\u003cli\u003e✅ Delicate wash 30 °C – easy care for everyday use\u003c\/li\u003e\n\n\u003cli\u003e✅ Suitable for beach, lake, and pool under normal use\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ For intense competitive swimming or very dynamic water sports, a sportier cut might be more suitable\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer pure solid colors or very graphic prints will find a different style here\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical with similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Women's Butterfly Pattern Bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming\u003c\/td\u003e\n\n\u003ctd\u003ePolyamide-elastane blend designed for a more stable fit during normal water movement\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eDifficult to estimate size online\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator with height and weight as a guide; top and bottom can be chosen separately\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePattern looks faded or too striking after one season\u003c\/td\u003e\n\n\u003ctd\u003eSubtle butterfly pattern in blue – calm coloring that doesn't overpower\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered precisely these situations with the Women's Butterfly Pattern Bikini – so you have to readjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the Women's Butterfly Pattern Bikini feels in everyday use\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang to dry, done. Delicate wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 78% Polyamide, 22% Elastane\u003cbr\u003e• Care: Delicate wash 30 °C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay be a good fit if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You're looking for a \u003cstrong\u003ewomen's butterfly pattern bikini\u003c\/strong\u003e with a fit that can suit you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid mispurchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct Details at a Glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Delicate wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about Women's Butterfly Pattern Bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for a blue women's bikini with a butterfly pattern?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eOur size calculator provides an indication based on your height and weight. Since bikini tops and bottoms can fit differently, it's worth considering both parts separately. If you're unsure between two sizes, choosing the larger option is usually more comfortable.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the waistband fit during movement – for example, when swimming or standing up?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe waistband is designed for normal everyday movements in and around water – walking, swimming, sitting. Under normal use, it generally stays put. For very dynamic water activities or competitive swimming, a specifically sporty cut might be more suitable.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for bikini fabrics made of polyamide and elastane?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eRinse briefly with clear water after wearing, then wash at 30 °C on a delicate cycle. Do not tumble dry – this protects the elastane content and helps the bikini retain its shape.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs this women's butterfly pattern bikini also suitable for Lake Constance?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes, the bikini is designed for the beach, lake, and pool – including Lake Constance. The material is designed for water contact. Please rinse briefly after swimming and let it air dry.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan I order the top and bottom in different sizes?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThis is possible depending on the offer. Since bikini sizes are often not consistent, we recommend considering the top and bottom separately and choosing different sizes if necessary.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Schmetterlingsmuster auf blauem Grund – sichtbar im Sonnenlicht, ruhig im Schatten\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Enger anliegender Schnitt, der sich bei Bewegung nicht aufwirft\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and warehouse stock, for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the Women's Butterfly Pattern Bikini might be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eWomen's Butterfly Pattern Bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€25.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the Women's Butterfly Pattern Bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Bikini Damen Schmetterlingsmuster\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/0098f3c0-4f3a-4154-8444-f80e5700d8a5.jpg?v=1751741893\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"25.95\", \"priceCurrency\": \"EUR\"}, \"additionalProperty\": [{\"@type\": \"PropertyValue\", \"name\": \"Pflegehinweis\", \"value\": \"Feinwäsche 30 °C, nicht im Trockner\"}]}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Snow white \/ L","offer_id":45418792583436,"sku":"CJYJ174606603CX","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Snow white \/ M","offer_id":45418792616204,"sku":"CJYJ174606602BY","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Snow white \/ S","offer_id":45418792648972,"sku":"CJYJ174606601AZ","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Pink \/ L","offer_id":45418792681740,"sku":"CJYJ174606606FU","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Pink \/ M","offer_id":45418792714508,"sku":"CJYJ174606605EV","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Pink \/ S","offer_id":45418792747276,"sku":"CJYJ174606604DW","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Aquaturquoise \/ L","offer_id":45418792780044,"sku":"CJYJ174606609IR","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Aquaturquoise \/ M","offer_id":45418792812812,"sku":"CJYJ174606608HS","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Aquaturquoise \/ S","offer_id":45418792845580,"sku":"CJYJ174606607GT","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Baby blue \/ L","offer_id":45418792878348,"sku":"CJYJ174606612LO","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Baby blue \/ M","offer_id":45418792911116,"sku":"CJYJ174606611KP","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Baby blue \/ S","offer_id":45418792943884,"sku":"CJYJ174606610JQ","price":25.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/0098f3c0-4f3a-4154-8444-f80e5700d8a5.jpg?v=1751741893"},{"product_id":"damen-bikini-set-dreiteilig-marmoriert","title":"Women's Marble Print Bikini Set","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a marble-patterned bikini that fits just as well on Lake Constance as it did on the first day?\u003c\/p\u003e\u003c\/div\u003e\n\n  \n  \n  \u003ch2\u003eWomen's Marble Pattern Bikini – Timeless Pattern for Lake, Pool, and Vacation\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini set is made for:\u003c\/strong\u003e\u003cbr\u003e\nTwo-piece set with an abstract marble pattern – subtly patterned in black, grey, and white with golden accents, for days when swimwear should appear calm and thoughtful.\u003c\/p\u003e\n\n\u003cp\u003eThe marble pattern comes from an aesthetic that evokes architecture and serene surfaces rather than loud beach looks. Black, grey, and white blend into each other, and the golden accents provide a focal point without dominating. For those who enter the water at Lake Constance and are looking for a set that isn't intrusive, this offers a quiet statement.\u003c\/p\u003e\n\n\u003cp\u003eThe pattern works well on both light and dark skin because it doesn't emphasize a single color, but rather showcases transitions. It's not a flashy print statement – rather a background that speaks for itself. On the pier, when getting out of the water, when leaning against the quay wall: The pattern looks similar in motion and at rest.\u003c\/p\u003e\n\n\u003cp\u003eThe set makes a great souvenir or gift if you want to give someone something that doesn't immediately look like a \"typical swimwear gift.\" And it can be combined with a light beach skirt or wide linen trousers if you're heading straight from the water to your next activity.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The pattern stands out without you having to explain anything – a calm effect without effort.\u003cbr\u003e• The color combination of grey and gold looks different in the water than in the photo – a little warmer, a little livelier.\u003cbr\u003e• If you like to wear basics but don't want a solid-colored set, you can find a middle ground here.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you want to estimate the size, our size calculator will help – your height and weight are sufficient for an initial indication.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"hip_min\": 86.0, \"hip_max\": 91.0, \"bust_min\": 81.0, \"bust_max\": 86.0}, {\"name\": \"M\", \"hip_min\": 91.0, \"hip_max\": 96.0, \"bust_min\": 86.0, \"bust_max\": 91.0}, {\"name\": \"L\", \"hip_min\": 96.0, \"hip_max\": 101.0, \"bust_min\": 91.0, \"bust_max\": 96.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Design: Abstract marble pattern in black, grey, and white with golden accents\u003c\/li\u003e\n\n\u003cli\u003e✔ Version: Two-piece set (top + bottom)\u003c\/li\u003e\n\n\u003cli\u003e✔ Application: Beach, lake, pool, vacation – designed for relaxed swimming days\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, the Women's Marble Pattern Bikini Set can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini loses its fit with movement\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eA set designed for calm wearing comfort – by the lake and in the pool.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top no longer fits the same after an hour in the water\u003c\/li\u003e\n\n\u003cli\u003eThe waistband digs in after prolonged wear in certain places\u003c\/li\u003e\n\n\u003cli\u003eOnline size specifications for bikinis rarely match reality\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eIt usually doesn't happen the first time you go into the water, but after the third time: The top rides up slightly, the waistband sits differently than before. On a long day at the lake, this can become a subtle nuisance – not dramatic, but noticeable.\u003c\/p\u003e\n\n\u003cp\u003ePart of this has to do with the cut, part with the material. Bikinis designed for light movement and relaxed swimming days behave differently than those primarily designed for intense water activities. It's less about quality in an abstract sense, and more about what a set is actually designed for.\u003c\/p\u003e\n\n\u003cp\u003eThis marble pattern bikini set is designed for relaxed comfort situations – for the lake, the pool, vacation days. It's not a sports bikini for intensive swimming or water skiing; if that's what you're looking for, a specialized sports bikini would probably be a more suitable approach. However, if you want a set that stays put during moderate movement in the water and still feels similar after a long afternoon at the beach as it did in the morning – then this set might be a good fit.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eHow much movement in the water is involved in your typical swimming days – leisurely or active?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight for an initial indication.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eCheck the available sizes and use the calculator as a guide – not as the final word.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Still fits similarly in the evening as in the morning after a long day at the lake\u003c\/li\u003e\n\n\u003cli\u003e→ The marble pattern looks warmer in the water than in the photo\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Abstract marble pattern – subtly patterned, not loud\u003c\/li\u003e\n\n\u003cli\u003e✅ Timeless black, grey, and white with golden accents\u003c\/li\u003e\n\n\u003cli\u003e✅ Designed for relaxed swimming days at the lake, pool, and on vacation\u003c\/li\u003e\n\n\u003cli\u003e✅ Can be combined with a beach skirt or light linen trousers\u003c\/li\u003e\n\n\u003cli\u003e✅ Size calculator available as a guide\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not a sports bikini – less suitable for competitive swimming or intense water activities\u003c\/li\u003e\n\n\u003cli\u003e⚠️ If you prefer strong colors or floral patterns, you'll find a different style here\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Material specifications currently not fully specified – observe care instructions\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical of similar\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Women's Marble Pattern Bikini Set\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips after swimming\u003c\/td\u003e\n\n\u003ctd\u003eDesigned for a stable fit during moderate movement in the water\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePattern looks different online than in reality\u003c\/td\u003e\n\n\u003ctd\u003eNatural coloring in black, grey, and white – usually similar to the image\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eBikini sizes are difficult to estimate online\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator with height and weight as a guide\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSet looks too conspicuous or too pale on the beach\u003c\/td\u003e\n\n\u003ctd\u003eMarble pattern with gold accents – calm, but not colorless\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe considered exactly such situations with the Women's Marble Pattern Bikini Set – so you have to readjust less when wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the Women's Marble Pattern Bikini Set feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash 30°C, do not tumble dry – observe care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 78% Polyamide, 22% Elastane\u003cbr\u003e• Care: Delicate wash 30 °C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay be a good fit if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003eWomen's Marble Pattern Bikini Set\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being intrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and longevity\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct details at a glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Delicate wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about Women's Marble Pattern Bikini Set\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for this marble pattern bikini set?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eOur size calculator gives you an initial indication based on your height and weight. Since bikini sizes can vary depending on the cut, it is advisable to choose one size larger if in doubt – especially if you prefer a slightly more relaxed fit.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the waistband fit during movement in the water?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe set is designed for relaxed movement – swimming, walking, standing up. During moderate water activity, it generally stays put. For intensive swimming or sporty water activities, a specialized sports bikini may be more suitable.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for this marble pattern bikini set?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water, then wash on a delicate cycle at 30 °C. Do not tumble dry – let it air dry flat to maintain its shape and pattern.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs this simple Women's Marble Pattern Bikini Set also suitable as a gift?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe marble pattern in black, grey, and white with gold accents looks timeless and unobtrusive – it is well suited as a gift if you are looking for something that doesn't immediately look like generic swimwear. It's best to use the size calculator to estimate the fit.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat water activities is this bikini set suitable for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe set is designed for relaxed swimming days – lake, pool, vacation. It is not a sports bikini for competitive swimming or intense water sports. Those who swim intensively regularly should consider a bikini specifically designed for that purpose.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan I choose the top and bottom in different sizes?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe set can be combined in different sizes depending on the available variations. Use our size calculator as a guide and consult the size chart – especially if the top and bottom require different proportions.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003eLarge Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwired Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Black, grey, and white marbling with fine gold accents – lively in the water under light\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Subtle pattern that can be combined with wide linen trousers or a beach skirt\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce to order – this reduces overproduction and warehouse stock, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – information checked in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the Women's Marble Pattern Bikini Set could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eWomen's Marble Pattern Bikini Set\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€33.99\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the Women's Marble Pattern Bikini Set can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20\/05\/2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Bikini Set Marmormuster Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/20baa6e2-0374-4ed7-881b-4d42c660df06.jpg?v=1717174887\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"33.99\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Black-and-white \/ L","offer_id":45418817028364,"sku":"CJYD196458109IR","price":33.99,"currency_code":"EUR","in_stock":true},{"title":"Black-and-white \/ M","offer_id":45418817061132,"sku":"CJYD196458108HS","price":33.99,"currency_code":"EUR","in_stock":true},{"title":"Black-and-white \/ S","offer_id":45418817093900,"sku":"CJYD196458107GT","price":33.99,"currency_code":"EUR","in_stock":true},{"title":"Violet \/ L","offer_id":45418816930060,"sku":"CJYD196458106FU","price":33.99,"currency_code":"EUR","in_stock":true},{"title":"Violet \/ M","offer_id":45418816962828,"sku":"CJYD196458105EV","price":33.99,"currency_code":"EUR","in_stock":true},{"title":"Violet \/ S","offer_id":45418816995596,"sku":"CJYD196458104DW","price":33.99,"currency_code":"EUR","in_stock":true},{"title":"Emerald green \/ L","offer_id":45418816831756,"sku":"CJYD196458112LO","price":33.99,"currency_code":"EUR","in_stock":true},{"title":"Emerald green \/ M","offer_id":45418816864524,"sku":"CJYD196458111KP","price":33.99,"currency_code":"EUR","in_stock":true},{"title":"Emerald green \/ S","offer_id":45418816897292,"sku":"CJYD196458110JQ","price":33.99,"currency_code":"EUR","in_stock":true},{"title":"Sky blue \/ L","offer_id":45418816733452,"sku":"CJYD196458103CX","price":33.99,"currency_code":"EUR","in_stock":true},{"title":"Sky blue \/ M","offer_id":45418816766220,"sku":"CJYD196458102BY","price":33.99,"currency_code":"EUR","in_stock":true},{"title":"Sky blue \/ S","offer_id":45418816798988,"sku":"CJYD196458101AZ","price":33.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/20baa6e2-0374-4ed7-881b-4d42c660df06.jpg?v=1717174887"},{"product_id":"bikini-damen-gebunden-schwarz-und-weiss","title":"Bikini Marble Pattern Women","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a high-waisted bikini sit still even after a long day at the beach?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003eYou might know that calm feeling when a bikini just stays where it belongs – without needing to be tugged at by the water.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eThe difference often only becomes apparent over the course of the day – when getting up from the sand, jumping into the water, or sitting down on a towel.\u003c\/p\u003e\n\n  \u003ch2\u003eWomen's High-Waisted Bikini – Turquoise, White, and Black Marble Pattern for Beach and Lake\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nHigh waistband for a calmer fit when moving – the abstract marble pattern in turquoise, white, and black gives it a subtle individuality. The fabric, made of 78% polyamide and 22% elastane, adapts to the body shape without constricting.\u003c\/p\u003e\n\n\u003cp\u003eThe marble pattern consists of flowing lines that don't repeat in any section – turquoise and black on a white background, subtle enough not to be overly noticeable, but distinctive enough not to appear anonymous. For those who like calm patterns that don't require explanation, this design offers something timeless.\u003c\/p\u003e\n\n\u003cp\u003eOn the shores of Lake Constance, when the light falls flat across the water, the turquoise in the pattern appears vibrant – without the bikini itself being loud. The pattern is designed to blend seamlessly with light linen trousers or simple sandals, without creating a clash. For those who like to combine without overthinking, this provides a calm starting point.\u003c\/p\u003e\n\n\u003cp\u003eOn a lake vacation, having coffee on the terrace afterwards, or pulling a shirt over the wet top – this bikini doesn't demand special staging. It's designed for days when the water matters, not the outfit.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The marble pattern looks different wet than dry – the turquoise tones deepen, giving it a second moment.\u003cbr\u003e• The high waist sits in places where many bikini bottoms tend to ride down – which can result in a calmer wearing experience.\u003cbr\u003e• The design is subtle enough to be combinable with almost anything – not a pattern that overpowers other elements.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you want to estimate the right size: Our size calculator will help you.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"hip_min\": 86.0, \"hip_max\": 91.0, \"bust_min\": 81.0, \"bust_max\": 86.0}, {\"name\": \"M\", \"hip_min\": 91.0, \"hip_max\": 96.0, \"bust_min\": 86.0, \"bust_max\": 91.0}, {\"name\": \"L\", \"hip_min\": 96.0, \"hip_max\": 101.0, \"bust_min\": 91.0, \"bust_max\": 96.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: 78% polyamide, 22% elastane\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Delicate wash 30 °C, do not tumble dry\u003c\/li\u003e\n\n\u003cli\u003e✔ Cut: high waistband, marble pattern in turquoise-white-black\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size fit you, the women's marble pattern bikini can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini doesn't stay where it belongs in the water\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eFit, cut, and pattern – what can work together.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top slips when swimming\u003c\/li\u003e\n\n\u003cli\u003eThe waistband digs in or rides up during the day\u003c\/li\u003e\n\n\u003cli\u003eOrdered online, but the size still doesn't fit\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou go from your towel into the water, briefly dive under – and afterwards, something about the fit isn't right. Top shifted, bottoms too low, waistband rolled up. This happens particularly when the cut and material are not coordinated.\u003c\/p\u003e\n\n\u003cp\u003eLow-waisted bikini bottoms have less contact surface on the body – when moving in the water or getting up from the sand, this can lead to more adjustments. A higher waistband is designed for more contact area and can help reduce this effect – it's not a guarantee, but a guideline.\u003c\/p\u003e\n\n\u003cp\u003eThis high-waisted bikini is designed for calm water days at the lake or beach – less for intensive water sports activities like diving or surfing. If you prefer a sporty, brief cut, this model may not be your style.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDo you prefer to wear bikini bottoms high or low – and what does that mean for your fit in the water?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eCheck the available sizes and choose the one that suits you.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Calm fit when swimming – top usually stays where it belongs\u003c\/li\u003e\n\n\u003cli\u003e→ Marble pattern looks different wet than dry – gives the bikini a second visual moment\u003c\/li\u003e\n\n\u003cli\u003e→ High waist generally still feels comfortable after a long day at the beach\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ High waistband – designed for a more stable fit during everyday movements in the water\u003c\/li\u003e\n\n\u003cli\u003e✅ Abstract marble pattern in turquoise-white-black – subtle but distinctive\u003c\/li\u003e\n\n\u003cli\u003e✅ 78% polyamide, 22% elastane – elastic and body-hugging under normal use\u003c\/li\u003e\n\n\u003cli\u003e✅ Top and bottom can be chosen separately – individual size adjustment possible\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Less suitable for intensive water sports or competitive swimming\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer low, brief cuts may be less satisfied with the high waistband\u003c\/li\u003e\n\n\u003cli\u003e⚠️ The marble pattern is subtle – those looking for striking, bold prints will find the opposite here\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Women's Marble Pattern Bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming or surfacing\u003c\/td\u003e\n\n\u003ctd\u003eDesigned for a stable fit during everyday movements in the water – under normal use\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eBikini bottom rides down with movement\u003c\/td\u003e\n\n\u003ctd\u003eHigh waistband with more contact surface – can help keep the fit calmer\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSize difficult to estimate online\u003c\/td\u003e\n\n\u003ctd\u003eTop and bottom can be chosen separately, size calculator with height and weight available\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePattern looks faded after one season\u003c\/td\u003e\n\n\u003ctd\u003ePolyamide-elastane material – follow care instructions for longer color retention\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered precisely such situations with the women's marble pattern bikini – so you'll have to adjust it less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the women's marble pattern bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you'll notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSalt water, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang to dry, done. Delicate wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 78% polyamide, 22% elastane\u003cbr\u003e• Care: Delicate wash 30 °C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay be a good fit if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003ewomen's marble pattern bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct details at a glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Delicate wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently asked questions about the women's marble pattern bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for the marble pattern bikini with a high waistband?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eBikinis with a high waistband generally fit a bit more snugly than low-rise models. Our size calculator provides an estimate based on your height and weight. If you're unsure between two sizes, it can help to choose the larger one – especially if you prefer a more relaxed fit.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the high waistband sit when moving in the water?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe high waistband has more contact surface on the body than a low-cut model. With normal movement in the water – swimming, entering the water, getting up – it generally stays put more calmly. The model is less designed for intensive water sports activities.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for a polyamide and elastane bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water, then wash on a delicate cycle at 30 °C. Do not tumble dry – this can affect the elasticity of the material. Washing inside out protects the pattern.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat water activities is this bikini suitable for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe model is designed for calm water days – swimming in the lake, pool, or at the beach. It is less intended for performance-oriented swimming or intensive water sports.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eDoes the marble pattern match different beach outfits?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe abstract marble pattern in turquoise, white, and black is subtle enough to complement light linen tops, solid-colored pareos, or simple beach dresses. For those who like clean combinations, it provides a flexible starting point.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuide\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Abstract marble pattern in turquoise-white-black – flowing lines, no symmetry\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"High waistband – sits above the hip bones, gently shapes the waist\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and warehouse stock, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you find yourself in the scenarios above, the women's marble pattern bikini could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eWomen's Marble Pattern Bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€36.99\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the women's marble pattern bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Bikini Marmormuster Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/IMG-20240610-WA0024.png?v=1750425801\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"36.99\", \"priceCurrency\": \"EUR\"}, \"additionalProperty\": [{\"@type\": \"PropertyValue\", \"name\": \"Pflegehinweis\", \"value\": \"Feinwäsche 30 °C, nicht im Trockner\"}]}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Black-and-white \/ L","offer_id":45418839998732,"sku":"CJYJ150335903CX","price":36.99,"currency_code":"EUR","in_stock":true},{"title":"Black-and-white \/ M","offer_id":45418840031500,"sku":"CJYJ150335902BY","price":36.99,"currency_code":"EUR","in_stock":true},{"title":"Black-and-white \/ S","offer_id":45418840064268,"sku":"CJYJ150335901AZ","price":36.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/IMG-20240610-WA0024.png?v=1750425801"},{"product_id":"marmorierter-bikini-triangel-look","title":"blue tie-dye bikini for women","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini stay in place all day long – whether in the water or on shore?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that calm feeling when a bikini is just there – without you having to look twice.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eOver the course of a beach day, you notice the difference – not when you put it on, but when you go into the water for the second or third time.\u003c\/p\u003e\n\n  \u003ch2\u003eBlue Tie-Dye Bikini for Women – Triangle Cut with a Calm Pattern for the Beach and Lake\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nTriangle top with a tie-dye pattern in deep blue tones – a two-piece bikini for women that is visually understated yet still stands out.\u003c\/p\u003e\n\n\u003cp\u003eThe tie-dye pattern wasn't created as a trend decision, but as a visual statement: blue on blue, slightly blurred, like water on water. The color gradient doesn't look artificial – it's reminiscent of the early morning light on the lake, when the water is still smooth and the colors blend into each other. Anyone familiar with the Lake Constance region knows exactly this tranquility.\u003c\/p\u003e\n\n\u003cp\u003eThe triangle shape keeps the design light and feminine, without revealing too much. The marbled blue tie-dye bikini can be paired with a white linen cover-up or simply with light shorts – it doesn't need elaborate accessories. The blue tones range from medium blue to almost dark blue, making it versatile and wearable summer after summer.\u003c\/p\u003e\n\n\u003cp\u003eWhen lying on a towel, the pattern looks calm and present at the same time. When standing up and going into the water, the look remains exactly the same – no pattern that appears garish when wet. For those planning a weekend at the lake or a longer beach vacation, such a bikini is a companion that is neither too much nor too little.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice\u003c\/h3\u003e\n\n\u003cp\u003e• The pattern looks different when wet than dry – calmer, deeper, almost like dark lake water.\u003cbr\u003e• The triangle cut provides freedom without revealing too much – for those who prefer a discreet style.\u003cbr\u003e• The blue tones match almost everything – sand colors, white, natural green – without dominating.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you like the pattern and are looking for a bikini that remains simple without being boring – check out the available sizes.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"hip_min\": 70.0, \"hip_max\": 80.0, \"waist_min\": 66.0, \"waist_max\": 76.0}, {\"name\": \"M\", \"hip_min\": 74.0, \"hip_max\": 85.0, \"waist_min\": 70.0, \"waist_max\": 80.0}, {\"name\": \"L\", \"hip_min\": 78.0, \"hip_max\": 90.0, \"waist_min\": 74.0, \"waist_max\": 84.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Top material: 82% polyester (polyester fiber)\u003c\/li\u003e\n\n\u003cli\u003e✔ Lining: 18% polyester\u003c\/li\u003e\n\n\u003cli\u003e✔ Cut: Triangle top, two-piece bikini\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size are right for you, a blue tie-dye bikini for women can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini loses its fit in the water\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eFit, pattern, and shape – what really matters when buying.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top fits well in the morning, but less so after swimming\u003c\/li\u003e\n\n\u003cli\u003eOnline bikini sizes are difficult to estimate\u003c\/li\u003e\n\n\u003cli\u003eThe pattern looks good dry, but flat when wet\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eMany know it: the bikini fits well when putting it on, but after the first long swim or an innocent jump into the water, something changes – the top twists slightly, the bottom slips. You adjust it, straighten it, and then think more about the fit than the water.\u003c\/p\u003e\n\n\u003cp\u003eThis is often less due to the size than to the cut and material composition. Soft fabrics with good stretch can adapt better – a triangle top with tie straps can also be individually adjusted, which is not possible with pre-formed underwire tops.\u003c\/p\u003e\n\n\u003cp\u003eThis blue tie-dye bikini is designed for everyday wear by the water – for the beach, lake, and pool, under normal conditions. It is not designed for competitive swimming or intensive water sports. If you need support for intense movements in the water, a sports swimsuit or a bikini with fixed straps might be a better choice. If you prefer relaxed beach days, occasional swimming, and plenty of time on shore, this bikini might be a good fit.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDoes the feeling you imagine match a light triangle cut – or are you looking for firm support for active water days?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eTake your time to look at the available options – without pressure.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Stays calm and in place after a long day at the beach\u003c\/li\u003e\n\n\u003cli\u003e→ Pattern looks the same in the water as in the photo\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Subtle tie-dye pattern in blue tones – calm, but not colorless\u003c\/li\u003e\n\n\u003cli\u003e✅ Triangle cut with tie straps – individually adjustable for normal use\u003c\/li\u003e\n\n\u003cli\u003e✅ Lightweight polyester fabric with lining – designed for beach, lake, and pool\u003c\/li\u003e\n\n\u003cli\u003e✅ Timeless design that can be combined with neutral colors\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not designed for competitive swimming or intensive water sports\u003c\/li\u003e\n\n\u003cli\u003e⚠️ If you prefer firm support from underwire or wide straps, you won't find a structured top here\u003c\/li\u003e\n\n\u003cli\u003e⚠️ If you prefer bold, colorful prints, the pattern might be perceived as too subtle\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Blue Tie-Dye Bikini for Women\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when moving in the water\u003c\/td\u003e\n\n\u003ctd\u003eTriangle cut with tie straps – fit can be individually adjusted\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePattern looks flat or unsightly when wet\u003c\/td\u003e\n\n\u003ctd\u003eTie-dye pattern in blue tones – looks deeper when wet, remains visible\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eBikini sizes are difficult to estimate online\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator with height and weight as a guide\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eDesigns look outdated after one season\u003c\/td\u003e\n\n\u003ctd\u003eTimeless tie-dye pattern in blue – generally wearable longer than trendy prints\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered exactly these situations with the blue tie-dye bikini for women – so you have to adjust less when wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the blue tie-dye bikini for women feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: this is a good fit.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSalt water, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash at 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: polyester fiber (polyester)Fabric composition content: 82 (%)Lining name: PolyesterLining composition: polyester fiber (polyester)Lining ingredient content: 18 (%)Applicable scene: swimming and wadingColor: pink, blue, pink blue\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay be a good fit if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003eblue tie-dye bikini for women\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about the Blue Tie-Dye Bikini for Women\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for the blue tie-dye bikini for women?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eUse our size calculator with your height and weight as a guide. If unsure between two sizes, the larger option is generally recommended to allow enough room in the top. The top and bottom can also be chosen separately, depending on availability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I care for the bikini properly?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eRinse briefly with clear, lukewarm water after wearing. Wash at 30°C on a delicate cycle, do not tumble dry. This keeps the material elastic and the color intensity of the tie-dye pattern longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs the marbled triangle bikini blue also suitable for active water sports?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThis bikini is designed for relaxed wear by the water – swimming, lying on the beach, occasional splashing. It is less suitable for intensive water sports or competitive swimming; models with fixed straps or underwire constructions are better for that.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the tie-dye pattern look when the bikini is wet?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe pattern changes slightly when wet – the blue tones appear deeper and darker, similar to how wet fabric refracts light differently. The pattern remains visible, and the look stays calm.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan I combine the blue tie-dye bikini for women with other bikini pieces?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes, the triangle top and bottom can generally be combined with other pieces in matching blue or neutral tones. The subtle tie-dye pattern harmonizes well with solid-colored companion pieces in white, sand, or deep blue.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Dunkelblaues Batik-Muster auf Triangel-Oberteil im Sonnenlicht\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Bikini am Bodenseeufer – Muster spiegelt das Wasser wider\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and excess stock, especially for printed items!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the blue tie-dye bikini for women might be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eBlue Tie-Dye Bikini for Women\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€25.99\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the blue tie-dye bikini for women can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20\/05\/2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"blauer Batik Bikini Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/564584073323.jpg?v=1750425180\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"25.99\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"blue marbled \/ L","offer_id":45418850681100,"sku":"CJYDYYLJ00464-Blue-L","price":25.99,"currency_code":"EUR","in_stock":true},{"title":"blue marbled \/ M","offer_id":45418850713868,"sku":"CJYDYYLJ00464-Blue-M","price":25.99,"currency_code":"EUR","in_stock":true},{"title":"blue marbled \/ S","offer_id":45418850746636,"sku":"CJYDYYLJ00464-Blue-S","price":25.99,"currency_code":"EUR","in_stock":true},{"title":"sunrise \/ L","offer_id":45418850779404,"sku":"CJYDYYLJ00464-Pink blue-L","price":25.99,"currency_code":"EUR","in_stock":true},{"title":"sunrise \/ M","offer_id":45418850812172,"sku":"CJYDYYLJ00464-Pink blue-M","price":25.99,"currency_code":"EUR","in_stock":true},{"title":"sunrise \/ S","offer_id":45418850844940,"sku":"CJYDYYLJ00464-Pink blue-S","price":25.99,"currency_code":"EUR","in_stock":true},{"title":"Flamingo pink \/ L","offer_id":45418850877708,"sku":"CJYDYYLJ00464-Pink-L","price":25.99,"currency_code":"EUR","in_stock":true},{"title":"Flamingo pink \/ M","offer_id":45418850910476,"sku":"CJYDYYLJ00464-Pink-M","price":25.99,"currency_code":"EUR","in_stock":true},{"title":"Flamingo pink \/ S","offer_id":45418850943244,"sku":"CJYDYYLJ00464-Pink-S","price":25.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/564584073323.jpg?v=1750425180"},{"product_id":"bikini-triangel-leuchte-uber-dich-hinaus","title":"silver shiny bikini for women","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini that stays put on the beach – and even after swimming?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003eYou might know that calm feeling when a bikini fits without you having to constantly think about it.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eAnd many only notice this over the course of a long day of swimming – when the difference between staying put and needing adjustment becomes noticeable.\u003c\/p\u003e\n\n  \u003ch2\u003eSilver Triangle Bikini for Women – for the Beach, Lake, and Peaceful Summer Days\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nTriangle cut with tie straps – for an adjustable fit, plain silver, shiny surface, light and form-fitting.\u003c\/p\u003e\n\n\u003cp\u003eSilver is not a loud color – and yet it stands out. When the light hits the water and the fabric's sheen briefly flashes, it creates a picture that requires little effort. This silver bikini for women is designed for exactly that moment: a calm, clear look that doesn't impose itself.\u003c\/p\u003e\n\n\u003cp\u003eThe triangle cut with tie straps can be individually adjusted – both top and bottom. The silver appears cooler or warmer depending on the light, but always remains simple. For those who prefer a minimalist look by the water, this shiny silver bikini can be a harmonious companion – whether on Lake Constance, by the pool, or on vacation.\u003c\/p\u003e\n\n\u003cp\u003eAn afternoon by the lake: you lie down, the light changes, the fabric shimmers briefly – subtle yet present. Or when getting up from the deckchair, when the silver lights up for a moment before you go into the water. For some, this is exactly the right mix: not too much, but also not invisible.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The shine varies depending on the light – calm on cloudy days, livelier in the sun.\u003cbr\u003e• The triangle cut can be tied – adjustable both top and bottom.\u003cbr\u003e• The plain silver can be combined with beach towels, sarongs, or tops in many colors.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eChoose your size using the size calculator – S, M, and L are available.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"bust_min\": 85.0, \"bust_max\": 91.0, \"waist_min\": 65.0, \"waist_max\": 71.0, \"length_min\": 20.0, \"length_max\": 26.0}, {\"name\": \"M\", \"bust_min\": 89.0, \"bust_max\": 95.0, \"waist_min\": 71.0, \"waist_max\": 77.0, \"length_min\": 21.0, \"length_max\": 27.0}, {\"name\": \"L\", \"bust_min\": 94.0, \"bust_max\": 100.0, \"waist_min\": 77.0, \"waist_max\": 83.0, \"length_min\": 22.0, \"length_max\": 28.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Cut: Triangle bikini with tie straps\u003c\/li\u003e\n\n\u003cli\u003e✔ Color: Silver, plain, shiny\u003c\/li\u003e\n\n\u003cli\u003e✔ Available sizes: S, M, L\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, a shiny silver women's bikini can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen bikinis slip in the water or don't fit after a few days\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eWhat really matters when buying a silver triangle bikini.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top slips while swimming and constantly needs adjusting\u003c\/li\u003e\n\n\u003cli\u003eEstimating bikini sizes online is difficult\u003c\/li\u003e\n\n\u003cli\u003eThe fabric loses its shine or shape after one season\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eMany know this feeling: you go into the water, briefly dive under – and afterwards, something isn't sitting quite right. The top twists, the bottom slips. You spend more time readjusting than enjoying the actual day at the beach. This isn't a question of price, but often a question of the cut and the right size.\u003c\/p\u003e\n\n\u003cp\u003eTriangle bikinis with tie straps react to this situation somewhat differently than those with a fixed fit: they can be adjusted individually – tighter or looser, depending on how it feels. This can help the fit remain more stable during normal movement in the water. Not a promise, but a guideline.\u003c\/p\u003e\n\n\u003cp\u003eIf you plan more intensive water activities – surfing, diving, or longer swimming distances – a triangle bikini might not be the first choice. For quieter days at the lake, pool, or beach, it can work well. However, those with very pronounced body proportions between the top and bottom might find a more precise solution in a separately tailored model.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDoes the triangle cut suit how you spend your day at the beach?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut \u0026amp; size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eAvailable sizes: S, M, L.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay special attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Top stays put during normal movement in the water\u003c\/li\u003e\n\n\u003cli\u003e→ Simple silver look matches many beach styles\u003c\/li\u003e\n\n\u003cli\u003e→ Tie straps can help with size uncertainty\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you make a decision\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Triangle cut with tie straps – individually adjustable\u003c\/li\u003e\n\n\u003cli\u003e✅ Simple silver look, plain and shiny – understated yet present\u003c\/li\u003e\n\n\u003cli\u003e✅ Available in S, M, and L\u003c\/li\u003e\n\n\u003cli\u003e✅ Designed for relaxed days at the lake, pool, or beach with normal activity\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Less suitable for intensive water sports or competitive swimming\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer fixed straps might find less support in a triangle cut\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those looking for striking patterns or bold colors will not find them here\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical with similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Shiny silver women's bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips while swimming and needs readjusting\u003c\/td\u003e\n\n\u003ctd\u003eTie straps allow for individual fit – adjustable before going into the water\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eBikini sizes are difficult to estimate online\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator with height and weight as guidance – S, M, L available\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eShiny fabrics often appear too conspicuous\u003c\/td\u003e\n\n\u003ctd\u003ePlain silver without patterns – the shine appears calm and understated depending on the light\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered exactly these situations with our shiny silver women's bikini – so you'll have to adjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the shiny silver women's bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you'll notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSalt water, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang, done. Delicate wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 2 numbers\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eCould be a good fit if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003eshiny silver women's bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about shiny silver women's bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for a shiny silver women's triangle bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eOur size calculator helps you estimate – enter your height and weight. Triangle bikinis with tie straps can be adjusted in width, so if you are unsure between two sizes, the smaller choice is often more suitable. Available in S, M, and L.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the waistband sit during movement in the water?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe triangle cut with tie straps can be tightened individually, which can contribute to a more stable fit during normal movement in the water. For intensive water sports, a triangle cut is generally less suitable.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I care for this shiny women's bikini correctly?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eRinse briefly with clear water after wearing, then wash on a delicate cycle at 30°C. Do not tumble dry. This will help the fabric stay in shape longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs this simple silver triangle bikini also suitable for Lake Constance?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes, the bikini is designed for peaceful days at the lake, pool, or beach. For very active water activities, a triangle cut is less suitable.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eDoes the fabric lose its silver shine over time?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eHow long the shine lasts depends, among other things, on care. Regular rinsing after wearing and washing at 30°C on a gentle cycle can help the fabric stay beautiful longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Silver shimmer in backlight on the water – brief flash, then calm\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Triangle shape on the loungers – simple, no pattern, just light on the fabric\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce to order – this reduces overproduction and inventory for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you identify with the scenarios above, a shiny silver women's bikini could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eShiny silver women's bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€27.99\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        In the end, it's not about the garment itself, but about the moments you experience in it. \n        We hope that a shiny silver women's bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"silber glänzender Bikini Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/1ddfe1cc-23b3-4e7a-a1bb-ba5a3f1aa7a3.jpg?v=1750424726\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"27.99\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Black \/ L","offer_id":45418876797196,"sku":"CJYJ197168109IR","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"Black \/ M","offer_id":45418876829964,"sku":"CJYJ197168108HS","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"Black \/ S","offer_id":45418876862732,"sku":"CJYJ197168107GT","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"rose \/ L","offer_id":45418876895500,"sku":"CJYJ197168106FU","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"rose \/ M","offer_id":45418876928268,"sku":"CJYJ197168105EV","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"rose \/ S","offer_id":45418876961036,"sku":"CJYJ197168104DW","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"Snow white \/ L","offer_id":45418876993804,"sku":"CJYJ197168103CX","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"Snow white \/ M","offer_id":45418877026572,"sku":"CJYJ197168102BY","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"Snow white \/ S","offer_id":45418877059340,"sku":"CJYJ197168101AZ","price":27.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/1ddfe1cc-23b3-4e7a-a1bb-ba5a3f1aa7a3.jpg?v=1750424726"},{"product_id":"bikini-sommerlook","title":"Turquoise Bikini Floral Print","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini that stays put at the beach – even when you go into the water?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that peaceful feeling when a bikini works all day long without you having to think twice about it.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eAnd that's exactly where many people notice the difference – not when they first put it on, but after a long day at the beach.\u003c\/p\u003e\n\n  \u003ch2\u003eTurquoise Floral Print Bikini – for Beach, Lake, and Summer Days\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nA two-piece summer bikini with a floral pattern – the fresh turquoise and the flowers give the set a light, understated appeal. The fabric feels soft against the skin, offers freedom of movement, and looks calm and proportional on the body.\u003c\/p\u003e\n\n\u003cp\u003eThe floral pattern on a turquoise background was inspired by imagery reminiscent of warm summer days by the water – waking up in a hammock, the first dip in a cool lake, sitting on a rock by the shore. The color is fresh without being loud, the pattern is present without dominating. Together, they create a relaxed look – even when you haven't put in much effort.\u003c\/p\u003e\n\n\u003cp\u003eThe floral pattern has a distinct tone: it pairs just as well with a white beach towel as it does with a beige linen shirt that you can quickly throw on if you're heading straight for ice cream or coffee after the lake. The turquoise shade is clear enough to stand on its own – and subtle enough not to demand attention. If you prefer more structured, geometric patterns or bold primary colors, you might be looking for something different.\u003c\/p\u003e\n\n\u003cp\u003eBy the lakeside, when you come back from the water and look for your handbag. On the balcony while reading, as the sun gets low. On the last day of vacation, when you take one last quick swim before moving on. In such moments, a floral print bikini in turquoise is not a statement – it's simply the right thing to have with you.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The pattern doesn't draw attention to itself – it simply sits calmly on the body while you're in the water.\u003cbr\u003e• The color remains fresh in your memory – not because it stands out, but because it was harmonious.\u003cbr\u003e• It's not a bikini you put on specifically for a photo – but one you put on because it's there and fits well.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you want to know which size is right for you: Our size calculator will help you.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"bust_min\": 82.0, \"bust_max\": 87.0, \"waist_min\": 74.0, \"waist_max\": 79.0, \"hip_min\": 62.0, \"hip_max\": 67.0, \"height_min\": 150.0, \"height_max\": 160.0, \"weight_min\": 90.0, \"weight_max\": 105.0}, {\"name\": \"M\", \"bust_min\": 87.0, \"bust_max\": 92.0, \"waist_min\": 79.0, \"waist_max\": 84.0, \"hip_min\": 67.0, \"hip_max\": 72.0, \"height_min\": 155.0, \"height_max\": 160.0, \"weight_min\": 105.0, \"weight_max\": 115.0}, {\"name\": \"L\", \"bust_min\": 91.0, \"bust_max\": 96.0, \"waist_min\": 84.0, \"waist_max\": 89.0, \"hip_min\": 71.0, \"hip_max\": 76.0, \"height_min\": 160.0, \"height_max\": 165.0, \"weight_min\": 115.0, \"weight_max\": 125.0}, {\"name\": \"XL\", \"bust_min\": 96.0, \"bust_max\": 101.0, \"waist_min\": 89.0, \"waist_max\": 94.0, \"hip_min\": 76.0, \"hip_max\": 81.0, \"height_min\": 160.0, \"height_max\": 165.0, \"weight_min\": 125.0, \"weight_max\": 135.0}, {\"name\": \"2XL\", \"bust_min\": 101.0, \"bust_max\": 106.0, \"waist_min\": 94.0, \"waist_max\": 99.0, \"hip_min\": 81.0, \"hip_max\": 86.0, \"height_min\": 165.0, \"height_max\": 170.0, \"weight_min\": 135.0, \"weight_max\": 150.0}, {\"name\": \"3XL\", \"bust_min\": 106.0, \"bust_max\": 111.0, \"waist_min\": 99.0, \"waist_max\": 104.0, \"hip_min\": 86.0, \"hip_max\": 91.0, \"height_min\": 165.0, \"height_max\": 170.0, \"weight_min\": 150.0, \"weight_max\": 170.0}, {\"name\": \"4XL\", \"bust_min\": 111.0, \"bust_max\": 116.0, \"waist_min\": 104.0, \"waist_max\": 109.0, \"hip_min\": 91.0, \"hip_max\": 96.0, \"height_min\": 170.0, \"height_max\": 175.0, \"weight_min\": 170.0, \"weight_max\": 190.0}, {\"name\": \"5XL\", \"bust_min\": 116.0, \"bust_max\": 121.0, \"waist_min\": 109.0, \"waist_max\": 114.0, \"hip_min\": 96.0, \"hip_max\": 101.0, \"height_min\": 170.0, \"height_max\": 175.0, \"weight_min\": 190.0, \"weight_max\": 210.0}, {\"name\": \"6XL\", \"bust_min\": 121.0, \"bust_max\": 126.0, \"waist_min\": 114.0, \"waist_max\": 119.0, \"hip_min\": 101.0, \"hip_max\": 106.0, \"height_min\": 170.0, \"height_max\": 175.0, \"weight_min\": 210.0, \"weight_max\": 230.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: 82% Polyester (polyester fabric, 200 g\/m²)\u003c\/li\u003e\n\n\u003cli\u003e✔ Fit: Two-piece bikini set, floral pattern on a turquoise background\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Rinse briefly with clear water after wearing, delicate wash 30 °C, do not tumble dry\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, the Turquoise Floral Print Bikini can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a Bikini Doesn't Play Along in the Water\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eFit, comfort, and floral design for calm summer days.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top slips when swimming\u003c\/li\u003e\n\n\u003cli\u003eIt's hard to estimate the size online\u003c\/li\u003e\n\n\u003cli\u003eThe waistband digs in after a few hours\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou go into the water, briefly dive under – and then something isn't quite right anymore. The top has shifted, the waistband suddenly sits differently, you adjust it. It's not a drama, but it costs attention that you'd rather put elsewhere.\u003c\/p\u003e\n\n\u003cp\u003ePart of it is due to the cut, part to the material. Fabrics with low elastane content lose their fit faster in water. Straps without neck support can give way during movement. These are not flaws – they are characteristics that are more or less relevant depending on the activity.\u003c\/p\u003e\n\n\u003cp\u003eThis bikini is designed for normal beach use – swimming, lying down, getting up, going back into the water. It is less intended for very sporty water activities or intensive swimming in fast lanes. If you are looking for everyday comfort by the water rather than athletic performance, it can be a suitable option. If, however, you are looking for a bikini for jumping off a pier or regular laps, a technically oriented model might be the better choice.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eWould a calmly fitting bikini with a floral design be right for your summer?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eAvailable sizes: S, M, L, XL.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay special attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Stays put calmly even after a long day at the beach\u003c\/li\u003e\n\n\u003cli\u003e→ Floral pattern looks understated and proportional on the body\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Floral pattern in fresh turquoise – subtle enough for relaxed vacation days\u003c\/li\u003e\n\n\u003cli\u003e✅ Designed for normal beach use – swimming, lying down, walking by the shore\u003c\/li\u003e\n\n\u003cli\u003e✅ Soft polyester fabric with stretch – comfortable on the skin during normal use\u003c\/li\u003e\n\n\u003cli\u003e✅ Simple look that is easy to combine\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not designed for competitive swimming or intensive water activities\u003c\/li\u003e\n\n\u003cli\u003e⚠️ No separate size selection for top and bottom for this model\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer bold patterns or sporty cuts may not find what they are looking for here\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical with similar\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Turquoise Floral Print Bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips during movement in water\u003c\/td\u003e\n\n\u003ctd\u003eDesigned for stable fit during normal beach use – including swimming and movement\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSizes online hard to estimate, especially with Asian size charts\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator with height and weight as guidance; when in doubt, choose one size larger\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eWaistband digs in or feels uncomfortable after a few hours\u003c\/td\u003e\n\n\u003ctd\u003eStretchable polyester fabric that can adapt to the body shape with normal wear\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered precisely such situations with the Turquoise Floral Print Bikini – so you have to adjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the Turquoise Floral Print Bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you'll notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang to dry, done. Delicate wash at 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: polyester fiber (polyester)Fabric composition content: 82 (%)Gram weight: 200 (g)Size Information:Note:1. Asian sizes are 1 to 2 sizes smaller than European and American people. Choose the larger size if your size between two sizes. Please allow 2-3 cm differences due to manual measurement.2. Please check the size chart carefully before you buy the item, if you don't know how to choose size, please contact our customer service.3.As you know, the different computers display colors differently, the color of the actual item may vary slightly from the following images.Packing list:Bikini X 1\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eCould be a good fit if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You're looking for a \u003cstrong\u003eTurquoise Floral Print Bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about the Turquoise Floral Print Bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for this turquoise floral print bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eUse our size calculator with your height and weight as a guide. Since Asian sizes are generally 1-2 sizes smaller than European sizes, we recommend choosing one size larger if in doubt. The bikini is available in S, M, L, and XL.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the waistband fit during movement – while walking, swimming, or sitting?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe bikini is designed for normal beach use. During calm swimming, walking, and sitting, the fit generally remains stable. During very dynamic movements or athletic laps, the support may vary – the model is not specifically designed for this.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for a floral print bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eRinse briefly with clear water after wearing. Delicate wash at 30 °C, do not tumble dry. This generally helps maintain color and shape longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs this bikini also suitable for competitive swimming or intensive water activities?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eNot really – the model is designed for relaxed beach days or by the lake, not for athletic lap swimming or very intensive water activities. For the latter, a technically oriented sports bikini would be a more suitable choice.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan I combine this turquoise floral print bikini separately?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe set is offered as a whole. Separate selection of top and bottom in different sizes is not currently provided for this model.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Türkisfarbenes Blumenmuster im Sonnenlicht am Seeufer\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Bikini mit Leinenhemd drüber beim Eisessen nach dem Schwimmen\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce to order – this reduces overproduction and excess stock for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the Turquoise Floral Print Bikini could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eTurquoise Floral Print Bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€27.99\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope the Turquoise Floral Print Bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20\/05\/2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Türkiser Bikini Blumenmuster\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/1623739823840.jpg?v=1750328253\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"27.99\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Blue \/ L","offer_id":45418917495052,"sku":"CJYJ117482403CX","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"Blue \/ M","offer_id":45418917527820,"sku":"CJYJ117482402BY","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"Blue \/ S","offer_id":45418917560588,"sku":"CJYJ117482401AZ","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"Blue \/ XL","offer_id":45418917593356,"sku":"CJYJ117482404DW","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"Snow white \/ L","offer_id":45418917626124,"sku":"CJYJ117482407GT","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"Snow white \/ M","offer_id":45418917658892,"sku":"CJYJ117482406FU","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"Snow white \/ S","offer_id":45418917691660,"sku":"CJYJ117482405EV","price":27.99,"currency_code":"EUR","in_stock":true},{"title":"Snow white \/ XL","offer_id":45418917724428,"sku":"CJYJ117482408HS","price":27.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/1623739823840.jpg?v=1750328253"},{"product_id":"bikini-damen-set-3-teilig-mit-kleid","title":"Women's Striped Maxi Dress Set","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini set that fits just as well by the lake as it did when you first put it on?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that serene feeling when your top and bottom simply stay in place – whether you're going into the water or stretching out on your towel.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eOver the course of a long day at the beach, it often becomes clear how a set really fits – and whether the dress over it still makes sense or has long since become a beach towel.\u003c\/p\u003e\n\n  \u003ch2\u003eWomen's 3-piece Bikini Set with Striped Maxi Dress – for Lake, Beach and Vacation\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this set is made for:\u003c\/strong\u003e\u003cbr\u003e\nA three-piece bikini set with a long striped maxi dress – designed for days when you go straight from the water to coffee without changing. Classic stripes in three calm color variations, sleeveless cut, light on the body.\u003c\/p\u003e\n\n\u003cp\u003eThe stripes are not a loud statement – they rather appear as a pattern you've always known. On the shores of Lake Constance, where the light falls flat over the water, this set blends into the surroundings without disappearing. Three subtle color variations allow a small choice – depending on whether you opt for cooler or warmer tones.\u003c\/p\u003e\n\n\u003cp\u003eThe maxi dress is long enough to go straight from the water to a beach café. The stripes run consistently, no abrupt color changes, no elaborate pattern – the dress makes little visual fuss and adapts to the rhythm of the day. Those who prefer simple patterns and are not looking for a dress with a print or striking logo will find a quiet alternative here.\u003c\/p\u003e\n\n\u003cp\u003eThree concrete situations where the set finds its place: walking along the shore after swimming, sitting on a boat dock with a drink in hand, or on the way from the hotel pool to the beach bar – the dress over the bikini, hands free.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The dress doesn't feel like an effort after putting it on – it's just there.\u003cbr\u003e• The stripes look calm in photos and in real light alike.\u003cbr\u003e• You wear the set all day without thinking about whether you're appropriately dressed.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you are not yet sure about the right size: Our size calculator helps you to estimate which variant suits you.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"bust_min\": 72.0, \"bust_max\": 80.0, \"waist_min\": 60.0, \"waist_max\": 66.0, \"hip_min\": 78.0, \"hip_max\": 85.0}, {\"name\": \"M\", \"bust_min\": 80.0, \"bust_max\": 88.0, \"waist_min\": 64.0, \"waist_max\": 70.0, \"hip_min\": 85.0, \"hip_max\": 91.0}, {\"name\": \"L\", \"bust_min\": 88.0, \"bust_max\": 95.0, \"waist_min\": 68.0, \"waist_max\": 74.0, \"hip_min\": 91.0, \"hip_max\": 97.0}, {\"name\": \"XL\", \"bust_min\": 95.0, \"bust_max\": 103.0, \"waist_min\": 72.0, \"waist_max\": 78.0, \"hip_min\": 97.0, \"hip_max\": 105.0}, {\"name\": \"2XL\", \"bust_min\": 103.0, \"bust_max\": 110.0, \"waist_min\": 76.0, \"waist_max\": 82.0, \"hip_min\": 105.0, \"hip_max\": 112.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: Polyester (fiber), sleeveless\u003c\/li\u003e\n\n\u003cli\u003e✔ Set includes: Bikini top, bikini bottom, maxi dress\u003c\/li\u003e\n\n\u003cli\u003e✔ Pattern: Stripes in three color variations\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eWhen cut and size suit you, the striped maxi dress set for women can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen bikini and dress don't complement each other, both stay in the suitcase\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eA set that goes from morning to evening – without compromising on fit.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top doesn't stay put while swimming\u003c\/li\u003e\n\n\u003cli\u003eThe dress doesn't match the bikini style and lies unused in the suitcase\u003c\/li\u003e\n\n\u003cli\u003eOnline sizing is difficult to estimate, especially for two-piece sets\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eSome people know this: The top fits well in the morning, but after a few laps in the lake, something has shifted. The dress over it is either too short, too tight or simply doesn't fit stylistically – and ends up unused in the backpack after the first day.\u003c\/p\u003e\n\n\u003cp\u003eThis is often less due to the quality of individual pieces, but rather to the fact that the bikini and dress were not designed as a system. Cut, length and pattern do not match – and you only notice this at the lake, not when trying it on at home.\u003c\/p\u003e\n\n\u003cp\u003eThis 3-piece bikini set with striped maxi dress is designed as a unit: top, bottom and dress are coordinated – in pattern, color tone and cut. This can help the set to work all day without you having to readjust. However, if you prefer to combine individual pieces or prefer a patterned bikini with a plain dress, this set may not be for you.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIs a coordinated set what you're looking for for your next vacation – or would you prefer to combine flexibly?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eCheck out the available color variations and choose the one that best suits your vacation mood.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay special attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Still fits snugly after a long day at the beach – no readjusting\u003c\/li\u003e\n\n\u003cli\u003e→ Dress and bikini complement each other visually, as if they had always been together\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Three coordinated pieces – no separate searching necessary\u003c\/li\u003e\n\n\u003cli\u003e✅ Classic striped pattern in three calm color variations\u003c\/li\u003e\n\n\u003cli\u003e✅ Maxi dress allows direct transition from water to café\u003c\/li\u003e\n\n\u003cli\u003e✅ Simple design without striking print or logo\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Less suitable for intensive water sports activities or competitive swimming\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer to combine bikini and dress individually and flexibly will not find a separate assortment here\u003c\/li\u003e\n\n\u003cli\u003e⚠️ No pattern with a strong color statement – for those who consciously prefer striking patterns\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical with similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Striped Maxi Dress Set for Women\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming or moving\u003c\/td\u003e\n\n\u003ctd\u003eSet designed for a snug fit with normal movement – top and bottom coordinated\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eBeach dress and bikini don't match stylistically\u003c\/td\u003e\n\n\u003ctd\u003eAll three pieces designed as a unit in pattern and color tone\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSize hard to estimate for online bikinis\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator with height and weight as a guide\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eIndividual parts have to be laboriously combined and ordered\u003c\/td\u003e\n\n\u003ctd\u003eBikini top, bottom, and maxi dress as a coordinated 3-piece set\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered just such situations with the striped maxi dress set for women – so you have to make fewer adjustments when wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the striped maxi dress set for women feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eConcrete moments when you realize: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even when moving.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSalt water, sun, sand: The fabric retains its shape. No discoloration, no stretching.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash 30°C, do not tumble dry – observe care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: Polyester Fiber (polyester)Sleeve length: sleeveless\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eCould be a good fit if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003estriped maxi dress set for women\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about the Striped Maxi Dress Set for Women\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat is included in the Women's Striped Maxi Dress Set?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe set consists of three pieces: a bikini top, a bikini bottom, and a long striped maxi dress. All three pieces are coordinated in pattern and color tone.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs the Bikini Dress Set available in multiple colors?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes, the set is available in three subtle color variations. The stripes vary in tone and composition depending on the variant – all are designed for a calm, timeless look.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for the 3-piece Women's Bikini Set with Dress?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eUse our size calculator and enter your height and weight – this will give you a good reference point. If you are unsure between two sizes, we generally recommend choosing the larger variant so that the dress falls comfortably.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I care for the Bikini Set with Striped Maxi Dress correctly?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eRinse briefly with clear water after wearing. Wash at 30 °C on a delicate cycle, do not tumble dry. This keeps the material dimensionally stable for longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs the simple Bikini Set with Maxi Dress also suitable for active water activities?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe set is designed for relaxed days by the lake, beach or pool. It is less suitable for intensive water sports activities or competitive swimming – there is swimwear specifically designed for that.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat material is the Striped Maxi Dress Set made of?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe set is made of polyester fiber (polyester). The material is lightweight and well-suited for warm days by the water. Please observe the care instructions – not suitable for tumble drying.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuide\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Even stripes in the light on the shores of Lake Constance\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Long maxi dress in the wind walking from the water to the beach cafe\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and inventory, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you identify with the scenarios above, the striped maxi dress set for women could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eStriped Maxi Dress Set for Women\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€37.99\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the striped maxi dress set for women can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 2026-05-20\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"gestreiftes Maxikleid Set Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/e37321e5-9fb3-47ab-89df-1c1d8e0b4f3e.jpg?v=1714728774\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"37.99\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Blue \/ L","offer_id":45418955505932,"sku":"CJYJ191058703CX","price":37.99,"currency_code":"EUR","in_stock":true},{"title":"Blue \/ M","offer_id":45418955538700,"sku":"CJYJ191058702BY","price":37.99,"currency_code":"EUR","in_stock":true},{"title":"Blue \/ S","offer_id":45418955571468,"sku":"CJYJ191058701AZ","price":37.99,"currency_code":"EUR","in_stock":true},{"title":"Blue \/ XL","offer_id":45418955604236,"sku":"CJYJ191058704DW","price":37.99,"currency_code":"EUR","in_stock":true},{"title":"Pink \/ L","offer_id":45418955637004,"sku":"CJYJ191058707GT","price":37.99,"currency_code":"EUR","in_stock":true},{"title":"Pink \/ M","offer_id":45418955669772,"sku":"CJYJ191058706FU","price":37.99,"currency_code":"EUR","in_stock":true},{"title":"Pink \/ S","offer_id":45418955702540,"sku":"CJYJ191058705EV","price":37.99,"currency_code":"EUR","in_stock":true},{"title":"Pink \/ XL","offer_id":45418955735308,"sku":"CJYJ191058708HS","price":37.99,"currency_code":"EUR","in_stock":true},{"title":"Black \/ L","offer_id":45418955768076,"sku":"CJYJ191058711KP","price":37.99,"currency_code":"EUR","in_stock":true},{"title":"Black \/ M","offer_id":45418955800844,"sku":"CJYJ191058710JQ","price":37.99,"currency_code":"EUR","in_stock":true},{"title":"Black \/ S","offer_id":45418955833612,"sku":"CJYJ191058709IR","price":37.99,"currency_code":"EUR","in_stock":true},{"title":"Black \/ XL","offer_id":45418955866380,"sku":"CJYJ191058712LO","price":37.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/e37321e5-9fb3-47ab-89df-1c1d8e0b4f3e.jpg?v=1714728774"},{"product_id":"bikini-triangel-mit-schnurung-und-wellig-2025","title":"Women's Mesh Bikini","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini that stays put at the beach – and even after a long day?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that calm feeling when a bikini simply fits – without having to think about it throughout the day.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eAnd it's precisely in everyday situations by the water that many notice the difference – not when putting it on, but after the second or third time in the water.\u003c\/p\u003e\n\n  \u003ch2\u003eWomen's Mesh Bikini – Triangle Cut for Lakes, Beaches, and Vacations\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nTriangle top with adjustable lacing – for a customizable fit, fine mesh pattern in a neutral tone, fabric with light elasticity.\u003c\/p\u003e\n\n\u003cp\u003eThe mesh pattern is subtle enough not to be conspicuous – yet present enough to give the cut its own texture. On the shore, where the light hits the water flat, it appears calm and clear. No obtrusive pattern, no strong statement – rather a quiet detail that you discover upon closer inspection.\u003c\/p\u003e\n\n\u003cp\u003eThe neutral color scheme can be combined with many things – a light linen cover-up, a bright beach towel, a simple summer skirt. The triangle cut follows a reduced line that neither stands out nor disappears. For those who don't want their bikini to be the main attraction, this can be a suitable choice.\u003c\/p\u003e\n\n\u003cp\u003eWhether by the lake after work, on a weekend trip to the water, or on vacation for several days – this bikini is designed for uncomplicated wear. You put it on, go into the water, come out, lie in the sun. No tugging, no readjusting after every movement.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The mesh pattern appears lively in the sunlight without dominating – calm elegance on the skin.\u003cbr\u003e• The lacing on the top can be individually adjusted – so the triangle fits exactly as you need it.\u003cbr\u003e• The neutral tone makes combinations at the beach easy – without much thought.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eChoose your size using the size calculator – or check the size chart if you are unsure.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g., 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g., 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g., 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"length_min\": 19.5, \"length_max\": 25.5, \"bust_min\": 85.0, \"bust_max\": 91.0, \"height_min\": 7.0, \"height_max\": 17.0, \"width_min\": 7.199999999999999, \"width_max\": 13.2, \"waist_min\": 65.0, \"waist_max\": 71.0}, {\"name\": \"M\", \"length_min\": 20.5, \"length_max\": 26.5, \"bust_min\": 89.0, \"bust_max\": 95.0, \"height_min\": 8.0, \"height_max\": 18.0, \"width_min\": 8.2, \"width_max\": 14.2, \"waist_min\": 69.0, \"waist_max\": 75.0}, {\"name\": \"L\", \"length_min\": 21.5, \"length_max\": 27.5, \"bust_min\": 94.0, \"bust_max\": 100.0, \"height_min\": 9.0, \"height_max\": 19.0, \"width_min\": 9.2, \"width_max\": 15.2, \"waist_min\": 74.0, \"waist_max\": 80.0}, {\"name\": \"XL\", \"length_min\": 22.5, \"length_max\": 28.5, \"bust_min\": 99.0, \"bust_max\": 105.0, \"height_min\": 10.0, \"height_max\": 20.0, \"width_min\": 10.2, \"width_max\": 16.2, \"waist_min\": 79.0, \"waist_max\": 85.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Cut: Triangle top with adjustable lacing\u003c\/li\u003e\n\n\u003cli\u003e✔ Pattern: fine mesh pattern, neutral color\u003c\/li\u003e\n\n\u003cli\u003e✔ Available sizes: S, M, L, XL\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size fit you, the women's mesh bikini can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini doesn't stay put in the water\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eFit, cut, and a subtle pattern – for carefree days by the water.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top slips even after the first swim\u003c\/li\u003e\n\n\u003cli\u003eThe waistband feels uncomfortably tight after an hour\u003c\/li\u003e\n\n\u003cli\u003eIt's hard to estimate the size online\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eMany know the feeling: you go into the water, briefly dive under – and afterwards the bikini no longer sits as it should. The top pulls in one direction, the waistband has shifted. You adjust it, go back in, adjust it again. This is not an isolated incident, but a common experience with bikinis that are not designed for movement in the water.\u003c\/p\u003e\n\n\u003cp\u003eThe reason often lies in the cut and the lack of ability to actively adjust the fit. A triangle top without adjustable lacing leaves little room for maneuver – either it fits, or it doesn't. In addition, there are size differences between the top and bottom, which are difficult to estimate online.\u003c\/p\u003e\n\n\u003cp\u003eThis mesh bikini features adjustable lacing on the top – so the fit can be individually adjusted, even if you are between two sizes. The bottom can be chosen separately. If you are looking for a bikini that can handle very sporty water activities or competitive swimming, a sports swimsuit with a tight back closure might be a more suitable choice. For calmer swimming days – lake, pool, beach – this cut is generally sufficient.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eHow much movement in the water do you expect from your bikini – and which cut suits that?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eAvailable sizes: S, M, L, XL.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Stays put while walking and sitting on the beach\u003c\/li\u003e\n\n\u003cli\u003e→ Lacing can be readjusted effortlessly after swimming\u003c\/li\u003e\n\n\u003cli\u003e→ Neutral coloring remains combinable after the season\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Triangle top with adjustable lacing – fit can be individually adjusted\u003c\/li\u003e\n\n\u003cli\u003e✅ Top and bottom can be chosen separately – simplifies finding the right size\u003c\/li\u003e\n\n\u003cli\u003e✅ Subtle mesh pattern in a neutral tone – combinable and unobtrusive\u003c\/li\u003e\n\n\u003cli\u003e✅ Designed for calm swimming days at the lake, pool, or beach under normal stress\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Less suitable for intensive swimming or sporty water activities\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer a striking pattern or bold colors will find a very understated look here\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this product is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Women's Mesh Bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips during swimming\u003c\/td\u003e\n\n\u003ctd\u003eAdjustable lacing can help keep the fit more stable even with movement in the water\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSize hard to estimate online\u003c\/td\u003e\n\n\u003ctd\u003eTop and bottom can be chosen separately, size calculator available as a guide\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePattern or color too dominant for everyday wear by the water\u003c\/td\u003e\n\n\u003ctd\u003eNeutral mesh pattern and calm coloring – subtly combinable\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe considered precisely such situations with the women's mesh bikini – so you have to adjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the women's mesh bikini feels in everyday wear\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSalt water, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 2 numbers\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay be a good fit if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003ewomen's mesh bikini\u003c\/strong\u003e with a fit that can suit you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently asked questions about women's mesh bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for the mesh bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eTop and bottom can be selected separately, which simplifies size selection. Our size calculator helps you with height and weight to get an estimate. If you are unsure between two sizes, it can help to choose the larger option for the top and adjust the lacing.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eDoes the triangle top stay put during swimming?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe top is designed with adjustable lacing and can therefore be individually adjusted. During calm swimming and normal movement in the water, it generally sits stably. For very intensive water activities or competitive swimming, a sports swimsuit with a closed back is more suitable.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I care for a mesh bikini properly?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water, then wash on a delicate cycle at 30 °C. Do not tumble dry – lay flat to air dry to maintain shape and elasticity.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eDoes the simple triangle bikini with mesh pattern match different styles?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe neutral color scheme and subtle mesh pattern can be combined with light cover-ups, light summer skirts, or classic beach towels. The cut is deliberately minimalistic – without a particular style statement, but also without disappearing.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs the mesh bikini also suitable for Lake Constance?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe triangle bikini is designed for relaxed wear by the water – whether lake, outdoor pool, or vacation. For calmer swimming days at Lake Constance or similar waters, the cut and material are generally well-suited.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Fine mesh pattern in backlight by the water – calm texture, no loud pattern\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Triangle top with visible lacing – simple lines\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and warehouse stock, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the women's mesh bikini can be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eWomen's Mesh Bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€29.99\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the women's mesh bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 2026-05-20\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Bikini mit Netzmuster Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/O1CN010FPpne2ALhV99zSMU__2201489998187-0-cib.jpg?v=1750327541\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"29.99\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Khaki \/ L","offer_id":45418979852556,"sku":"CJYJ197182103CX","price":29.99,"currency_code":"EUR","in_stock":true},{"title":"Khaki \/ M","offer_id":45418979885324,"sku":"CJYJ197182102BY","price":29.99,"currency_code":"EUR","in_stock":true},{"title":"Khaki \/ S","offer_id":45418979918092,"sku":"CJYJ197182101AZ","price":29.99,"currency_code":"EUR","in_stock":true},{"title":"Khaki \/ XL","offer_id":45418979950860,"sku":"CJYJ197182104DW","price":29.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/O1CN010FPpne2ALhV99zSMU__2201489998187-0-cib.jpg?v=1750327541"},{"product_id":"bikini-damen-new-look2024-triangel","title":"two-tone bikini mint green white","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini that stays put at the lake – and remains calm?\u003c\/p\u003e\u003c\/div\u003e\n\n  \n  \n  \u003ch2\u003eWomen's Triangle Bikini in Mint Green-White – Two-Tone, Simple, for Lake and Beach\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nTriangle cut with adjustable straps – subtle mint green and white in a clean, two-tone design, nylon fabric that feels pleasantly soft.\u003c\/p\u003e\n\n\u003cp\u003eThe mint green-white color combination looks calm and timeless – no frantic pattern, no loud print. Anyone who stands on the shore of Lake Constance in the morning and sees the light on the water might understand why these colors fit so well. Mint green has a cool freshness, white keeps it bright and open. Together, they create an image that needs no explanation.\u003c\/p\u003e\n\n\u003cp\u003eThe triangle cut follows a proven form: not too sporty, not too playful. On the pier for the first jump into the water or on a towel with closed eyes – this design blends in without drawing attention. The mint green adds a subtle accent, the white gives lightness. If you like to keep your summer look minimalist, this bikini can be easily combined with natural colors – sand beige, olive green, light linen.\u003c\/p\u003e\n\n\u003cp\u003eAs a gift for someone who appreciates simple swimwear, this two-tone women's bikini works well when you don't want to make a grand gesture – but simply show that you know what suits the other person. For yourself, it is a calm piece of summer that fits year after year.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The mint green looks fresh in the sunlight without being intrusive – a shade that works equally well on light and dark skin.\u003cbr\u003e• The white component keeps the overall look light – not heavy color blocking, but a calm interplay.\u003cbr\u003e• The design can be worn for seasons without looking \"last year's.\"\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you want to estimate size and cut, our size calculator can help.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g., 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g., 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g., 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"height_min\": 153, \"height_max\": 163, \"weight_min\": 50, \"weight_max\": 60}, {\"name\": \"M\", \"height_min\": 158, \"height_max\": 168, \"weight_min\": 58, \"weight_max\": 68}, {\"name\": \"L\", \"height_min\": 163, \"height_max\": 173, \"weight_min\": 66, \"weight_max\": 76}, {\"name\": \"XL\", \"height_min\": 168, \"height_max\": 178, \"weight_min\": 74, \"weight_max\": 84}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: Nylon, elastic, skin-friendly\u003c\/li\u003e\n\n\u003cli\u003e✔ Cut: Triangle top with adjustable straps\u003c\/li\u003e\n\n\u003cli\u003e✔ Color: Mint green-white, two-tone, solid\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, a two-tone mint green and white bikini can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini doesn't sit well in the water\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eFit, feel, and cut – what really matters when wearing it.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eTop slides up when swimming\u003c\/li\u003e\n\n\u003cli\u003eWaistband presses uncomfortably after a few hours\u003c\/li\u003e\n\n\u003cli\u003eSize hard to estimate online\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eWho hasn't experienced this: You go into the water, dive under, come back up – and then the first thing you do is pull at the top. Not the first time, but at some point during the day it becomes a small habit. The bikini fits, but it doesn't stay put.\u003c\/p\u003e\n\n\u003cp\u003eThis is often less about the size and more about the cut and material. A triangle top with adjustable straps can be better adapted to different proportions than a model with a fixed strap shape. The elastic nylon fabric adapts to movement without stretching out – under normal use like swimming, standing up, or a long day at the beach.\u003c\/p\u003e\n\n\u003cp\u003eThis two-tone bikini in mint green-white is designed for precisely this calm, everyday use: lake, pool, vacation – little effort, secure fit. However, if you are planning very dynamic water activities or intense competitive swimming, a sporty swimsuit with a firm back might be a more suitable choice for you.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDo you prefer a bikini that remains subtle – or should it make a statement?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – just enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eTake your time to browse through the available sizes and options – without any pressure.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay special attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Secure fit even after a long day at the beach\u003c\/li\u003e\n\n\u003cli\u003e→ Color looks fresh in the sunlight without dominating\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you make a decision\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Two-tone, calm design – subtly combinable\u003c\/li\u003e\n\n\u003cli\u003e✅ Triangle cut with adjustable straps for an adaptable fit\u003c\/li\u003e\n\n\u003cli\u003e✅ Elastic nylon – adapts well under normal use\u003c\/li\u003e\n\n\u003cli\u003e✅ Simple mint green-white – timelessly wearable over several seasons\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not designed for intense competitive swimming or performance swimming\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer striking prints or patterns will find a more minimalist design here\u003c\/li\u003e\n\n\u003cli\u003e⚠️ For very dynamic water activities, a sporty swimsuit may be more suitable\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ two-tone mint green white bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slides up when swimming\u003c\/td\u003e\n\n\u003ctd\u003eAdjustable triangle straps can be adapted to different proportions\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eBikini sizes hard to estimate online\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator with height and weight as guidance\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eFabric feels unpleasantly stiff when wet\u003c\/td\u003e\n\n\u003ctd\u003eElastic nylon – remains soft and flexible under normal use\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered precisely these situations with the two-tone mint green and white bikini – so you'll have to adjust less when wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the two-tone mint green and white bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you'll notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash at 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: Skin-friendly, elastic polyamide – quick-drying \u0026amp; easy to care for\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay be a good fit if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003etwo-tone mint green white bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about the Two-Tone Mint Green White Bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat distinguishes this two-tone mint green-white bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe bikini combines a calm mint green with white in a two-tone, simple design. The triangle cut is adjustable, the material is an elastic nylon that feels pleasant on the skin – without appearing stiff or tight.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat activities is this simple triangle bikini for women in mint green and white suitable for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eIt is designed for relaxed use at the lake, pool, or beach – swimming, sunbathing, strolling along the shore. For intense competitive swimming or very dynamic water activities, a sporty swimsuit with a firm back is generally more suitable.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for the bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eSince tops and bottoms often require different sizes, it's worth considering both separately. Our size calculator will help you with this – just enter your height and weight. If unsure, going one size up can be a comfortable option.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I care for this bikini properly?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eRinse briefly with clear water after wearing. Machine wash at 30 °C on a delicate cycle is possible. Do not tumble dry – air drying preserves the shape and material longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the waistband sit when moving?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe elastic nylon fabric adapts well under normal use. The adjustable triangle strap can be adapted to different proportions, so the fit usually remains secure – even when swimming or getting up from the beach towel.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Mint green top in sunlight on Lake Constance shore\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"White bottom contrast on sand-colored background\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce to order – this reduces overproduction and inventory for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the two-tone mint green and white bikini could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003etwo-tone mint green white bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€30.99\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the two-tone mint green and white bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"zweifarbiger Bikini mintgrün weiß\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/O1CN01glWl9y2ALhUtmQK2i__2201489998187-0-cib.jpg?v=1714728770\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"30.99\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Marshmallow \/ L","offer_id":45418998726924,"sku":"CJYJ197185303CX","price":30.99,"currency_code":"EUR","in_stock":true},{"title":"Marshmallow \/ M","offer_id":45418998759692,"sku":"CJYJ197185302BY","price":30.99,"currency_code":"EUR","in_stock":true},{"title":"Marshmallow \/ S","offer_id":45418998792460,"sku":"CJYJ197185301AZ","price":30.99,"currency_code":"EUR","in_stock":true},{"title":"Marshmallow \/ XL","offer_id":45418998825228,"sku":"CJYJ197185304DW","price":30.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/O1CN01glWl9y2ALhUtmQK2i__2201489998187-0-cib.jpg?v=1714728770"},{"product_id":"bikini-blumenmuster-3-teilig-must-have-2024","title":"Women's Floral Print Bikini","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a floral bikini stay put on the beach just as well as when you first put it on?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that calm feeling when a bikini simply moves with you – while swimming, getting up from the sunlounger, throughout the entire day.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eAnd it's precisely on such days that many notice the difference – not at first glance, but after a few hours in the water and sun.\u003c\/p\u003e\n\n  \u003ch2\u003eWomen's Floral Bikini – Tropical Design with Geometric Borders for Beach and Pool\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\n3-piece set with a tropical floral design – designed for beach days when you go into the water more than once without a second thought.\u003c\/p\u003e\n\n\u003cp\u003eTropical flowers, palm leaves, and delicate geometric borders – this pattern moves between playful and structured. It's not plain and simple, but also not loud. The women's floral bikini from the Bodensee brand follows an imagery that suits summer without overstating it. On the shore of the lake, on a sunlounger in the midday sun, or when packing up the beach towel – the pattern appears naturally in such moments.\u003c\/p\u003e\n\n\u003cp\u003eThe color scheme is vibrant enough to shine on the water, and calm enough to be combined with a beach towel or a simple linen top. If you want to create several holiday outfits from just a few pieces, a 3-piece set offers more flexibility – depending on which combination suits you best. The tropical floral design with geometric borders has a clear line that prevents the pattern from looking cluttered.\u003c\/p\u003e\n\n\u003cp\u003eYou pack a floral bikini when your summer trip is more than just one day. When you go to the lake in the morning, lie by the pool in the afternoon, and want to go for a quick swim in the evening. Or when the set is packed as a travel companion because you know you'll wear it more than once. The 3-piece format makes it easier to create different looks – without a lot of extra luggage.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The pattern stands out without dominating – you wear it without having to explain yourself.\u003cbr\u003e• Three pieces, one set – can be combined depending on what the day requires.\u003cbr\u003e• The design evokes a holiday feeling, even if you're just by the lake for a short time.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eTake a look at the detailed photos – the pattern often appears slightly different in real life than in the first picture.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"height_min\": 153, \"height_max\": 163, \"weight_min\": 50, \"weight_max\": 60}, {\"name\": \"M\", \"height_min\": 158, \"height_max\": 168, \"weight_min\": 58, \"weight_max\": 68}, {\"name\": \"L\", \"height_min\": 163, \"height_max\": 173, \"weight_min\": 66, \"weight_max\": 76}, {\"name\": \"XL\", \"height_min\": 168, \"height_max\": 178, \"weight_min\": 74, \"weight_max\": 84}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Set Contents: 3-piece (top, bottoms, additional piece – check product images for details)\u003c\/li\u003e\n\n\u003cli\u003e✔ Material: Polyester – easy-care, shape-retaining under normal use\u003c\/li\u003e\n\n\u003cli\u003e✔ Design: Tropical floral pattern with geometric borders, vibrant colors\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size are right for you, the women's floral bikini can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eAssessing Fit and Comfort for Movement in Water\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eWhat often remains unclear when buying a bikini online – and what matters.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe bikini looks good, but whether it really fits well is hard to judge\u003c\/li\u003e\n\n\u003cli\u003ePolyester doesn't always feel the way you imagine it would\u003c\/li\u003e\n\n\u003cli\u003eWith a 3-piece set, it's not always immediately clear what exactly is included\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou put on the bikini, it looks good – and then you go into the water, swim a few laps, or just stand up. It's in these moments that a bikini truly shows if it fits. Not when you first put it on in front of the mirror, but when you move, when you get out of the water, when you sit down on the sunlounger.\u003c\/p\u003e\n\n\u003cp\u003ePolyester has a pragmatic reason in swimwear: the material is designed to hold its shape under normal stress and absorb less water than other fibers. The feel when wet and dry can differ – with polyester, the transition is usually quicker. If you prefer natural fibers, you won't find them here; that's an honest note.\u003c\/p\u003e\n\n\u003cp\u003eThis 3-piece bikini set can be an option if you want combination flexibility for your summer trip without having to buy several separate pieces. If, however, you are looking for a very minimalist, plain design or prefer heavily shaping swimwear, this floral bikini is probably not for you – the pattern has character, and the cut aims for comfortable fit, not compression.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDoes a tropical floral pattern match what you envision for your next beach day?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – just enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eTake your time to look at the size chart – if you're unsure between two sizes, it can help to choose the slightly larger one to ensure a comfortable fit even when moving.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay special attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Secure fit on the beach – when walking, swimming, and getting up from the sunlounger\u003c\/li\u003e\n\n\u003cli\u003e→ Multiple looks from one 3-piece set when traveling\u003c\/li\u003e\n\n\u003cli\u003e→ Floral pattern that looks just as good by the lake as by the pool\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis helps you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ 3-piece set – can offer more combination possibilities for beach days\u003c\/li\u003e\n\n\u003cli\u003e✅ Tropical floral pattern with geometric borders – expressive but structured\u003c\/li\u003e\n\n\u003cli\u003e✅ Polyester – designed for shape retention and easy-care wear under normal use\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not ideal for those who prefer a minimalist, plain design\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Less suitable for those looking for heavily shaping or compressive swimwear\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Not a natural fiber material – a relevant note for those who prioritize this\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Women's Floral Bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePattern often looks different in reality than in product images\u003c\/td\u003e\n\n\u003ctd\u003eTropical floral design clearly named; detailed photos can help better assess the pattern's effect\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eMulti-piece sets often leave unclear what exactly is included\u003c\/td\u003e\n\n\u003ctd\u003e3-piece version with a clear number of parts – details verifiable in product description and images\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSwimwear often loses shape and color intensity with frequent wear\u003c\/td\u003e\n\n\u003ctd\u003ePolyester is designed for shape retention under normal use; vibrant coloring through tropical floral print\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eBikini fit during movement and in water often difficult to predict\u003c\/td\u003e\n\n\u003ctd\u003eCut designed for comfortable fit; size chart and size calculator help assess the fit\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered precisely such situations with the women's floral bikini – so you'll have to adjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the Women's Floral Bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang, done. Delicate wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: Easy-care, quick-drying polyester – comfortable on the skin, maintains shape\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eCould be a good fit if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You're looking for a \u003cstrong\u003ewomen's floral bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about Women's Floral Bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhich parts are included in the 3-piece floral bikini set?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe set includes three pieces – usually a bikini top, bikini bottoms, and another item such as a beach wrap or cover-up. The exact composition can best be checked using the product images and detailed description before ordering.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for this floral bikini when buying online?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe most helpful approach is a combination of the size chart and your own measurements (bust, waist, hips). If you are unsure between two sizes, it may be advisable to choose the slightly larger one – especially if the bikini should also fit comfortably while swimming and moving. Our size calculator can help with this.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for a polyester bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear, cool water. Wash at 30 °C on a delicate cycle, do not tumble dry. This way, the material will remain shape-retaining longer with normal care.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eDoes the tropical floral pattern with geometric borders look the same on the body as in the product image?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003ePatterns can appear slightly different in product photos than in reality – scaling, color intensity, and detail effect vary depending on light and screen. The detailed photos usually give a better impression than the main image. If in doubt, it's worth taking a close look at all available shots.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWho is this floral bikini less suitable for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eIf you are looking for a very simple, plain design or prefer heavily shaping and compressive swimwear, you probably won't be entirely happy with this set. Also, if natural fibers are a top priority, please note that the material is polyester.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/die-perfekte-bademode-finden\"\u003eFinding the Perfect Swimwear\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-damen-finden-sie-den-perfekten-badeanzug-fur-den-sommer-2024\"\u003eWomen's Swimsuits: Find the Perfect Swimsuit for Summer 2024\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/bikini-damen\/wie-man-den-perfekten-bikini-fur-seine-korperform-findet\"\u003eHow to Find the Perfect Bikini for Your Body Shape\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Tropical flowers and palm leaves in detail – pattern close-up\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Geometric borders as a calm counterpoint to the playful floral print\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and excess stock, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodensee Brand – Information checked in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the women's floral bikini could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eWomen's Floral Bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€41.99\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the women's floral bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Bikini Blumenmuster Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/O1CN01jC3v9O1fsu6tXP362__2214331894063-0-cib.jpg?v=1750326013\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"41.99\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Sky blue \/ L","offer_id":45419011703052,"sku":"CJYD200229703CX","price":41.99,"currency_code":"EUR","in_stock":true},{"title":"Sky blue \/ M","offer_id":45419011735820,"sku":"CJYD200229702BY","price":41.99,"currency_code":"EUR","in_stock":true},{"title":"Sky blue \/ S","offer_id":45419011768588,"sku":"CJYD200229701AZ","price":41.99,"currency_code":"EUR","in_stock":true},{"title":"Sky blue \/ XL","offer_id":45419011801356,"sku":"CJYD200229704DW","price":41.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/O1CN01jC3v9O1fsu6tXP362__2214331894063-0-cib.jpg?v=1750326013"},{"product_id":"bikini-mit-kette-im-oberteil","title":"black bikini with gold chain","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a chain bikini stay put even after a long day at the beach?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003eYou might know that feeling when a bikini just stays in place – without constant readjusting.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eYou often don't notice the difference immediately, but rather when you get up from your towel for the second time or take your first jump into the water.\u003c\/p\u003e\n\n  \u003ch2\u003eWomen's Chain Bikini – Black Bikini with Gold Chain for Lake, Pool, and Vacation\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this black bikini with gold chain is made for:\u003c\/strong\u003e\u003cbr\u003e\nA bikini in simple black, accented by a delicate gold chain on the top – subtle, not intrusive. Elastic fabric made of 78% polyamide and 22% elastane, which adapts as you walk and in the water.\u003c\/p\u003e\n\n\u003cp\u003eThe design thrives on reduction. Black fabric without a pattern, with a gold chain resting on the top – so discreet that it's barely noticeable in the sunlight on the shore of Lake Constance, yet present enough to hold the look together. No appliqués, no print – just line and shine.\u003c\/p\u003e\n\n\u003cp\u003eOn the beach, the chain feels warm on the skin as you stand in the shallow water. By the pool, when you get up from your lounge chair, it briefly catches the light and then settles back down. The simple black tone can be combined with a white linen cloth, a beach chair, or a simple summer look – without appearing strained.\u003c\/p\u003e\n\n\u003cp\u003eAs a gift, this bikini with a jewelry chain says: I know what suits you, without saying it out loud. Not playful, not dramatic – rather the opposite. For someone who likes things that have a long-lasting, calm appeal.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The chain lies flat and warm on the skin – no jingling, no snagging\u003cbr\u003e• The black stays black: no fading in bright summer light\u003cbr\u003e• You don't constantly readjust when you move – it stays in place\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you prefer bikini tops with striking prints or colorful patterns, this bikini is probably not your style – it deliberately opts for understatement.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"S\"}, \"sizes\": [{\"name\": \"S\", \"bust_min\": 66.0, \"bust_max\": 70.0, \"waist_min\": 68.0, \"waist_max\": 72.0, \"hip_min\": 72.0, \"hip_max\": 76.0}, {\"name\": \"M\", \"bust_min\": 70.0, \"bust_max\": 74.0, \"waist_min\": 72.0, \"waist_max\": 76.0, \"hip_min\": 76.0, \"hip_max\": 80.0}, {\"name\": \"L\", \"bust_min\": 74.0, \"bust_max\": 78.0, \"waist_min\": 76.0, \"waist_max\": 80.0, \"hip_min\": 80.0, \"hip_max\": 84.0}, {\"name\": \"XL\", \"bust_min\": 78.0, \"bust_max\": 82.0, \"waist_min\": 80.0, \"waist_max\": 84.0, \"hip_min\": 84.0, \"hip_max\": 88.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: 78% Polyamide, 22% Elastane\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Gentle wash 30 °C, do not tumble dry\u003c\/li\u003e\n\n\u003cli\u003e✔ Size selection: Top by bust, bottom by waist and hips – separately selectable\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, a black bikini with a gold chain can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini slips in the water or gives way after a few days\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eStays put, without you having to think about it.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top shifts out of position when swimming\u003c\/li\u003e\n\n\u003cli\u003eThe waistband digs in or rolls inwards\u003c\/li\u003e\n\n\u003cli\u003eThe fabric feels sticky or heavy when wet\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou know the feeling: you go into the water, briefly dive under, and when you resurface, the top isn't quite right anymore. Or the waistband rolled up when you sat down on your towel. Small things – but they steal the lightness of the day.\u003c\/p\u003e\n\n\u003cp\u003eFor many bikinis, this is due to a combination of cut and material: too little elastane causes the fabric to sag in the water, too much gives way and doesn't spring back. This model is designed with 22% elastane – enough to hold its shape without constricting.\u003c\/p\u003e\n\n\u003cp\u003eWhether this suits you also depends on how you move in the water. If you dive a lot, ride waves, or do active water sports, a different cut might be better. For a relaxing day at the lake, pool, or beach, this chain bikini can be a suitable option – depending on the fit you prefer.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDoes a calm, understated design match how you feel most comfortable at the water?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you assess the cut and size – just enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eTops and bottoms are selectable separately, each by bust, waist, and hips – so both fit as they should.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Top usually stays put – even with the first jump into the water\u003c\/li\u003e\n\n\u003cli\u003e→ Chain lies flat and warm on the skin, without rubbing\u003c\/li\u003e\n\n\u003cli\u003e→ Black typically remains rich after several washes on a gentle cycle at 30 °C\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Subtle gold chain accent on the top – noticeable without being intrusive\u003c\/li\u003e\n\n\u003cli\u003e✅ Top and bottom selectable separately by bust, waist, and hips\u003c\/li\u003e\n\n\u003cli\u003e✅ 22% elastane content – for a stable fit with normal movement\u003c\/li\u003e\n\n\u003cli\u003e✅ Simple black – can be combined with various beach looks\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not designed for intensive water sports or competitive swimming\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Minimalist plain design – less suitable if you prefer prints or colors\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Not a sporty cut – there are more suitable models for active water activities\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ black bikini with gold chain\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming or getting up\u003c\/td\u003e\n\n\u003ctd\u003eDesigned for stable fit with normal movement in the water – thanks to 22% elastane in the fabric\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSizes hard to estimate online for bikinis\u003c\/td\u003e\n\n\u003ctd\u003eTop and bottom selectable separately + size calculator with height and weight\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eBlack fabric fades quickly after the season\u003c\/td\u003e\n\n\u003ctd\u003ePolyamide-elastane fabric – with careful treatment, the color typically remains stable longer\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eChain details jingle or snag when worn\u003c\/td\u003e\n\n\u003ctd\u003eGold chain lies flat against the top – no moving individual parts\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered precisely these situations with the black bikini with gold chain – so you have to readjust less when wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the black bikini with gold chain feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even when moving.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang, done. Gentle wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 78% Polyamide, 22% Elastane\u003cbr\u003e• Care: Gentle wash 30 °C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay fit well if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003eblack bikini with a gold chain\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being intrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct details at a glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Gentle wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about the black bikini with gold chain\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for a black bikini with a gold chain?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eSince the top and bottom are selected separately, you can order both pieces individually by measurement: the top according to your bust size, the bottom according to your waist and hips. Our size calculator helps you with this – height and weight are enough for initial guidance.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the waistband of the bikini bottom fit when moving?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe bottom is designed for a stable fit during normal movement – when walking, getting up from your towel, or swimming in calm water. For very active water sports, a specifically sporty cut may be more suitable.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs this elegant black bikini with a chain also suitable for a day at the lake?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes, the model is designed for calm everyday use at the lake, pool, or beach – not for intensive water sports or competitive swimming. The material, 78% polyamide and 22% elastane, adapts to normal wear.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for the bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, it's best to rinse briefly with clear water. Wash at 30 °C on a gentle cycle, do not tumble dry. This generally helps maintain its shape and elasticity longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan I order the top and bottom in different sizes?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes – the top and bottom are available separately. The top is chosen based on bust width, the bottom based on waist and hips. This makes it easier to find a fit that matches your measurements.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuide\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Gold chain lies warm on the black fabric in the sunlight on the shore of Lake Constance\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Getting up from the towel – bikini still in the same place as when lying down\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and inventory, especially for printed items!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you identify with the scenarios above, the black bikini with gold chain could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eblack bikini with gold chain\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€29.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the black bikini with gold chain can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 2026-05-20\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"schwarzer Bikini mit Goldkette\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/072d2f55-3131-490d-8e8e-6d0e53051df9.jpg?v=1750320345\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"29.95\", \"priceCurrency\": \"EUR\"}, \"additionalProperty\": [{\"@type\": \"PropertyValue\", \"name\": \"Pflegehinweis\", \"value\": \"Feinwäsche 30 °C, nicht im Trockner\"}]}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Ebony black \/ L","offer_id":49336970707212,"sku":"CJYJ201802807GT","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Ebony black \/ M","offer_id":49336970739980,"sku":"CJYJ201802806FU","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Ebony black \/ S","offer_id":49336970772748,"sku":"CJYJ201802805EV","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Ebony black \/ XL","offer_id":49336970805516,"sku":"CJYJ201802808HS","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Khaki \/ L","offer_id":49336970838284,"sku":"CJYJ201802811KP","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Khaki \/ M","offer_id":49336970871052,"sku":"CJYJ201802810JQ","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Khaki \/ S","offer_id":49336970903820,"sku":"CJYJ201802809IR","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Khaki \/ XL","offer_id":49336970936588,"sku":"CJYJ201802812LO","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Orange \/ L","offer_id":49336970969356,"sku":"CJYJ201802819SH","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Orange \/ M","offer_id":49336971002124,"sku":"CJYJ201802818RI","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Orange \/ S","offer_id":49336971034892,"sku":"CJYJ201802817QJ","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Orange \/ XL","offer_id":49336971067660,"sku":"CJYJ201802820TG","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Green leaves \/ L","offer_id":49336971100428,"sku":"CJYJ201802803CX","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Green leaves \/ M","offer_id":49336971133196,"sku":"CJYJ201802802BY","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Green leaves \/ S","offer_id":49336971165964,"sku":"CJYJ201802801AZ","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Green leaves \/ XL","offer_id":49336971198732,"sku":"CJYJ201802804DW","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Sky blue \/ L","offer_id":49336971231500,"sku":"CJYJ201802815OL","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Sky blue \/ M","offer_id":49336971264268,"sku":"CJYJ201802814NM","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Sky blue \/ S","offer_id":49336971297036,"sku":"CJYJ201802813MN","price":29.95,"currency_code":"EUR","in_stock":true},{"title":"Sky blue \/ XL","offer_id":49336971329804,"sku":"CJYJ201802816PK","price":29.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/072d2f55-3131-490d-8e8e-6d0e53051df9.jpg?v=1750320345"},{"product_id":"stitching-color-sexy-backless-bikini-three-piece-suit","title":"Bikini Abstract Leaf Pattern Women","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini that stays put by the water – and stays that way all day long?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003eYou might know that calm feeling when a bikini is just there – without you having to think about it all the time.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eMany don't notice the difference when putting it on, but only later – when getting up from the towel or going into the water.\u003c\/p\u003e\n\n  \u003ch2\u003eBikini with abstract leaf pattern – backless cut for beach and pool\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nA backless cut with an abstract leaf pattern in turquoise, green, and purple – designed for days by the water when you want to move without constantly readjusting.\u003c\/p\u003e\n\n\u003cp\u003eThe abstract leaf pattern unfolds in three tones that work together without being obtrusive. Turquoise and green evoke water and reeds, while a subtle purple gives the pattern its own rhythm. Anyone sitting on the shore of Lake Constance and looking at the water knows this mix – colors that are present but don't scream for attention.\u003c\/p\u003e\n\n\u003cp\u003eThe cut is backless and features stitching details. The lines give the look visual structure without interrupting the pattern. The top is designed to be tied, allowing for individual fit adjustment. The top and briefs are visually coordinated – the set appears cohesive even when wearing a cover-up or taking it off.\u003c\/p\u003e\n\n\u003cp\u003eIn the afternoon at the lake, when you come out of the water and sit briefly on the towel: The pattern doesn't draw attention to itself, but it's there. Or on the terrace of a small holiday hotel, in the morning with your first coffee overlooking the water – a bikini that fits even beyond the edge of the pool. If you wear the set for photos by the water, you'll have a backdrop that harmonizes with almost any environment.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The pattern stands out without being dominant – for wearers who like color but no loud prints.\u003cbr\u003e• The backless cut feels open without being unstable – particularly noticeable when moving in the water.\u003cbr\u003e• Top and briefs read as a single unit – the look remains calm even when combined with a light cover-up.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you want to choose a size: Our size calculator helps you estimate the cut and fit.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"bust_min\": 85.0, \"bust_max\": 91.0, \"waist_min\": 63.0, \"waist_max\": 69.0, \"hip_min\": 65.0, \"hip_max\": 71.0}, {\"name\": \"M\", \"bust_min\": 89.0, \"bust_max\": 95.0, \"waist_min\": 67.0, \"waist_max\": 73.0, \"hip_min\": 69.0, \"hip_max\": 75.0}, {\"name\": \"L\", \"bust_min\": 94.0, \"bust_max\": 100.0, \"waist_min\": 72.0, \"waist_max\": 78.0, \"hip_min\": 74.0, \"hip_max\": 80.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Cut: backless, tie-top\u003c\/li\u003e\n\n\u003cli\u003e✔ Pattern: abstract leaf pattern in turquoise, green, and purple\u003c\/li\u003e\n\n\u003cli\u003e✔ Set: top and briefs, visually coordinated\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, the women's bikini with abstract leaf pattern can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini set fits, but the pieces don't visually come together\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eFit and pattern can be both at the same time – calm and present.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eBackless cuts sometimes feel less stable\u003c\/li\u003e\n\n\u003cli\u003eThree-piece sets often look inconsistent if parts are not coordinated\u003c\/li\u003e\n\n\u003cli\u003eThin fabrics can be less opaque when wet or in bright light\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eMany know this: You put on a backless bikini, it fits well when standing – but when going into the water, sitting down on the towel, or standing up, the picture changes. The cut suddenly seems less secure, the top needs to be readjusted.\u003c\/p\u003e\n\n\u003cp\u003eWith backless models, the fit depends less on the fabric than on the cut, stretch content, and how the top is fastened. An elastane content in the material can help the fabric move with the body instead of against it. However, the actual fit also depends on how the top and straps are adapted to your figure.\u003c\/p\u003e\n\n\u003cp\u003eThis bikini is designed for days by the water when you want to move and not constantly readjust – beach, pool, lake, or even a quieter holiday on the terrace. If you are looking for a lot of support or strong bust support, a different cut might be more suitable. And if you prefer fully covering swimwear, you will be less happy with this model.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDo you like bikinis where the pattern remains calm – and the fit doesn't feel like a compromise?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eCheck out the available sizes and choose what suits your figure.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Worn as a beach look on summer vacation – calm pattern that harmonizes with the surroundings\u003c\/li\u003e\n\n\u003cli\u003e→ Used for pool days and photos by the water – set also looks cohesive in pictures\u003c\/li\u003e\n\n\u003cli\u003e→ Combined with a light cover-up for relaxed days between water and terrace\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Backless cut with individually tieable top – comfortable to move in during normal beach activities\u003c\/li\u003e\n\n\u003cli\u003e✅ Abstract leaf pattern in turquoise, green, and purple – calm and combinable\u003c\/li\u003e\n\n\u003cli\u003e✅ Top and briefs visually coordinated – looks like a single unit even with a cover-up\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Less suitable for wearers seeking strong support or a lot of hold in the top\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Not designed for intensive water sports or very active swimming sessions\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer fully covering swimwear will be less happy with this cut\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Women's Bikini with Abstract Leaf Pattern\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eBackless bikinis slip during movement or feel unstable\u003c\/td\u003e\n\n\u003ctd\u003eTie-top can be adjusted for an individual fit – usually stays put during normal activity\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eThree-piece sets quickly look disjointed if parts don't match\u003c\/td\u003e\n\n\u003ctd\u003eTop and briefs are matched in pattern and color – the set reads as a cohesive outfit even with a cover-up\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePatterned bikinis often appear too loud or difficult to combine\u003c\/td\u003e\n\n\u003ctd\u003eThe abstract leaf pattern in subdued tones (turquoise, green, purple) is understated – combinable with light and neutral colors\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eStitching seams on stretch material stretch out after a short time\u003c\/td\u003e\n\n\u003ctd\u003eThe stitching details are designed for clean lines – how long they remain stable with regular wear also depends on care\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered precisely these situations with the women's bikini with abstract leaf pattern – so you have to readjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the women's bikini with abstract leaf pattern feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even when moving.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash 30°C, do not tumble dry – observe care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 78% Polyamide, 22% Elastane\u003cbr\u003e• Care: Delicate wash 30°C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay fit well if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003ewomen's bikini with abstract leaf pattern\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct details at a glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Delicate wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about the women's bikini with abstract leaf pattern\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat occasions is a backless bikini with a leaf pattern suitable for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThis bikini is designed for the beach, pool, and lake – and also works as a vacation look on the terrace or by the water. The abstract leaf pattern in turquoise, green, and purple harmonizes with most surroundings and can be easily combined with a light cover-up.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do the waistband and top fit during movement?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe top is designed to be tied and allows for individual fit adjustment. The fit during movement depends on the cut and stretch content – under normal beach activity, the model usually stays put. It is less designed for intensive water sports.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I care for the bikini properly?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eRinse briefly with clear water after wearing, then wash on a delicate cycle at 30°C. Do not tumble dry. This way, the fabric's shape will be preserved longer with normal care.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs this bikini also suitable for three-piece sets with a cover-up?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe top and briefs are visually coordinated and appear as a unit even when a cover-up is worn over them. For a classic three-piece set, a matching cover-up or a light beach towel can be added.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for a backless bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eSince backless cuts fit differently for each individual, it is recommended to consult the size calculator if unsure. Enter your height and weight – this will give you an indication of which size generally fits your body type.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug\"\u003eInnovative Women's Swimsuits: Trends, Fit, and Style\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/innovative-badeanzuge-fur-damen-trends-passform-und-selbstbewusstsein\"\u003eInnovative Women's Swimsuits: Trends, Fit, and Confidence\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Abstract leaf pattern in turquoise, green, and purple – close-up shows pattern detail on the fabric\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Backless cut from behind – open backline, tie-strap visible\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce to order – this reduces overproduction and stock, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you find yourself in the scenarios above, the women's bikini with abstract leaf pattern could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eWomen's Bikini with Abstract Leaf Pattern\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€21.89\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the women's bikini with abstract leaf pattern can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Bikini abstraktes Blättermuster Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/three-piece-bikini-1618550718679.png?v=1776857788\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"21.89\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Blue \/ S","offer_id":54413460603148,"sku":"CJTZ108267901AZ","price":21.89,"currency_code":"EUR","in_stock":true},{"title":"Blue \/ M","offer_id":54413460635916,"sku":"CJTZ108267902BY","price":21.89,"currency_code":"EUR","in_stock":true},{"title":"Blue \/ L","offer_id":54413460668684,"sku":"CJTZ108267903CX","price":21.89,"currency_code":"EUR","in_stock":true},{"title":"Pink \/ S","offer_id":54413460701452,"sku":"CJTZ108267904DW","price":21.89,"currency_code":"EUR","in_stock":true},{"title":"Pink \/ M","offer_id":54413460734220,"sku":"CJTZ108267905EV","price":21.89,"currency_code":"EUR","in_stock":true},{"title":"Pink \/ L","offer_id":54413460766988,"sku":"CJTZ108267906FU","price":21.89,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/three-piece-bikini-1618550718679.png?v=1776857788"},{"product_id":"european-and-american-sexy-bikini-women-split-swimwear","title":"Bikini blue palm leaf print","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini that stays put at the beach – and doesn't feel like work?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003eYou might know that calm feeling when a bikini stays put all day without you constantly adjusting it.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eAnd that's precisely where many notice the difference – not when they first put it on, but after three hours at the water.\u003c\/p\u003e\n\n  \u003ch2\u003eWomen's Blue Bikini with Palm Leaf Pattern – for the Beach, Lake, and Vacation\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nTwo-piece bikini with elastane content – for comfortable wear at the water, blue palm leaf pattern on a white background, light and flexible on the body.\u003c\/p\u003e\n\n\u003cp\u003eThe pattern reflects something seen on quiet summer days: the play of light through leaves, a coloration that is neither loud nor pale. The blue of the palm motifs moves between sky and water – clear enough to stand out, subtle enough not to be obtrusive. A design that fits just as well on the shore of Lake Constance as on a Mediterranean beach.\u003c\/p\u003e\n\n\u003cp\u003eThe combination of a white background and a blue palm leaf print is easy to combine: with a white linen sarong, a striped beach dress, or just as it is. Those who prefer solid colors or very graphic patterns might find a different style here – this design has an organic, somewhat calmer visual language. You wear it when getting up from the sun lounger, when wading into shallow water, when having coffee at the small beach bar – and the pattern goes along with it, without pushing itself into the foreground.\u003c\/p\u003e\n\n\u003cp\u003ePerfect for when you transition directly from the water to the next activity on your vacation afternoon: a bikini that doesn't make these transitions obvious because it doesn't stand out.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The palm leaf pattern looks different in sunlight than in shade – never overwhelming, but always present.\u003cbr\u003e• You reach for your towel, not your bikini – because there's nothing to adjust.\u003cbr\u003e• The pattern can be combined in such a way that it looks like you've always had it.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eCheck the available sizes and choose what suits your figure.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"XS\", \"bust_min\": 76.0, \"bust_max\": 81.0, \"waist_min\": 104.1, \"waist_max\": 126.6, \"hip_min\": 81.0, \"hip_max\": 86.0}, {\"name\": \"S\", \"bust_min\": 81.0, \"bust_max\": 86.0, \"waist_min\": 114.6, \"waist_max\": 137.1, \"hip_min\": 86.0, \"hip_max\": 91.0}, {\"name\": \"M\", \"bust_min\": 86.0, \"bust_max\": 91.0, \"waist_min\": 61.0, \"waist_max\": 66.0, \"hip_min\": 91.0, \"hip_max\": 97.0}, {\"name\": \"L\", \"bust_min\": 91.0, \"bust_max\": 97.0, \"waist_min\": 66.0, \"waist_max\": 71.0, \"hip_min\": 97.0, \"hip_max\": 102.0}, {\"name\": \"XL\", \"bust_min\": 97.0, \"bust_max\": 102.0, \"waist_min\": 71.0, \"waist_max\": 76.0, \"hip_min\": 102.0, \"hip_max\": 107.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: Elastane\u003c\/li\u003e\n\n\u003cli\u003e✔ Design: Blue palm leaf pattern on a white background\u003c\/li\u003e\n\n\u003cli\u003e✔ Type: Two-piece bikini\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, the blue palm leaf pattern bikini can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini doesn't stay put at the water\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eMovement should feel effortless – not like constant adjustment.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top doesn't stay put as soon as you move in the water\u003c\/li\u003e\n\n\u003cli\u003eThe waistband digs in after a few hours\u003c\/li\u003e\n\n\u003cli\u003eIt's hard to estimate the size online\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou go into the water, dive under – and shortly after, something isn't quite right anymore. The top has slipped, the waistband has shifted. What initially seems like a minor detail affects the entire day. This isn't a matter of demands, but of what you generally expect from swimwear: that it moves with you without constant correction.\u003c\/p\u003e\n\n\u003cp\u003eOften, it's not just the cut, but the combination of material and fit. Elastane content can help the fabric adapt to movement – when sitting on the jetty, walking on sand, or swimming briefly. Whether this works for a specific body type and activity can best be estimated with good sizing information.\u003c\/p\u003e\n\n\u003cp\u003eThis bikini is designed for beach days with moderate movement – swimming, walking, lying down, wading. Those planning intensive water activities or training for competitive swimming are generally better advised with specific sports swimwear. If, on the other hand, you are looking for a bikini that accompanies quiet lake days without constantly demanding attention, this cut might be suitable.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDoes the cut suit how you move in the water?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eChoose your size and see if the top and bottom are right for you.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Stays put when walking on sand – no readjusting\u003c\/li\u003e\n\n\u003cli\u003e→ Palm leaf pattern looks fresh at the water, without dominating\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Elastane content for a snug fit during movement\u003c\/li\u003e\n\n\u003cli\u003e✅ Calm palm leaf design that can be combined\u003c\/li\u003e\n\n\u003cli\u003e✅ Two-piece cut – top and bottom usually selectable separately\u003c\/li\u003e\n\n\u003cli\u003e✅ Designed for beach days with moderate activity\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Less suitable for competitive swimming or intensive water sports\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer very graphic or solid patterns will find a different style here\u003c\/li\u003e\n\n\u003cli\u003e⚠️ No documented information on chlorine or saltwater resistance\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Blue Palm Leaf Pattern Bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips during movement in the water\u003c\/td\u003e\n\n\u003ctd\u003eElastane content is designed for an adaptable fit during moderate movement\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSize of bikinis is hard to estimate online\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator with height and weight available as a guide\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePattern seems too conspicuous in everyday life\u003c\/td\u003e\n\n\u003ctd\u003eOrganic palm leaf motif in blue – subtle enough for various beach outfits\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe considered exactly such situations with the blue palm leaf pattern bikini – so you have to adjust it less when wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the blue palm leaf pattern bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you'll notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even during movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang, done. Delicate wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: Elastane\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay be a good fit if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003eblue palm leaf pattern bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about the Blue Palm Leaf Pattern Bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat activities is this blue palm leaf pattern bikini suitable for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThis bikini is designed for moderate beach activities: swimming, wading, lounging, walking. For intensive water sports or competitive swimming, specific sports swimwear is generally more suitable.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for this two-piece bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eUse our size calculator – by entering your height and weight, you can estimate the top and bottom separately. If you are unsure between two sizes, the larger option is generally recommended for more freedom of movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for this blue women's bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear, lukewarm water. Wash on a delicate cycle at 30°C, do not tumble dry. This will preserve its shape and color longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eDoes the bikini with the palm leaf print match certain beach outfits?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe blue palm leaf pattern on a white background can be easily combined with solid-colored beach towels, linen shorts, or simple dresses. Those who prefer very graphic or solid-colored looks will find a more organic visual language here.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs the bikini opaque when wet?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eSince there are no specific details regarding opacity when wet, we cannot make a concrete promise about this. As a guideline: elastane fabrics cling more tightly to the body when wet – which is common for two-piece bikinis of this type.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikinis\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Blue palm leaf pattern on a white background in the sunlight by the lake\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Bikini wading into shallow water – fabric clings\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and inventory for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information checked according to EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the blue palm leaf pattern bikini can be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eBlue Palm Leaf Pattern Bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€18.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the blue palm leaf pattern bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Bikini blaues Palmenblätter Muster\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/european-and-american-sexy-bikini-1620374146235.png?v=1776857095\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"18.95\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Blue \/ S","offer_id":54413461094668,"sku":"CJTZ111684601AZ","price":18.95,"currency_code":"EUR","in_stock":true},{"title":"Blue \/ M","offer_id":54413461127436,"sku":"CJTZ111684602BY","price":18.95,"currency_code":"EUR","in_stock":true},{"title":"Blue \/ L","offer_id":54413461160204,"sku":"CJTZ111684603CX","price":18.95,"currency_code":"EUR","in_stock":true},{"title":"Blue \/ XL","offer_id":54413461192972,"sku":"CJTZ111684604DW","price":18.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/european-and-american-sexy-bikini-1620374146235.png?v=1776857095"},{"product_id":"split-bikini-swimsuit-solid-color-new-women","title":"pink bikini women","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a pink bikini stay put all day – without needing adjustment?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that relaxed feeling when a bikini simply fits – and you forget you're wearing it.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eMany only notice the difference as the day goes on: not when they put it on, but after the second jump into the water.\u003c\/p\u003e\n\n  \u003ch2\u003ePink Bikini for Women – Solid Two-Piece Set for Beach and Pool\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nTwo-piece design in solid pink – clean lines without patterns, polyamide material, calm color effect by the water.\u003c\/p\u003e\n\n\u003cp\u003eSome colors simply look different by the lake than they do on a screen. A muted, solid pink appears soft and calm in summer light – not gaudy, not faded. Anyone sitting on the shore of Lake Constance and looking at the water will notice: this color doesn't impose itself. It simply is.\u003c\/p\u003e\n\n\u003cp\u003eThe plain design without patterns makes this pink bikini for women versatile: a light linen sarong, a simple white beach bag, sandy espadrilles – everything matches without you having to think about it. No print that goes out of fashion after two seasons. No motif that dictates where the eye goes. The focus is on the moment, not the fabric.\u003c\/p\u003e\n\n\u003cp\u003eFor an afternoon by the pool, where you simply glide into the water and come back out. For a beach day on holiday, where luggage should be light and decisions few. Or for anyone who prefers swimwear that doesn't push itself into the foreground – and yet still says something.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The pink appears softer in sunlight than expected – pleasant on the skin, calm to the eye.\u003cbr\u003e• No distracting pattern: you wear the bikini, not the other way around.\u003cbr\u003e• Two-piece means flexibility – top and bottom can be combined separately, if needed.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you're interested, check out the size chart – tops and bottoms can be selected separately.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": []}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: Polyamide\u003c\/li\u003e\n\n\u003cli\u003e✔ Cut: two-piece, top and bottom can be selected separately\u003c\/li\u003e\n\n\u003cli\u003e✔ Color: solid pink, no pattern\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, a pink bikini for women can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini gets restless in the water\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eWhat can be different with a solid two-piece – and when it fits.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eTop slips after jumping into the water\u003c\/li\u003e\n\n\u003cli\u003eWaistband digs in after a few hours\u003c\/li\u003e\n\n\u003cli\u003eColor appears duller than expected after the season\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou might know the feeling: You go into the water, briefly submerge – and afterwards, something isn't sitting quite right. The top has shifted, the waistband is digging in somewhere it wasn't a problem before. Not dramatic, but present. And you know you'll be thinking about it all day.\u003c\/p\u003e\n\n\u003cp\u003eThis happens more often with bikinis where the cut and material aren't designed for movement in water – or where the top and bottom come in a one-size-fits-all that only approximately suits your figure. Polyamide as a material can help the fabric stay close to the body under normal use – but the cut ultimately plays a role.\u003c\/p\u003e\n\n\u003cp\u003eThis solid pink bikini for women is designed as a two-piece set – top and bottom can be chosen in separate sizes. This can help ensure a better fit for different body proportions. However, if you are looking for a bikini with strong shaping, underwire, or a lot of support, these features are not explicitly covered here – in that case, it's worth filtering specifically for them.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDoes a simple, solid two-piece suit what you wear by the water – or do you prefer something with more structure?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut \u0026amp; size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eCheck the size chart if you wish – top and bottom can be selected independently.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Stays put calmly after a long beach day\u003c\/li\u003e\n\n\u003cli\u003e→ Top generally stays in place during normal movement in the water\u003c\/li\u003e\n\n\u003cli\u003e→ Solid pink appears softer in sunlight than on screen\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis helps you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Solid design without patterns – timelessly versatile\u003c\/li\u003e\n\n\u003cli\u003e✅ Two-piece cut – top and bottom can be selected separately\u003c\/li\u003e\n\n\u003cli\u003e✅ Polyamide material – comfortable on the body under normal use\u003c\/li\u003e\n\n\u003cli\u003e✅ Clear, calm color effect – subtle without being conspicuous\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not ideal if you need a lot of shaping, underwire, or strong support\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Less suitable for intensive water sports activities or competitive swimming\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Not recommended if you prefer patterned or graphically striking swimwear\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical with similar\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ pink bikini for women\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips after movement in water\u003c\/td\u003e\n\n\u003ctd\u003eTwo-piece cut can help ensure top and bottom are chosen in suitable sizes\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eOne-size rarely fits different proportions\u003c\/td\u003e\n\n\u003ctd\u003eTop and bottom can be selected separately – for a more individual fit\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eColors appear duller after the season\u003c\/td\u003e\n\n\u003ctd\u003eSolid polyamide design – observe care instructions for longer color intensity\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eDifficult to estimate bikini size online\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator available as a guide – with height and weight\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered exactly these situations with the pink bikini for women – so you have to adjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the pink bikini for women feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang to dry, done. Delicate wash at 30°C, do not tumble dry – observe care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: Polyamide\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay be a good fit if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003epink bikini for women\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about pink bikini for women\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs there a simple pink bikini for women without a pattern from Bodenseemarke?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes – this model is solid pink without a print or pattern. The design is deliberately minimalist and can be easily combined with various beach accessories.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan I choose different sizes for the top and bottom of this bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe model is designed as a two-piece. Whether the top and bottom can actually be ordered in different sizes is best checked in the size selection on the product page – there you will see which options are available.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for a polyamide bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eRinse briefly with clear, cool water after wearing. Wash on a delicate cycle at 30°C. Do not tumble dry – air drying significantly preserves the material and shape better.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs this pink bikini also suitable for movement in the water?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe model is designed for beach and leisure use. It is generally less suitable for intensive water sports activities or competitive swimming, as specific sports functions are not included.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for a bikini online?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe most reliable way is to base it on your body measurements – bust, waist, and hip circumference – and compare them with the model's size chart. Our size calculator can help as a guide.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Solid pink in summer light by the water – no distraction from patterns\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Two-piece by Lake Constance – simple, versatile, calm\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and stock, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – information verified in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the pink bikini for women could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003epink bikini for women\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€21.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope the pink bikini for women can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"pink bikini damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/split-bikini-1623729304116-neuer-versuch.png?v=1776856435\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"21.95\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Red wine \/ S","offer_id":54413462536460,"sku":"CJBJ113317701AZ","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Red wine \/ M","offer_id":54413462569228,"sku":"CJBJ113317702BY","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Red wine \/ L","offer_id":54413462601996,"sku":"CJBJ113317703CX","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Red wine \/ XL","offer_id":54413462634764,"sku":"CJBJ113317704DW","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Pink \/ S","offer_id":54413462667532,"sku":"CJBJ113317705EV","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Pink \/ M","offer_id":54413462700300,"sku":"CJBJ113317706FU","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Pink \/ L","offer_id":54413462733068,"sku":"CJBJ113317707GT","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Pink \/ XL","offer_id":54413462765836,"sku":"CJBJ113317708HS","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Yellow \/ S","offer_id":54413462798604,"sku":"CJBJ113317709IR","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Yellow \/ M","offer_id":54413462831372,"sku":"CJBJ113317710JQ","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Yellow \/ L","offer_id":54413462864140,"sku":"CJBJ113317711KP","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Yellow \/ XL","offer_id":54413462896908,"sku":"CJBJ113317712LO","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Red \/ S","offer_id":54413462929676,"sku":"CJBJ113317713MN","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Red \/ M","offer_id":54413462962444,"sku":"CJBJ113317714NM","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Red \/ L","offer_id":54413462995212,"sku":"CJBJ113317715OL","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Red \/ XL","offer_id":54413463027980,"sku":"CJBJ113317716PK","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Blue \/ S","offer_id":54413463060748,"sku":"CJBJ113317717QJ","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Blue \/ M","offer_id":54413463093516,"sku":"CJBJ113317718RI","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Blue \/ L","offer_id":54413463126284,"sku":"CJBJ113317719SH","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Blue \/ XL","offer_id":54413463159052,"sku":"CJBJ113317720TG","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Fluorescent Yellow \/ L","offer_id":54413463191820,"sku":"CJBJ113317721UF","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Fluorescent Yellow \/ M","offer_id":54413463224588,"sku":"CJBJ113317722VE","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Fluorescent Yellow \/ S","offer_id":54413463257356,"sku":"CJBJ113317723WD","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Fluorescent Yellow \/ XL","offer_id":54413463290124,"sku":"CJBJ113317724XC","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Fluorescent green \/ L","offer_id":54413463322892,"sku":"CJBJ113317725YB","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Fluorescent green \/ M","offer_id":54413463355660,"sku":"CJBJ113317726ZA","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Fluorescent green \/ S","offer_id":54413463388428,"sku":"CJBJ113317727AZ","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Fluorescent green \/ XL","offer_id":54413463421196,"sku":"CJBJ113317728BY","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Fluorescent rose red \/ L","offer_id":54413463453964,"sku":"CJBJ113317729CX","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Fluorescent rose red \/ M","offer_id":54413463486732,"sku":"CJBJ113317730DW","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Fluorescent rose red \/ S","offer_id":54413463519500,"sku":"CJBJ113317731EV","price":21.95,"currency_code":"EUR","in_stock":true},{"title":"Fluorescent rose red \/ XL","offer_id":54413463552268,"sku":"CJBJ113317732FU","price":21.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/split-bikini-1623729304116-neuer-versuch.png?v=1776856435"},{"product_id":"new-style-sexy-bikini-female-swimsuit-with-rope","title":"Bikini Mandala Pattern Women","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a patterned bikini stay put at the beach – all day long?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know the feeling when a bikini fits so well that it barely needs any attention – and you can simply focus on the moment.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eOver the course of a long day at the beach, you really notice what a difference a well-fitting cut can make.\u003c\/p\u003e\n\n  \u003ch2\u003eWomen's Mandala Pattern Bikini – Colorful Print for Beach, Lake, and Vacation\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nA two-piece bikini set with a colorful mandala pattern – body-hugging cut, with a lacing detail as an accent, made of polyester that feels light and smooth.\u003c\/p\u003e\n\n\u003cp\u003eThe mandala pattern moves between two worlds: close enough to classic patterns to feel familiar, and vibrant enough to stand out by the water. The geometric shapes interlock, and the play of colors appears different up close and from afar – depending on the light, depending on the angle. Such patterns are not accidental; behind every mandala motif is a symmetry that calms the eye, even when the colors are bold.\u003c\/p\u003e\n\n\u003cp\u003eOn the shore of Lake Constance, when the sun falls flat on the water, the colors of the pattern stand out against the light sand – without being too loud. By the hotel pool, when getting up from the sun lounger, the design briefly catches the eye before you go into the water. Those who appreciate calm patterns with a certain depth will find a bikini here that fits snugly and yet isn't intrusive. The lacing detail complements the mandala motif as a deliberate formal accent – not dominant, but visible.\u003c\/p\u003e\n\n\u003cp\u003eAs a vacation companion by the lake, for relaxing pool days, or as a choice for a beach day where you want to feel comfortable in your bikini without overthinking it. The pattern makes it easy to wear the bikini on its own – a wrap sarong or a light cover-up can complement it if desired.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The mandala pattern stands out upon first wear, without being overwhelming – a calmness in the color.\u003cbr\u003e• By the water, when sunlight falls on the fabric, the pattern appears more three-dimensional than in the photo.\u003cbr\u003e• The form-fitting cut gives the entire set a clear silhouette – for moments when you simply want to be present.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you like, choose your size now – our chart will help you estimate.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g., 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g., 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g., 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"bust_min\": 64.2, \"bust_max\": 80.4, \"waist_min\": 47.4, \"waist_max\": 63.6, \"hip_min\": 68.4, \"hip_max\": 84.6}, {\"name\": \"M\", \"bust_min\": 68.4, \"bust_max\": 84.6, \"waist_min\": 51.6, \"waist_max\": 67.8, \"hip_min\": 72.6, \"hip_max\": 88.8}, {\"name\": \"L\", \"bust_min\": 72.6, \"bust_max\": 88.8, \"waist_min\": 55.8, \"waist_max\": 72.0, \"hip_min\": 76.8, \"hip_max\": 93.0}, {\"name\": \"XL\", \"bust_min\": 76.8, \"bust_max\": 93.0, \"waist_min\": 60.0, \"waist_max\": 76.2, \"hip_min\": 81.0, \"hip_max\": 97.2}, {\"name\": \"2XL\", \"bust_min\": 81.0, \"bust_max\": 97.2, \"waist_min\": 64.2, \"waist_max\": 80.4, \"hip_min\": 85.2, \"hip_max\": 101.4}, {\"name\": \"3XL\", \"bust_min\": 85.2, \"bust_max\": 101.4, \"waist_min\": 68.4, \"waist_max\": 84.6, \"hip_min\": 89.4, \"hip_max\": 105.6}, {\"name\": \"4XL\", \"bust_min\": 89.4, \"bust_max\": 105.6, \"waist_min\": 72.6, \"waist_max\": 88.8, \"hip_min\": 93.6, \"hip_max\": 109.8}, {\"name\": \"5XL\", \"bust_min\": 93.6, \"bust_max\": 109.8, \"waist_min\": 76.8, \"waist_max\": 93.0, \"hip_min\": 97.8, \"hip_max\": 114.0}, {\"name\": \"6XL\", \"bust_min\": 97.8, \"bust_max\": 114.0, \"waist_min\": 81.0, \"waist_max\": 97.2, \"hip_min\": 102.0, \"hip_max\": 118.2}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: Polyester fiber (polyester)\u003c\/li\u003e\n\n\u003cli\u003e✔ Cut: body-hugging, two-piece, with lacing detail on the top\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Rinse briefly with clear water after wearing, delicate wash 30 °C, do not tumble dry\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, the Women's Mandala Pattern Bikini can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini doesn't stay put and needs readjusting at the end of the day\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eFit and pattern can go hand in hand – if the cut and design are coordinated.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eBikini slips when entering the water\u003c\/li\u003e\n\n\u003cli\u003eBottom waistband feels tight after a while\u003c\/li\u003e\n\n\u003cli\u003ePattern looks different in photos than in reality\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eSome bikinis look just right in the photo – and then make themselves known at the beach: the top needs adjusting when surfacing, the bottom fits differently after an hour than when first put on. This is not an uncommon problem, but a frequent feedback for bikinis primarily designed for looks.\u003c\/p\u003e\n\n\u003cp\u003eA body-hugging bikini with a lacing detail like this one is designed for a secure fit during normal movement – walking on the beach, entering the water, lying on a sun lounger. The lacing on the top can help adjust the support individually. However, this model is not the first choice for intense water sports or strong currents – there are sportier cuts with more support for that.\u003c\/p\u003e\n\n\u003cp\u003eIf you are looking for a bikini that fits subtly close to the body, features a lively pattern, and is intended for relaxed beach days, this model may be suitable. If, on the other hand, you prefer maximum coverage or a very understated, solid-colored look, another model might be closer to what you are looking for.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eHow much support and how much pattern do you actually want on a beach day?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you assess the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eTake your time to look at the size chart and compare your measurements – without any pressure.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay special attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Still fits similarly after a long beach day as when first put on\u003c\/li\u003e\n\n\u003cli\u003e→ Pattern is perceived as more vibrant in direct sunlight than expected\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Colorful mandala pattern with geometric structure – visible, but not overwhelming\u003c\/li\u003e\n\n\u003cli\u003e✅ Lacing detail on the top for individually adjustable support during normal activity\u003c\/li\u003e\n\n\u003cli\u003e✅ Body-hugging cut – for moments by the beach, lake, and pool\u003c\/li\u003e\n\n\u003cli\u003e✅ Lightweight polyester material – smooth and comfortable on the skin\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Less suitable for intense water sports or strong currents\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Not ideal for those preferring very modest or solid-colored, minimalist swimwear\u003c\/li\u003e\n\n\u003cli\u003e⚠️ No shaping or supportive effect – if you're looking for maximum support, compare other cuts\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Women's Mandala Pattern Bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips after swimming\u003c\/td\u003e\n\n\u003ctd\u003eLacing detail allows for individually adjustable support during normal movement\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSize difficult to estimate online\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator with body measurements – chart for comparison before purchase\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePattern looks different in photos than in reality\u003c\/td\u003e\n\n\u003ctd\u003eGeometric mandala pattern with clear structure – more vibrant in sunlight than in the studio\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered exactly these situations with the Women's Mandala Pattern Bikini – so you have to adjust less when wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the Women's Mandala Pattern Bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSalt water, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang to dry, done. Delicate wash at 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: polyester fiber (polyester)\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay be a good fit if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003eWomen's Mandala Pattern Bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being intrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently asked questions about the Women's Mandala Pattern Bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for the colorful women's mandala bikini with lacing?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eTake your body measurements (bust, waist, hips) as a basis and compare them with the size chart. If unsure between two sizes, it can help to choose the larger variant – body-hugging bikinis generally fit more comfortably with a little more room.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the top fit when moving in the water?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe top is equipped with lacing that allows for individually adjustable support. For normal movement in the water – swimming, entering the water – the lacing can ensure a more secure fit. For intense water sports, a sporty cut with a firmer strap structure is generally more suitable.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I care for a mandala print bikini correctly?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear, cool water. Then wash on a delicate cycle at 30 °C, do not tumble dry. Washing inside out helps the pattern stay vibrant longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs the mandala bikini also suitable for Lake Constance?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe model is designed for relaxed bathing days at the lake, by the pool, and on vacation. The cut is well suited for calm swimming and stays on the shore of Lake Constance. For sporting activities like surfing or snorkeling, there are better-suited alternatives.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the mandala pattern look in reality – similar to the photo?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe mandala pattern with geometric shapes appears different depending on the light. In direct sunlight, the colors may appear more vibrant than in the product photo. The symmetrical structure of the pattern remains recognizable in all light conditions.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwired Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Colorful mandala pattern in sunlight by the water – colors stand out against the light sand\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Lacing detail on the top as a visible design accent when getting up from the sun lounger\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce to order – this reduces overproduction and inventory, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the Women's Mandala Pattern Bikini could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eWomen's Mandala Pattern Bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€22.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect Size \u0026amp; Order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the Women's Mandala Pattern Bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 2026-05-20\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Bikini Mandala Muster Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/new-style-sexy-bikini-with-rope-fe122d2c.png?v=1776854234\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"22.95\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"A \/ S","offer_id":54413465256204,"sku":"CJLJ113065001AZ","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"A \/ M","offer_id":54413465288972,"sku":"CJLJ113065002BY","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"A \/ L","offer_id":54413465321740,"sku":"CJLJ113065003CX","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"A \/ XL","offer_id":54413465354508,"sku":"CJLJ113065004DW","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"B \/ S","offer_id":54413465387276,"sku":"CJLJ113065005EV","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"B \/ M","offer_id":54413465420044,"sku":"CJLJ113065006FU","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"B \/ L","offer_id":54413465452812,"sku":"CJLJ113065007GT","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"B \/ XL","offer_id":54413465485580,"sku":"CJLJ113065008HS","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"C \/ S","offer_id":54413465518348,"sku":"CJLJ113065009IR","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"C \/ M","offer_id":54413465551116,"sku":"CJLJ113065010JQ","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"C \/ L","offer_id":54413465583884,"sku":"CJLJ113065011KP","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"C \/ XL","offer_id":54413465616652,"sku":"CJLJ113065012LO","price":22.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/new-style-sexy-bikini-with-rope-fe122d2c.png?v=1776854234"},{"product_id":"three-piece-bikini-printed-split-womens-swimsuit-suit","title":"Yellow Floral Bikini Women's","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a yellow bikini that just sits right at the beach – all day long?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that calm feeling when a bikini fits just right – without you constantly having to think about it.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eOver the course of a day at the beach, you'll see how a bikini really fits – when going into the water, getting up from the sand, sitting down on the shore.\u003c\/p\u003e\n\n  \u003ch2\u003eYellow Bikini for Women with Floral Detail – for Beach, Lake, and Summer Days\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nA yellow bikini with a delicate floral pattern at the hem – subtly placed, clean-cut, made from elastic material with comfortable freedom of movement.\u003c\/p\u003e\n\n\u003cp\u003eThe yellow is not a loud signal yellow, but a warmer sun yellow – like the first streak of light over Lake Constance in the early morning. The floral pattern is not spread over the entire fabric, but appears as a calm detail at the hem: a hint of summer, not a statement. If you like swimwear that doesn't immediately catch the eye but still says something, you might find exactly what you're looking for here.\u003c\/p\u003e\n\n\u003cp\u003eThe combination of clear yellow and the subtle floral detail looks light and at the same time grounded. On the shores of Lake Constance, where the light falls differently than on the Mediterranean, this bikini blends into the surroundings – not as an eye-catcher, but as part of the moment. As a three-piece set, the top can be flexibly combined with the briefs; the color harmonizes with white, beige, or natural tones, without being obtrusive.\u003c\/p\u003e\n\n\u003cp\u003eThree moments where the design works: In the early morning during the first dip in the water, when the yellow glows warmly in the light. When lying on the towel, when the floral pattern at the hem becomes gently visible. During an evening stroll along the shore, when the sarong loosely wrapped adds a second layer.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The yellow appears warm in sunlight, not gaudy – and remains pleasantly understated.\u003cbr\u003e• The floral detail at the hem is only noticeable on second glance – just enough.\u003cbr\u003e• Worn as a set or combined individually: the top is versatile.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you like, check the sizes – the size calculator will help you assess the right choice.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": []}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: Elastane\u003c\/li\u003e\n\n\u003cli\u003e✔ Design: Yellow with floral pattern at the hem\u003c\/li\u003e\n\n\u003cli\u003e✔ Product type: Bikini with sarong, three-piece combinable\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, the yellow floral women's bikini can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini is uncomfortable all day\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eFit, cut and a calm design – what fits together, what doesn't.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top doesn't really stay put when swimming\u003c\/li\u003e\n\n\u003cli\u003eEstimating size online is harder than expected\u003c\/li\u003e\n\n\u003cli\u003eAfter a few hours, the waistband feels uncomfortably tight\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eAnyone spending a day at the lake or beach moves more than planned – into the water, out of the water, turning on the towel, getting up. This is where it becomes clear whether a bikini really fits or if you constantly have to keep an eye on it. A top that slips when swimming, or a waistband that presses after two hours, is distracting – from what the day is supposed to be.\u003c\/p\u003e\n\n\u003cp\u003eThis is often not due to the wearer, but to the cut: if top and bottom would need to come from different size ranges but are sold as a fixed set, a compromise often arises that doesn't fully satisfy either side. Elastic material can help, but it's no substitute for a cut designed for movement.\u003c\/p\u003e\n\n\u003cp\u003eThis yellow bikini with a floral pattern is designed for a calm fit during everyday movements near water – no competitive swimming, no sports, but a relaxed beach day. If you plan intense water activities or prefer a very sporty cut, another model might be more suitable. For a quiet day at the lake or beach, where comfort and subtle design are paramount, this bikini can be a suitable option.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDoes this fit how you spend a beach day?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you assess the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eCheck the available sizes and find out what's right for you.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay special attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Sits calmly when walking and standing up\u003c\/li\u003e\n\n\u003cli\u003e→ Floral pattern is only noticeable on second glance – deliberately subtle\u003c\/li\u003e\n\n\u003cli\u003e→ Yellow appears warm in sunlight, not gaudy\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Subtle floral detail at the hem – looks reserved, not obtrusive\u003c\/li\u003e\n\n\u003cli\u003e✅ Elastic material – adapts to normal movement\u003c\/li\u003e\n\n\u003cli\u003e✅ Combinable as a three-piece set – flexible in composition\u003c\/li\u003e\n\n\u003cli\u003e✅ Warm sun yellow – harmonizes with beige, white, and natural colors\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Less suitable for intense swimming or sporty water activities\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer strong colors or large patterns will find a calmer design here\u003c\/li\u003e\n\n\u003cli\u003e⚠️ No documented information on chlorine or saltwater resistance\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Yellow Floral Women's Bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming\u003c\/td\u003e\n\n\u003ctd\u003eDesigned for a stable fit during normal everyday movement near water\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSize hard to estimate online\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator with height and weight as a guide\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eBikini sets without flexibility for top\/bottom\u003c\/td\u003e\n\n\u003ctd\u003eThree-piece combinable – top and briefs can be assessed separately\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eLoud patterns or large logos dominate the design\u003c\/td\u003e\n\n\u003ctd\u003eDelicate floral pattern at the hem – subtly placed, no print over the entire fabric\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered precisely these situations with the yellow floral women's bikini – so you'll need to adjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the yellow floral women's bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments where you'll notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash 30°C, do not tumble dry – observe care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: Elastane\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay fit well if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003eyellow floral women's bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about the Yellow Floral Women's Bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for the yellow women's bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eUse our size calculator and enter your height and weight – this helps to assess the suitable cut. If in doubt between two sizes, comparing the measurements directly can help.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs this floral bikini also suitable for swimming?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe bikini is designed for a calm fit during normal movement in the water – for relaxed beach or lake days. For intense swimming or sporty water activities, a model specifically designed for that purpose is generally more suitable.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I care for this floral bikini properly?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water, then wash on a delicate cycle at 30°C. Do not tumble dry – drying flat or hanging in the air preserves shape and color longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan I combine the top and bottom of this bikini set separately?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe top and briefs are designed as a set, but can also be combined with other pieces in similar colors. Which combination suits you depends on the cut and color of the other pieces.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the waistband fit during movement – for example, when standing up or walking?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe waistband is designed for a comfortable fit during normal everyday movement – when walking, sitting down, and going into the water. The elastic material adapts accordingly. With very intense movement, the result may vary.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwired Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Warm sun yellow in the morning light on the shore of Lake Constance\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Floral pattern visible at the hem when lying on the towel\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce to order – this reduces overproduction and inventory, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the yellow floral women's bikini can be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eYellow Floral Women's Bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€38.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the yellow floral women's bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"gelber Bikini Blumen Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/three-piece-bikini-printed-split-o1cn018j2s6c-model-shot.png?v=1776775588\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"38.95\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"C3854 Yellow Printings \/ S","offer_id":54413471645964,"sku":"CJYD231310401AZ","price":38.95,"currency_code":"EUR","in_stock":true},{"title":"C3854 Yellow Printings \/ M","offer_id":54413471678732,"sku":"CJYD231310402BY","price":38.95,"currency_code":"EUR","in_stock":true},{"title":"C3854 Yellow Printings \/ L","offer_id":54413471711500,"sku":"CJYD231310403CX","price":38.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/three-piece-bikini-printed-split-o1cn018j2s6c-model-shot.png?v=1776775588"},{"product_id":"three-piece-v-buckle-solid-color-printing-triangle-bikini","title":"yellow bikini tropical leaf pattern","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a yellow bikini that simply stays put on the beach?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that calm feeling when a bikini set fits perfectly from the start – no tugging, no second thoughts.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eWhen getting out of the water, when lying on the towel – that's when you see if a bikini really suits you.\u003c\/p\u003e\n\n  \u003ch2\u003eYellow Women's Bikini with Tropical Leaf Print – Triangle Top with Cover-up for Beach and Lake\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nTriangle shape with V-buckle detail on the top – for a natural silhouette without padding. The tropical leaf print in yellow adds color, and the light cover-up completes the set as a third piece for the walk from the water to your sunbed.\u003c\/p\u003e\n\n\u003cp\u003eThe pattern is colorful but not loud. Large-leaved tropical shapes on a yellow background – an imagery reminiscent of warm summer afternoons: on the shore of Lake Constance, on a terrace, somewhere where the air smells a little like sunscreen. The cover-up with the same pattern makes the set a coordinated whole, without you having to search for matching items.\u003c\/p\u003e\n\n\u003cp\u003eThe triangle top features a subtle V-buckle detail in the center. This is not an intrusive accent, but it gives the front area a clear line – instead of the often faceless surface of many simple triangle tops. Those who prefer very minimalist swimwear without any details might find the buckle element too prominent. Those who like a subtle but visible accent can consider it a deliberate feature. The straps are not adjustable – which keeps the construction simple, but means that the fit depends more on the chosen size.\u003c\/p\u003e\n\n\u003cp\u003eThe set fits well in situations where you don't want to spend too much thought on your outfit: into the water, throw on the cover-up, continue. By the lake after a long workday, on a balcony vacation overlooking the sea, or simply while doing nothing by the pool – the tropical yellow brings atmosphere without much effort.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The pattern immediately catches the eye – but calmly, not overwhelmingly\u003cbr\u003e• The cover-up matches the top without you having to search\u003cbr\u003e• The set looks coordinated without appearing like a high-effort matching set\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you're looking for a coordinated triangle set with character, it's worth checking the size chart.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": []}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: Polyester Fiber\u003c\/li\u003e\n\n\u003cli\u003e✔ Set: Triangle bikini top with V-buckle detail, bikini brief, cover-up with leaf pattern\u003c\/li\u003e\n\n\u003cli\u003e✔ Fit: unpadded, wire-free, non-adjustable straps, hook closure\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size fit you, the yellow bikini with tropical leaf print can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini set should consist of three pieces – and still look calm\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eTriangle top, brief, and cover-up – a set that belongs together.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eTop and bottom look separate, even though they're supposed to be a set\u003c\/li\u003e\n\n\u003cli\u003eThe pattern is either too subtle or too loud – nothing in between\u003c\/li\u003e\n\n\u003cli\u003eTriangle tops without details sometimes appear arbitrary\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eMany bikinis look good in the product image, but on the beach, it turns out: top and bottom look uncoordinated, or the top shifts with every movement. This often happens when the cut, strap design, and details are not coordinated – and you only notice it once you've been in the water.\u003c\/p\u003e\n\n\u003cp\u003eFor triangle tops without internal construction, this is often due to straps that are too soft and shift with movement. Non-adjustable straps with a fixed hook closure can help the top sit more calmly – however, this depends more on the chosen size than with adjustable models.\u003c\/p\u003e\n\n\u003cp\u003eThis set – top, brief, and cover-up – is designed for a natural, light silhouette. No padding, no underwire, no push-up effect. Those who expect strong support or a lot of volume are probably better off with a more structured bikini top. Those looking for a simple triangle shape in a coordinated set with some color and pattern will find an easy option here. Does this match what you envision?\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eIf you're curious about how the pattern looks on the body, take a look at the product images in the detailed view.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay special attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Calm fit on the beach when standing up and moving\u003c\/li\u003e\n\n\u003cli\u003e→ Coordinated pattern across all three pieces – no searching needed\u003c\/li\u003e\n\n\u003cli\u003e→ Light cover-up for the walk from the water to the sunbed\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis helps you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Three-piece set – top, brief, and cover-up in the same pattern, coordinated\u003c\/li\u003e\n\n\u003cli\u003e✅ Triangle shape with V-buckle detail – subtle accent without strong embellishment\u003c\/li\u003e\n\n\u003cli\u003e✅ Unpadded and wire-free – designed for a natural silhouette under normal use\u003c\/li\u003e\n\n\u003cli\u003e✅ Tropical leaf pattern in yellow – vibrant color that suits beach and lake\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not ideal for those expecting strong push-up effect or a lot of padding\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Not ideal for those needing very adjustable straps for fine-tuning\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Not ideal for intensive water sports with high movement demands\u003c\/li\u003e\n\n\u003cli\u003e⚠️ The buckle detail is visible – those who prefer very minimalist swimwear without any front detail might find it too prominent\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Yellow bikini with tropical leaf pattern\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTriangle tops sit unsteadily if straps are too soft or too flexible\u003c\/td\u003e\n\n\u003ctd\u003eNon-adjustable straps with a hook closure can contribute to a more consistent fit – depending on the chosen size\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eMany triangle tops appear arbitrary and unstructured in the front area\u003c\/td\u003e\n\n\u003ctd\u003eThe V-buckle detail sets a visible accent in the center, without significantly altering the simple triangle shape\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eWith bikini sets, the top and bottom often don't really match\u003c\/td\u003e\n\n\u003ctd\u003eThis set is designed as a three-piece – top, brief, and cover-up share the same pattern and are designed as a unit\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eUnpadded models are sometimes considered to lack shaping\u003c\/td\u003e\n\n\u003ctd\u003eThe top is intentionally unpadded and wire-free – for those who prefer a natural silhouette without shaping\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered precisely these situations with the yellow bikini tropical leaf pattern – so you have to readjust less when wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the yellow bikini with tropical leaf pattern feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments where you'll notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSalt water, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash at 30°C, do not tumble dry – observe care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: Polyester Fiber\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay be a good fit if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003eyellow bikini with tropical leaf pattern\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about the yellow bikini with tropical leaf pattern\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat is included in the three-piece triangle bikini set with cover-up?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe set consists of three parts: a triangle bikini top with a V-buckle detail in the center, a matching bikini brief, and a light cover-up in the same tropical leaf pattern. All three parts are coordinated.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs the bikini top padded or underwired?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eNo – the top is unpadded and wire-free. It is designed for a natural silhouette without a push-up effect. Those looking for strong support or a lot of shaping are better off with a more structured top.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for the yellow bikini with tropical leaf pattern?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eSince the straps are not adjustable, the fit depends more on the chosen size than with adjustable models. Our size calculator helps you estimate based on height and weight – if in doubt, one size larger might be the more suitable choice.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I care for this bikini properly?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water, then wash at 30 °C on a delicate cycle. Do not tumble dry – lay flat to air dry to help maintain shape and material for longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat situations is this bikini set with cover-up and leaf pattern designed for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe set is designed for relaxed beach days – at the lake, pool, or beach. The cover-up is suitable for the walk from the water to the sunbed or as a light cover-up in between. It is not a sports bikini for intensive swimming with high movement demands.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the waistband of the bikini brief sit during movement?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe bikini brief has a normal waistband without special reinforcement. During calm everyday movements on the beach, it generally stays put. The model is not designed for intensive water sports or strong movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/die-perfekte-bademode-finden\"\u003eFinding the Perfect Swimwear\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/trendige-bademode-fur-damen-2025-stilvoll-am-strand\"\u003eTrendy Swimwear for Women 2025: Stylish at the Beach\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bademode-fur-frauen\"\u003eSwimwear for Women\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Tropical leaf pattern in yellow – front view with V-buckle detail of the triangle top\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Cover-up in the same pattern – worn over the bikini set\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and stock, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified according to EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the yellow bikini with tropical leaf pattern could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eyellow bikini tropical leaf pattern\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€31.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the yellow bikini with tropical leaf pattern can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"gelber Bikini tropisches Blättermuster\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/three-piece-v-buckle-bikini-o1cn01c2jiyb-model-shot.png?v=1776775372\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"31.95\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Yellow \/ S","offer_id":54413471777036,"sku":"CJYD241320501AZ","price":31.95,"currency_code":"EUR","in_stock":true},{"title":"Yellow \/ M","offer_id":54413471809804,"sku":"CJYD241320502BY","price":31.95,"currency_code":"EUR","in_stock":true},{"title":"Yellow \/ L","offer_id":54413471842572,"sku":"CJYD241320503CX","price":31.95,"currency_code":"EUR","in_stock":true},{"title":"Yellow \/ XL","offer_id":54413471875340,"sku":"CJYD241320504DW","price":31.95,"currency_code":"EUR","in_stock":true},{"title":"White \/ S","offer_id":54413471908108,"sku":"CJYD241320505EV","price":31.95,"currency_code":"EUR","in_stock":true},{"title":"White \/ M","offer_id":54413471940876,"sku":"CJYD241320506FU","price":31.95,"currency_code":"EUR","in_stock":true},{"title":"White \/ L","offer_id":54413471973644,"sku":"CJYD241320507GT","price":31.95,"currency_code":"EUR","in_stock":true},{"title":"White \/ XL","offer_id":54413472006412,"sku":"CJYD241320508HS","price":31.95,"currency_code":"EUR","in_stock":true},{"title":"Orange \/ S","offer_id":54413472039180,"sku":"CJYD241320509IR","price":31.95,"currency_code":"EUR","in_stock":true},{"title":"Orange \/ M","offer_id":54413472071948,"sku":"CJYD241320510JQ","price":31.95,"currency_code":"EUR","in_stock":true},{"title":"Orange \/ L","offer_id":54413472104716,"sku":"CJYD241320511KP","price":31.95,"currency_code":"EUR","in_stock":true},{"title":"Orange \/ XL","offer_id":54413472137484,"sku":"CJYD241320512LO","price":31.95,"currency_code":"EUR","in_stock":true},{"title":"Pink \/ S","offer_id":54413472170252,"sku":"CJYD241320513MN","price":31.95,"currency_code":"EUR","in_stock":true},{"title":"Pink \/ M","offer_id":54413472203020,"sku":"CJYD241320514NM","price":31.95,"currency_code":"EUR","in_stock":true},{"title":"Pink \/ L","offer_id":54413472235788,"sku":"CJYD241320515OL","price":31.95,"currency_code":"EUR","in_stock":true},{"title":"Pink \/ XL","offer_id":54413472268556,"sku":"CJYD241320516PK","price":31.95,"currency_code":"EUR","in_stock":true},{"title":"White Flower \/ S","offer_id":54413472301324,"sku":"CJYD241320517QJ","price":31.95,"currency_code":"EUR","in_stock":true},{"title":"White Flower \/ M","offer_id":54413472334092,"sku":"CJYD241320518RI","price":31.95,"currency_code":"EUR","in_stock":true},{"title":"White Flower \/ L","offer_id":54413472366860,"sku":"CJYD241320519SH","price":31.95,"currency_code":"EUR","in_stock":true},{"title":"White Flower \/ XL","offer_id":54413472399628,"sku":"CJYD241320520TG","price":31.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/three-piece-v-buckle-bikini-o1cn01c2jiyb-model-shot.png?v=1776775372"},{"product_id":"ladies-leopard-print-bikini-swimsuit","title":"Leopard Print Bikini for Women","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a leopard print bikini sit calmly on the beach – and look effortlessly chic?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that feeling when a bikini top just stays in place – all day, without needing adjustment.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eOver the course of a day at the beach, you'll find out if a bikini truly fits – or if it constantly demands attention.\u003c\/p\u003e\n\n  \u003ch2\u003eWomen's Leopard Print Bikini – subtle animal print for beach and lake\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nA two-piece with a leopard print – for beach days where the pattern speaks for itself, without being too loud. The leopard print is deliberately kept calm: neutral tones, no contrast overload, no flashy print.\u003c\/p\u003e\n\n\u003cp\u003eLeopard print has a long history in swimwear – and the most convincing variations are those that don't try to steal all the attention. This women's leopard print bikini follows that logic: the color palette moves in muted natural tones, so the pattern acts like a calm texture rather than a statement. On the shores of Lake Constance, where the light is often diffuse and soft, this is precisely what unfolds its own charm.\u003c\/p\u003e\n\n\u003cp\u003eThe pattern is easy to combine – with a plain beach towel, a white oversized shirt, or a simple wrap skirt. You sit on the shore, the light falls at an angle, and the leopard print plays with light and shadow in a way that catches the eye without dominating. When getting up from the sun lounger, going into the water, strolling along the beach promenade – the pattern adapts to movement without being too demanding.\u003c\/p\u003e\n\n\u003cp\u003eAs a gift, this bikini works for people who appreciate style but don't like loud prints – who prefer to be subtle rather than obvious. As your own choice, it's suitable for beach days when you simply want to be there, without worrying about your outfit.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice\u003c\/h3\u003e\n\n\u003cp\u003e• The pattern catches your eye – but not everyone's immediately\u003cbr\u003e• You reach for it in your suitcase in the morning because it goes with so many things\u003cbr\u003e• In the evening after a long day at the beach, you wonder why you didn't have it sooner\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you like, choose your size now – our size calculator helps with the estimation.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"bust_min\": 81.0, \"bust_max\": 86.0, \"waist_min\": 61.0, \"waist_max\": 66.0, \"hip_min\": 86.0, \"hip_max\": 91.0}, {\"name\": \"M\", \"bust_min\": 86.0, \"bust_max\": 91.0, \"waist_min\": 66.0, \"waist_max\": 71.0, \"hip_min\": 91.0, \"hip_max\": 96.0}, {\"name\": \"L\", \"bust_min\": 91.0, \"bust_max\": 96.0, \"waist_min\": 71.0, \"waist_max\": 76.0, \"hip_min\": 96.0, \"hip_max\": 101.0}, {\"name\": \"XL\", \"bust_min\": 96.0, \"bust_max\": 101.0, \"waist_min\": 76.0, \"waist_max\": 81.0, \"hip_min\": 101.0, \"hip_max\": 106.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: Polyester fiber (Polyester)\u003c\/li\u003e\n\n\u003cli\u003e✔ Pattern: Leopard print in neutral tones\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Rinse briefly with clear water after wearing, delicate wash 30 °C, do not tumble dry\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, a women's leopard print bikini can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini top shifts when you move\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eFit and comfort on a beach day – what can contribute to it.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top shifts even when you first go into the water\u003c\/li\u003e\n\n\u003cli\u003eThe waistband feels uncomfortably tight after an hour\u003c\/li\u003e\n\n\u003cli\u003eThe pattern looks different in the photo than in reality\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou go into the water – and with the very first stroke, you realize you have to adjust your top. Or after a while, the waistband sits in a place that no longer feels comfortable. These are situations many people know, and they usually have to do with the cut – not the person.\u003c\/p\u003e\n\n\u003cp\u003eBikini tops that slip when moving are often not designed for active wear – they are optimized for static photos, not for actual swimming. The waistband that digs in often has little room for the body's natural movement. This is not a personal fit problem, but a question of the cut.\u003c\/p\u003e\n\n\u003cp\u003eThis leopard print bikini is designed for a calm fit during normal movement – i.e., while swimming, getting up from a sun lounger, playing water volleyball, or simply walking along the shore. It can help you worry less about the fit. If you plan intense water sports like surfing or water skiing, a sporty swimsuit with a tighter fit might be the more suitable choice.\u003cbr\u003e\u003cbr\u003e\u003cstrong\u003eDoes a calmer, more subtle cut match what you expect from a beach day?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eChoose your size above – top and bottom can be selected separately.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay special attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Top usually stays in place while swimming\u003c\/li\u003e\n\n\u003cli\u003e→ Pattern looks calmer on the water than expected – pleasantly discreet\u003c\/li\u003e\n\n\u003cli\u003e→ Still fits like the first day after a week at the beach\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Subtle leopard print in neutral tones – can be combined with many beach outfits\u003c\/li\u003e\n\n\u003cli\u003e✅ Designed for a calm fit during normal movement\u003c\/li\u003e\n\n\u003cli\u003e✅ Top and bottom can be chosen separately – for an individual fit\u003c\/li\u003e\n\n\u003cli\u003e✅ Polyester fiber – dimensionally stable under normal use\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Less suitable for intense water sports like surfing or water skiing\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer a very striking, high-contrast pattern will find a calmer look here\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Women's Leopard Print Bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips while swimming\u003c\/td\u003e\n\n\u003ctd\u003eDesigned for a stable fit during normal movement in the water\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eWaistband digs in uncomfortably after a short wear time\u003c\/td\u003e\n\n\u003ctd\u003eCut with room for movement for longer beach days\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSize difficult to estimate online\u003c\/td\u003e\n\n\u003ctd\u003eTop and bottom can be chosen separately, size calculator available\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eLeopard print looks too loud or artificial\u003c\/td\u003e\n\n\u003ctd\u003eCalm, muted color tones – pattern as a subtle texture, not a statement\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe considered precisely these situations with the women's leopard print bikini – so you have to adjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the women's leopard print bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even when moving.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash 30°C, do not tumble dry – observe care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: polyester fiber (polyester)\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eCould be a good fit if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003ewomen's leopard print bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about Women's Leopard Print Bikinis\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for a women's leopard print bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eOur size calculator helps you with the estimation – enter your height and weight. Top and bottom are separately selectable, so you can choose both parts independently in your suitable size. If unsure between two sizes, we generally recommend the larger option for more freedom of movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the waistband of this animal print bikini fit when moving?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe bikini is designed for a calm fit during normal activity – i.e., while swimming, walking, and everyday beach movements. For very intense water activities, a tighter sports swimsuit may be the more suitable choice.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for a bikini made of polyester fiber?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eRinse briefly with clear water after wearing, then wash at 30 °C on a delicate cycle. Do not tumble dry – air drying preserves shape and color longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat situations is this simple leopard print bikini suitable for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eFor relaxed beach days at the lake, beach, or pool – wherever you want to move without constantly adjusting your bikini. For high-performance water sports like surfing, a special sports swimsuit is generally more suitable.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eAre the top and bottom of the leopard print bikini set available separately?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes, the top and bottom can be chosen separately in the appropriate size. This can help if your torso and hips are different sizes.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Leopard print in muted natural tones on the shores of Lake Constance in the morning light\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Bikini wearer goes into the calm lake water – top stays in place\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and inventory, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – information checked in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, a women's leopard print bikini could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eWomen's Leopard Print Bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€20.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but the moments you experience in it. \n        We hope that the women's leopard print bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Leopardenmuster Bikini Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/ladies-leopard-print-bikini-model.png?v=1776610401\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"20.95\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Leopard spots \/ M","offer_id":54413472497932,"sku":"CJYDYYBJ00922-Leopard spots-M","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"Leopard spots \/ S","offer_id":54413472629004,"sku":"CJYDYYBJ00922-Leopard spots-S","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"Leopard spots \/ L","offer_id":54413473251596,"sku":"CJYDYYBJ00922-Leopard spots-L","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"Leopard spots \/ XL","offer_id":54413473743116,"sku":"CJYDYYBJ00922-Leopard spots-XL","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"Leopard pink \/ M","offer_id":54413472694540,"sku":"CJYDYYBJ00922-Leopard pink-M","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"Leopard pink \/ S","offer_id":54413472530700,"sku":"CJYDYYBJ00922-Leopard pink-S","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"Leopard pink \/ L","offer_id":54413473775884,"sku":"CJYDYYBJ00922-Leopard pink-L","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"Leopard pink \/ XL","offer_id":54413472891148,"sku":"CJYDYYBJ00922-Leopard pink-XL","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"Serpentine red \/ M","offer_id":54413472661772,"sku":"CJYDYYBJ00922-Serpentine red-M","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"Serpentine red \/ S","offer_id":54413473612044,"sku":"CJYDYYBJ00922-Serpentine red-S","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"Serpentine red \/ L","offer_id":54413473382668,"sku":"CJYDYYBJ00922-Serpentine red-L","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"Serpentine red \/ XL","offer_id":54413473677580,"sku":"CJYDYYBJ00922-Serpentine red-XL","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"Leopard red \/ M","offer_id":54413473022220,"sku":"CJYDYYBJ00922-Leopard red-M","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"Leopard red \/ S","offer_id":54413472727308,"sku":"CJYDYYBJ00922-Leopard red-S","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"Leopard red \/ L","offer_id":54413473513740,"sku":"CJYDYYBJ00922-Leopard red-L","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"Leopard red \/ XL","offer_id":54413473546508,"sku":"CJYDYYBJ00922-Leopard red-XL","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"Printed blue \/ M","offer_id":54413472792844,"sku":"CJYDYYBJ00922-Printed blue-M","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"Printed blue \/ S","offer_id":54413473153292,"sku":"CJYDYYBJ00922-Printed blue-S","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"Printed blue \/ L","offer_id":54413473710348,"sku":"CJYDYYBJ00922-Printed blue-L","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"Printed blue \/ XL","offer_id":54413472956684,"sku":"CJYDYYBJ00922-Printed blue-XL","price":20.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/ladies-leopard-print-bikini-model.png?v=1776610401"},{"product_id":"starry-sky-bikini-set","title":"Bikini star pattern pink blue","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini that stays put while swimming – and still looks good?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003eMaybe you know that relaxed feeling when a bikini stays in place all day without you having to think about it once.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eMany don't notice the difference immediately – only after the third time entering the water when nothing has slipped.\u003c\/p\u003e\n\n  \u003ch2\u003eBikini Star Pattern Pink Blue – Two-Piece Set for Lake, Pool, and Beach\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nA two-piece nylon bikini set – designed for relaxed beach days, with a subtle pink and blue star pattern that is more understated than loud.\u003c\/p\u003e\n\n\u003cp\u003eAt first glance, the star pattern looks like a small evening sky over Lake Constance – not garish, but with a quiet sparkle. The combination of pink and blue moves somewhere between sunset and dusk: familiar, but not arbitrary. When you stand in the shallow shore water and the colors change in the light, the pattern shows its calm quality.\u003c\/p\u003e\n\n\u003cp\u003eThe design suits people who don't need a stage at the beach – but simply want to be there. When getting up from the towel, when strolling along the shore, when having coffee after a swim: The star pattern blends in without disappearing. It can be easily combined with a plain beach towel or light shorts, without much thought.\u003c\/p\u003e\n\n\u003cp\u003eThis bikini might be a good fit if you like simple prints that say something – without saying too much. For a vacation at the lake, a weekend at the pool, or a long summer day at the beach where comfort and appearance can be equally important.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The pattern appears different in the light than in the photo – a little livelier, less flat.\u003cbr\u003e• Pink and blue remain legible even when wet – no fading at first glance.\u003cbr\u003e• The set looks like one – even if the top and bottom are chosen separately.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you like, you can use our size calculator to estimate the cut and size.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"bust_min\": 72.0, \"bust_max\": 80.0, \"waist_min\": 60.0, \"waist_max\": 66.0, \"hip_min\": 78.0, \"hip_max\": 86.0}, {\"name\": \"M\", \"bust_min\": 80.0, \"bust_max\": 88.0, \"waist_min\": 64.0, \"waist_max\": 72.0, \"hip_min\": 86.0, \"hip_max\": 94.0}, {\"name\": \"L\", \"bust_min\": 88.0, \"bust_max\": 96.0, \"waist_min\": 70.0, \"waist_max\": 76.0, \"hip_min\": 94.0, \"hip_max\": 102.0}, {\"name\": \"XL\", \"bust_min\": 96.0, \"bust_max\": 102.0, \"waist_min\": 76.0, \"waist_max\": 86.0, \"hip_min\": 102.0, \"hip_max\": 110.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: Nylon\u003c\/li\u003e\n\n\u003cli\u003e✔ Design: Two-piece bikini set\u003c\/li\u003e\n\n\u003cli\u003e✔ Pattern: Star pattern in pink and blue\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, the pink and blue star pattern bikini can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen bikinis become restless in the water – and no longer fit afterwards\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eWhat often remains unclear when buying – and what matters for fit and material.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top doesn't hold when swimming, even though the size is correct\u003c\/li\u003e\n\n\u003cli\u003eThe waistband digs in after a while, especially when sitting\u003c\/li\u003e\n\n\u003cli\u003eThe wet feeling is unpleasant – sticky or too heavy\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eSome bikinis look good in the photo – and then create work at the beach. The top slips when entering the water, the waistband digs in after sitting down, and everything feels somehow wrong when wet. This is not an isolated case, but a common pattern with swimwear designed for aesthetics rather than movement.\u003c\/p\u003e\n\n\u003cp\u003eIt's often due to the choice of material or the cut: fabrics that become heavy when wet or have little elasticity react to movement differently than expected. The waistband shape also determines whether a bikini still fits an hour later as it did when put on – or whether you constantly have to readjust it.\u003c\/p\u003e\n\n\u003cp\u003eThis bikini is made of nylon – a material that remains light under normal use and feels comfortable even when wet. Whether this suits you depends on what you expect from the fabric. If you are looking for a sporty, functional bikini for intensive water sports training, this cut might not be your first choice. For relaxed beach days at the lake, pool, or beach, it can be a calm option.\n\u003cbr\u003e\u003cbr\u003eDoes a subtly patterned nylon bikini suit what you envision for this summer?\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eIf you have any questions about the fit, you can reach us anytime – without any purchase obligation.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Still fits after a long day at the lake as it did when put on\u003c\/li\u003e\n\n\u003cli\u003e→ The pattern appears livelier in the light than in the photo\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Nylon material – light and comfortable even when wet under normal use\u003c\/li\u003e\n\n\u003cli\u003e✅ Subtle star pattern in pink and blue – understated, but recognizable\u003c\/li\u003e\n\n\u003cli\u003e✅ Two-piece set – top and bottom can be estimated separately\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Less suitable for intensive water sports or competitive swimming\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer bold prints or striking colors will find a rather calm pattern here\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Bikini Star Pattern Pink Blue\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming\u003c\/td\u003e\n\n\u003ctd\u003eNylon cut designed for a secure fit with normal movement in the water\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSwimwear feels heavy and sticky when wet\u003c\/td\u003e\n\n\u003ctd\u003eNylon remains light under normal use – even after entering the water\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSize difficult to estimate online\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator available with height and weight as a guide\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePattern looks faded after one season\u003c\/td\u003e\n\n\u003ctd\u003eObserve care instructions – rinse briefly and wash on a delicate cycle at 30 °C to preserve color longer\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered precisely such situations with the Pink and Blue Star Pattern Bikini – so you have to readjust less when wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the Pink and Blue Star Pattern Bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSalt water, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang, done. Delicate wash 30°C, do not tumble dry – observe care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: nylon\/nylon\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay fit well if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003epink and blue star pattern bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about the Pink and Blue Star Pattern Bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for this pink and blue star pattern bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eSince bikini sizes can vary depending on the cut and manufacturer, we recommend using our size calculator. Enter your height and weight – this will give you a guide for the right size. If you are unsure between two sizes, it may help to choose the larger one.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the bikini fit when moving in the water?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe set is made of nylon, a material that remains light under normal use and feels comfortable even when wet. With calm swimming movements and everyday beach activities, the fit generally remains stable. This cut is less designed for intensive water sports or competitive swimming.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I care for this bikini properly?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear, lukewarm water. Wash on a delicate cycle at 30 °C, do not tumble dry. This will preserve the shape and color of the star pattern longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs this bikini also suitable for a lake vacation?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes, the set is designed for relaxed bathing days – at the lake, pool, or beach. The subtle pink and blue star pattern goes well with a calm summer look. It is less designed for very sporty water activities.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan I choose the top and bottom of the bikini set separately?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThis is possible depending on availability. If you need different sizes for the top and bottom, check the individual items in the product selection or contact us – we will help you.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Star pattern in shallow shore water – Pink and blue in the sunlight\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Set spread out on a light towel – pattern and color combination up close\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and warehouse stock, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – information verified in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the pink and blue star pattern bikini can be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eBikini Star Pattern Pink Blue\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€22.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the pink and blue star pattern bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 2026-05-20\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Bikini Sternenmuster pink blau\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/starry-sky-bikini-set-model-v12.png?v=1776608094\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"22.95\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Red \/ S","offer_id":54413475283212,"sku":"CJYDYYLJ00460-Red-S","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Purple \/ M","offer_id":54413475315980,"sku":"CJYDYYLJ00460-Purple-M","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Green \/ L","offer_id":54413475348748,"sku":"CJYDYYLJ00460-Green-L","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Purple \/ XL","offer_id":54413475381516,"sku":"CJYDYYLJ00460-Purple-XL","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Purple \/ S","offer_id":54413475414284,"sku":"CJYDYYLJ00460-Purple-S","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Green \/ M","offer_id":54413475447052,"sku":"CJYDYYLJ00460-Green-M","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Green \/ XL","offer_id":54413475479820,"sku":"CJYDYYLJ00460-Green-XL","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Red \/ XL","offer_id":54413475512588,"sku":"CJYDYYLJ00460-Red-XL","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Red \/ L","offer_id":54413475545356,"sku":"CJYDYYLJ00460-Red-L","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Green \/ S","offer_id":54413475578124,"sku":"CJYDYYLJ00460-Green-S","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Purple \/ L","offer_id":54413475610892,"sku":"CJYDYYLJ00460-Purple-L","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Red \/ M","offer_id":54413475643660,"sku":"CJYDYYLJ00460-Red-M","price":22.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/starry-sky-bikini-set-model-v12.png?v=1776608094"},{"product_id":"solid-color-bikini-swimsuit-sexy-black-retro-high-waist-bikini-swimsuit","title":"black high-waisted bikini","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a black bikini sitting by the lake – and still look the same after swimming?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that calm feeling when a bikini just stays where it is – without you having to think about it.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eAnd that's exactly where many notice the difference – not when putting it on, but when the beach day gets longer.\u003c\/p\u003e\n\n  \u003ch2\u003eWomen's Black High-Waisted Bikini – Simple for Lake, Beach, and Vacation\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nHigh-waisted, emphasizing the waist – plain black with no pattern, retro cut that remains timeless.\u003c\/p\u003e\n\n\u003cp\u003eThis black bikini for women thrives on what it doesn't have: no print, no pattern, no flashy buckle. Just a calm silhouette that feels as appropriate on the shores of Lake Constance as it does by the Mediterranean Sea. The black is deep and even – a color that doesn't ask questions, but simply is.\u003c\/p\u003e\n\n\u003cp\u003eThe high-waist cut sits at the waist and gives the bikini bottom a hold that barely changes when getting up from the towel or going into the water. The top remains proportionally slim – the combination of a high waist and a minimalist top creates a line reminiscent of sixties vintage swimwear, without appearing nostalgic. Those who appreciate simple swimwear and prefer not to wear patterns will find a form here that is understated yet present.\u003c\/p\u003e\n\n\u003cp\u003eWalking on the beach, with the top following arm movements without slipping. By the lake on the pier, with the high waist staying put when sitting down. On vacation, when combining the bikini with a wide linen skirt and going directly from the water to the ice cream parlor – black makes this possible, without having to think twice.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The waistband is still in the same place after an hour in the water as it was when you put it on – no pulling, no adjusting.\u003cbr\u003e• The deep black can be combined with almost anything – pareo, shorts, dress – without planning.\u003cbr\u003e• The cut is reminiscent of retro swimwear, yet it doesn't look like a costume – rather like a quiet decision for timelessness.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you like, check out the available sizes – the size calculator will help you choose the right top and bottom.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"XS\", \"bust_min\": 76.0, \"bust_max\": 81.0, \"waist_min\": 104.1, \"waist_max\": 126.6, \"hip_min\": 81.0, \"hip_max\": 86.0}, {\"name\": \"S\", \"bust_min\": 81.0, \"bust_max\": 86.0, \"waist_min\": 114.6, \"waist_max\": 137.1, \"hip_min\": 86.0, \"hip_max\": 91.0}, {\"name\": \"M\", \"bust_min\": 86.0, \"bust_max\": 91.0, \"waist_min\": 61.0, \"waist_max\": 66.0, \"hip_min\": 91.0, \"hip_max\": 97.0}, {\"name\": \"L\", \"bust_min\": 91.0, \"bust_max\": 97.0, \"waist_min\": 66.0, \"waist_max\": 71.0, \"hip_min\": 97.0, \"hip_max\": 102.0}, {\"name\": \"XL\", \"bust_min\": 97.0, \"bust_max\": 102.0, \"waist_min\": 71.0, \"waist_max\": 76.0, \"hip_min\": 102.0, \"hip_max\": 107.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Cut: High waist, retro silhouette\u003c\/li\u003e\n\n\u003cli\u003e✔ Color: Black (solid, no pattern)\u003c\/li\u003e\n\n\u003cli\u003e✔ Special feature: Top and bottom can be selected separately\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, a black high-waisted bikini can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen the bikini gives way in the water before the day is over\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eA comfortable fit begins with a cut designed for it.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eTop doesn't stay where it should\u003c\/li\u003e\n\n\u003cli\u003eHigh waist digs in after a short time\u003c\/li\u003e\n\n\u003cli\u003eSwimming and the fit changes\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou go into the water, swim a few laps – and when you get out, you notice that the waistband has shifted or the top needs adjusting. This doesn't happen because something is broken. It happens because many bikinis are cut for lying down, not for movement.\u003c\/p\u003e\n\n\u003cp\u003eThe cut plays a larger role than often assumed. A low waist has less contact surface and gives way more easily with movement. A top without sufficient support under the straps moves with the water. This is not just a matter of material quality – it's a matter of construction.\u003c\/p\u003e\n\n\u003cp\u003eThis high-waisted bikini is designed for a stable fit during everyday movement – swimming, standing up, walking on the beach. Whether this is sufficient for your needs also depends on what you plan to do: For intensive swimming or water sports with many jumps, such a leisure bikini is probably not the first choice – specially designed sports bikinis are better suited for that. For a relaxed day at the lake or beach, where movement is normal but not intensely sporty, it can be a good fit.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eHow actively will you most often wear your bikini – mainly lying and swimming, or also with more extended movement in the water?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight, and you'll get a guideline for the top and bottom separately.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eTake your time to look through the available sizes – top and bottom can be chosen independently.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Top usually stays put while swimming\u003c\/li\u003e\n\n\u003cli\u003e→ High waist is still in the same place after a long beach day as when first put on\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ High waist – designed for stable fit during normal movement\u003c\/li\u003e\n\n\u003cli\u003e✅ Timeless black without pattern – versatile to combine\u003c\/li\u003e\n\n\u003cli\u003e✅ Top and bottom can be chosen separately – for individual fit\u003c\/li\u003e\n\n\u003cli\u003e✅ Retro cut – emphasizes the waist, slim silhouette\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not suitable for intense water sports or frequent jumping\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those looking for patterns, prints, or striking details will find this model very simple\u003c\/li\u003e\n\n\u003cli\u003e⚠️ No sports top straps – no maximum support for sports activities\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical with similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ black high-waisted bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming\u003c\/td\u003e\n\n\u003ctd\u003eDesigned for stable fit during normal everyday movement in the water\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eHigh waist digs in or slides down\u003c\/td\u003e\n\n\u003ctd\u003eHigh-waist cut with wide waistband – can sit comfortably under normal use\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eOnline bikini sizes are hard to estimate\u003c\/td\u003e\n\n\u003ctd\u003eTop and bottom can be chosen separately, size calculator available with height and weight\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePattern or print quickly looks busy\u003c\/td\u003e\n\n\u003ctd\u003eSolid black with no motif – remains timeless and combinable\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered precisely these situations for the black high-waisted bikini – so you have to adjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow a black high-waisted bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 78% Polyamide, 22% Elastane\u003cbr\u003e• Care: Delicate wash 30 °C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay be a good fit if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003eblack high-waisted bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct details at a glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Delicate wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently asked questions about black high-waisted bikinis\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for a black high-waisted bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eSince bikini tops and bottoms can have different sizes, we recommend our size calculator. Enter your height and weight – you'll get a guideline for both parts separately. If in doubt between two sizes, it can help to choose the larger size for the bottom, especially if the high waist should sit comfortably.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the high waist fit with movement in the water?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe high-waist cut is designed for a stable fit during normal everyday movement – when swimming, walking, and sitting. For very intense water sports or frequent jumping, a specially designed sports bikini is usually the better choice.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWho is a simple black high-waisted bikini in a retro cut suitable for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThis bikini is a good fit if you prefer a minimalist style without patterns and are looking for a timeless cut that is suitable for lakes, beaches, and holidays. Those who prefer eye-catching prints or sporty functionality may find more suitable options in other cuts.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for this black bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water, then wash on a delicate cycle at 30°C. Do not tumble dry – drying flat preserves the shape and color longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan I order the top and bottom in different sizes?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes – top and bottom can be chosen separately. This is particularly helpful if your upper and lower body are different clothing sizes. Our size calculator gives you a guideline for both parts.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuide\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003eLarge Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Deep black, even color – no pattern, no distraction\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"High waist emphasizes the waist, slim silhouette from front and side\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and inventory, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenes above, a black high-waisted bikini can be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eblack high-waisted bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€20.99\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the black high-waisted bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"schwarzer Bikini high waist\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/solid-black-retro-high-waist-bikini-5310119574028.png?v=1776601517\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"20.99\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Black \/ M","offer_id":54413475709196,"sku":"CJYDYYYJ00138-Black-M","price":20.99,"currency_code":"EUR","in_stock":true},{"title":"Black \/ L","offer_id":54413475741964,"sku":"CJYDYYYJ00138-Black-L","price":20.99,"currency_code":"EUR","in_stock":true},{"title":"Black \/ S","offer_id":54413475774732,"sku":"CJYDYYYJ00138-Black-S","price":20.99,"currency_code":"EUR","in_stock":true},{"title":"Black \/ XL","offer_id":54413475807500,"sku":"CJYDYYYJ00138-Black-XL","price":20.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/solid-black-retro-high-waist-bikini-5310119574028.png?v=1776601517"},{"product_id":"printed-high-waist-bikini","title":"Bikini floral print orange blue","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini that stays put all day at the lake – and still stands out?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003eMaybe you know that feeling when a bikini just fits – no pulling, no adjusting, it's just there.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eOver the course of a day at the beach, it becomes clear whether a bikini works with you – or constantly demands attention.\u003c\/p\u003e\n\n  \u003ch2\u003eBikini floral print orange blue – High waist cut for lake, pool and vacation\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nHigh waistband for a more secure fit when moving – with a subtle floral pattern in orange and blue that appears understated without disappearing.\u003c\/p\u003e\n\n\u003cp\u003eThe orange-blue floral pattern is inspired by a color palette known from Lake Constance: warm light on calm water, blossoms against the light. The colors are not loud, but they hold the gaze. On white beach sand, the pattern looks different than on the lake shore under old trees – in both situations, it has a harmonious feel.\u003c\/p\u003e\n\n\u003cp\u003eThe floral print is expansive, not overloaded. Orange and blue accentuate each other without one color dominating. This makes the bikini versatile – with a light linen sarong, a simple shirt, or an afternoon in a beach chair without much thought about the outfit. Those who prefer lively, large-scale patterns will find rather subtle botanicals here.\u003c\/p\u003e\n\n\u003cp\u003eIn the morning with the first dip in the water, in the afternoon when getting up from the deck chair, in the evening a quick trip to the shore – these are the moments when it shows whether a bikini simply goes with the flow. The floral pattern remains equally calm in the background in all these situations, without appearing out of place.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The pattern stands out without being pushy – a subtle eye-catcher at the water.\u003cbr\u003e• The high waistband usually stays in place when sitting and standing.\u003cbr\u003e• Orange and blue work well with various beach towels and cover-ups, without much planning.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf this sounds like you, you'll find the size selection directly at the top of the page.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"XS\", \"bust_min\": 81.0, \"bust_max\": 84.0, \"waist_min\": 61.0, \"waist_max\": 64.0, \"hip_min\": 88.0, \"hip_max\": 90.0}, {\"name\": \"S\", \"bust_min\": 86.0, \"bust_max\": 89.0, \"waist_min\": 66.0, \"waist_max\": 69.0, \"hip_min\": 93.0, \"hip_max\": 95.0}, {\"name\": \"One Size\", \"bust_min\": 86.0, \"bust_max\": 91.0, \"waist_min\": 69.0, \"waist_max\": 71.0, \"hip_min\": 94.0, \"hip_max\": 97.0}, {\"name\": \"M\", \"bust_min\": 91.0, \"bust_max\": 94.0, \"waist_min\": 71.0, \"waist_max\": 74.0, \"hip_min\": 98.0, \"hip_max\": 100.0}, {\"name\": \"L\", \"bust_min\": 98.0, \"bust_max\": 102.0, \"waist_min\": 77.0, \"waist_max\": 81.0, \"hip_min\": 104.0, \"hip_max\": 107.0}, {\"name\": \"XL\", \"bust_min\": 105.0, \"bust_max\": 109.0, \"waist_min\": 85.0, \"waist_max\": 89.0, \"hip_min\": 112.0, \"hip_max\": 116.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Cut: High waist bikini, top and bottom available separately\u003c\/li\u003e\n\n\u003cli\u003e✔ Design: Floral pattern in orange and blue, subtle and expansive\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Rinse briefly with clear water after wearing, delicate wash 30 °C, do not tumble dry\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, the orange and blue floral bikini can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini demands more attention in the water than the day at the beach itself\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eA bikini that stays put – and a pattern that's simply there.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eTop slips when swimming and constantly needs adjusting\u003c\/li\u003e\n\n\u003cli\u003eWaistband digs in or rolls down\u003c\/li\u003e\n\n\u003cli\u003eThe pattern looks different on the body than in the photo\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eMany know the feeling: You go into the water, briefly submerge – and something isn't sitting right anymore. The top has twisted, the waistband has slipped down. For the rest of the day at the beach, a quiet unease remains about whether everything is still in place.\u003c\/p\u003e\n\n\u003cp\u003eThis is often due to cuts that are designed for lying still, but not for movement in the water. A high waistband can help the bottom half sit more securely – because it covers more body area and has less room to shift. Not a promise, but generally, the cut makes a noticeable difference in everyday life at the water.\u003c\/p\u003e\n\n\u003cp\u003eThis orange and blue floral bikini is designed for calm situations at the water – beach, lake, pool, vacation. Those planning intensive water sports like surfing or diving usually need more specialized cuts with additional fastenings. If you're thinking more about relaxed beach days, this cut might be a good fit.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDo you prefer the feeling of great freedom and minimal fabric – or do you prefer a bikini that stays put even with an unexpected wave?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you assess the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eTop and bottom can be selected separately, so that both fit you – even if the top and bottom require different sizes.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Usually stays put when getting up and moving in the water\u003c\/li\u003e\n\n\u003cli\u003e→ Floral pattern appears more subtle on the body than expected – pleasantly unobtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ High waist as a comfortable alternative to low-rise cuts\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you make a decision\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ High waistband – designed for a more stable fit when moving in water\u003c\/li\u003e\n\n\u003cli\u003e✅ Subtle floral pattern in orange and blue – understated and versatile\u003c\/li\u003e\n\n\u003cli\u003e✅ Top and bottom can be chosen separately – for different proportions\u003c\/li\u003e\n\n\u003cli\u003e✅ Calm design for relaxed beach days at the lake, pool, and beach\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Less suitable for intense water sports or competitive swimming\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer very expressive, large-format prints will find more floral subtlety here\u003c\/li\u003e\n\n\u003cli\u003e⚠️ No special sports fastenings or boning – more of a leisure cut\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Bikini floral print orange blue\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming and needs to be adjusted\u003c\/td\u003e\n\n\u003ctd\u003eDesigned for a stable fit during everyday movement in water – not a promise, but generally calmer due to the cut\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eWaistband rolls down or digs in with prolonged wear\u003c\/td\u003e\n\n\u003ctd\u003eHigh waistband with more body contact – can help it stay in place better under normal stress\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSizes of bikinis online are hard to estimate\u003c\/td\u003e\n\n\u003ctd\u003eTop and bottom available separately, size calculator with height and weight as a guide\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePattern looks completely different on the body than in the photo\u003c\/td\u003e\n\n\u003ctd\u003eExpansive, subtle floral pattern – understated, not overloaded, appears similarly calm on different skin types\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered precisely these situations with the orange and blue floral bikini – so you have to adjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the orange and blue floral bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even when moving.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSalt water, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang to dry, done. Delicate wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 78% Polyamide, 22% Elastane\u003cbr\u003e• Care: Delicate wash 30 °C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay fit well if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for an \u003cstrong\u003eorange and blue floral bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and longevity\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct details at a glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Delicate wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently asked questions about the orange and blue floral bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the orange and blue floral bikini fit when moving in water?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe high waistband is designed to sit more securely when walking, swimming, and standing up than low-cut models. Under normal leisure use, it generally stays in place – it is less designed for intensive water sports.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan I order the top and bottom in different sizes?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes, the top and bottom can be selected separately. This is particularly helpful if your upper body and hips are different sizes. Use the size calculator with your height and weight as a guide.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for a high-waisted bikini with a floral print?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eFor the bottom, refer to your pant size or hip measurement. The top is based on your bra size or bust measurement. Our size calculator gives you a first indication based on your height and weight – if unsure, many tend to choose a slightly larger size for the top.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for a floral bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eRinse briefly with clear, cool water after wearing. Wash at 30 °C on a delicate cycle, do not tumble dry, and do not let it dry directly in the sun. This helps maintain its shape and colors longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs the bikini also suitable for Lake Constance?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes, the bikini is designed for calm water situations such as lakes, pools, and beach vacations. For intensive water sports, models with additional fastenings are recommended.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the orange-blue floral pattern look in reality?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe pattern is expansive and understated – not overloaded. Orange and blue are balanced in color, making the bikini versatile. Those who prefer very lively or large-format prints will find rather subtle botanicals here.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Orange blossoms on a blue background – visible on the shore of Lake Constance against the light\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"High waistband when getting out of the water – calm, without tugging\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and warehouse stock, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information checked in accordance with EU GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the orange and blue floral bikini can be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eBikini floral print orange blue\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€25.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the orange and blue floral bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Bikini Blumenmuster orange blau\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/printed-high-waist-bikini-breite-tr-ger.png?v=1776592126\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"25.95\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Orange \/ XXL","offer_id":54413475873036,"sku":"CJYDYYYJ00182-Orange-XXL","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Black \/ S","offer_id":54413475905804,"sku":"CJYDYYYJ00182-Black-S","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Black \/ M","offer_id":54413475938572,"sku":"CJYDYYYJ00182-Black-M","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Black \/ L","offer_id":54413475971340,"sku":"CJYDYYYJ00182-Black-L","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Black \/ XL","offer_id":54413476004108,"sku":"CJYDYYYJ00182-Black-XL","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Orange \/ L","offer_id":54413476036876,"sku":"CJYDYYYJ00182-Orange-L","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Orange \/ M","offer_id":54413476069644,"sku":"CJYDYYYJ00182-Orange-M","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Orange \/ 3XL","offer_id":54413476102412,"sku":"CJYDYYYJ00182-Orange-3XL","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Orange \/ XL","offer_id":54413476135180,"sku":"CJYDYYYJ00182-Orange-XL","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"Orange \/ S","offer_id":54413476167948,"sku":"CJYDYYYJ00182-Orange-S","price":25.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/printed-high-waist-bikini-breite-tr-ger.png?v=1776592126"},{"product_id":"split-dot-bikini","title":"Women's bikini polka dots","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a polka dot bikini stand out – without dominating?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003eMaybe you know the feeling: A pattern that looks charming at first glance – and still feels right after the third day at the beach.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eThe polka dot pattern has been present in swimwear for decades – because it works. Not as a statement, but as a quiet companion.\u003c\/p\u003e\n\n  \u003ch2\u003eWomen's Polka Dot Bikini – Classic Pattern, Calm Effect at the Lake\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nA two-piece with a polka dot pattern – for days at the lake, by the pool, or on vacation, when you simply want to be in the water without overthinking your appearance.\u003c\/p\u003e\n\n\u003cp\u003eThe polka dot pattern is one of the oldest motifs in swimwear – and one of the few that never really gets loud. On the shores of Lake Constance, where the light is often soft and the water calm, such a pattern fits into the environment without being intrusive. The women's polka dot bikini from this brand follows precisely this logic: not to stand out for the sake of standing out, but simply to be there.\u003c\/p\u003e\n\n\u003cp\u003eThe dots are clearly defined without appearing overly graphic. The neutral color scheme keeps the pattern calm – it can be combined with a light cover-up, wide beach pants, or simply worn as is. Whether sitting by the water, standing up, going into the water, sitting down again – this bikini remains in the background. This is not a given with patterned two-pieces.\u003c\/p\u003e\n\n\u003cp\u003eA bikini like this is suitable for pool days while traveling, afternoons at the lake with friends, or quiet mornings by the water when you're the only one on the pier. The pattern has something timeless about it – not because it always looks the same, but because it never feels wrong.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The pattern remains calm – even with frequent wear.\u003cbr\u003e• The two-piece cut can adapt to different body shapes.\u003cbr\u003e• Combined with a simple cover-up, the look is relaxed and put-together.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you're looking for a bikini that fits easily – take your time to check the cut and sizes.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g., 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g., 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g., 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"height_min\": 155.0, \"height_max\": 160.0, \"weight_min\": 90.0, \"weight_max\": 100.0, \"hip_min\": 84.0, \"hip_max\": 88.0}, {\"name\": \"M\", \"height_min\": 160.0, \"height_max\": 165.0, \"weight_min\": 100.0, \"weight_max\": 110.0, \"hip_min\": 88.0, \"hip_max\": 92.0}, {\"name\": \"L\", \"height_min\": 165.0, \"height_max\": 170.0, \"weight_min\": 110.0, \"weight_max\": 120.0, \"hip_min\": 92.0, \"hip_max\": 96.0}, {\"name\": \"XL\", \"height_min\": 170.0, \"height_max\": 175.0, \"weight_min\": 120.0, \"weight_max\": 130.0, \"hip_min\": 96.0, \"hip_max\": 100.0}, {\"name\": \"2XL\", \"height_min\": 170.0, \"height_max\": 175.0, \"weight_min\": 130.0, \"weight_max\": 140.0, \"hip_min\": 100.0, \"hip_max\": 104.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Type: Two-piece \/ Split Bikini\u003c\/li\u003e\n\n\u003cli\u003e✔ Pattern: Polka Dot, neutral color scheme\u003c\/li\u003e\n\n\u003cli\u003e✔ Material: Polyester (polyester fiber) – designed for swimwear\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, a women's polka dot bikini can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini pattern does more than it promises\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eSometimes the difference lies in the pattern itself.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003ePolka dot bikinis often look too playful for my taste\u003c\/li\u003e\n\n\u003cli\u003eI'm unsure if the two-piece cut will fit me well\u003c\/li\u003e\n\n\u003cli\u003ePolyester doesn't necessarily sound like a comfortable material\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eThere are days at the lake when you just want to get into the water – without thinking too much beforehand. And then you realize: The bikini is slightly crooked, the pattern attracts unwanted attention, or the waistband digs in when you sit down on the beach mat. Not dramatic. But noticeable nonetheless.\u003c\/p\u003e\n\n\u003cp\u003eWith patterned two-pieces, both come together: cut and appearance. If the cut doesn't suit your body shape, a quiet pattern won't help much. And if the pattern is too loud, the eye gets stuck on it – even if the fit is right. Polyester is a common material for swimwear because it is designed for contact with water; the wearing comfort depends less on the material itself than on the cut and workmanship.\u003c\/p\u003e\n\n\u003cp\u003eThis bikini is designed as a two-piece with a polka dot pattern in a neutral color scheme – for those who like a classic retro pattern but are not looking for a bikini that dominates the scene. If, on the other hand, you prefer solid-colored swimwear or need a very sporty model with maximum support, this cut might be less suitable for you.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat type of bikini suits your everyday life by the water – rather subtle or clearly structured?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eTake your time to check the cut and availability.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay special attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Calm fit on the beach and at the lake\u003c\/li\u003e\n\n\u003cli\u003e→ Combinable with light beachwear\u003c\/li\u003e\n\n\u003cli\u003e→ Classic pattern for holidays and pool days\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you make a decision\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Classic polka dot pattern – calm effect, easily combinable with beachwear\u003c\/li\u003e\n\n\u003cli\u003e✅ Two-piece cut – can adapt to different body shapes\u003c\/li\u003e\n\n\u003cli\u003e✅ Polyester material – designed for swimwear and water use\u003c\/li\u003e\n\n\u003cli\u003e✅ Subtle, neutral color scheme – less conspicuous than highly decorative prints\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not designed for sporty activities requiring high support\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Less suitable for those who exclusively prefer solid-colored swimwear\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Not a one-piece – those looking for maximum coverage are better off with a one-piece swimsuit\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this product is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical with similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Women's Polka Dot Bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePolka dot bikinis often appear too playful or graphically overloaded\u003c\/td\u003e\n\n\u003ctd\u003eThe polka dot pattern is in a neutral color scheme – can appear calm rather than loud\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTwo-piece cuts often fit restlessly during movement\u003c\/td\u003e\n\n\u003ctd\u003eThe two-piece cut is designed to adapt to the body shape – with the right size, the fit usually remains more stable\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePolyester is often broadly perceived as inferior for swimwear\u003c\/td\u003e\n\n\u003ctd\u003ePolyester is a common material for swimwear, designed for water use – fit and workmanship are more crucial for wearing comfort\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePatterned bikinis are difficult to combine with beachwear\u003c\/td\u003e\n\n\u003ctd\u003eThe clear two-piece look with a polka dot pattern can usually be combined well with cover-ups, shorts, or light shirts\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered precisely these situations with the Women's Polka Dot Bikini – so you have to adjust less when wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the Women's Polka Dot Bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments where you'll notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash 30°C, do not tumble dry – observe care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: polyester fiber (polyester)\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay be a good fit if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003ewomen's polka dot bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort in everyday life\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about Women's Polka Dot Bikinis\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for a women's polka dot bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water, then wash on a delicate cycle at 30°C. Do not tumble dry – the pattern and shape will be preserved longer with gentle care.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the bikini waistband fit during movement – for example, when swimming?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe two-piece cut can adapt better to movement than a one-piece. When swimming or standing up, the waistband usually stays put more calmly if the size matches the body shape. If in doubt, it's worth checking the size calculator.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eDoes a polka dot bikini also go well with other beach outfits?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe classic polka dot pattern in a neutral color scheme can generally be combined well with solid-colored cover-ups, wide beach pants, or light shirts. It appears more retro-calm than loud, which facilitates combinability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs polyester comfortable to wear as a bikini material?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003ePolyester is a common material for swimwear because it is designed for contact with water. The specific wearing comfort under normal use depends mainly on the cut and workmanship – less on the material alone.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWho is this polka dot bikini less suitable for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThose who prefer solid-colored, very simple swimwear or are looking for a sporty model with particularly firm support – for example, for water sports – may not find what they are looking for in this bikini. It is intended more for relaxed beach days than for intensive activities in the water.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/bikini-damen\/mix-match-so-kombinieren-sie-bikini-teile-richtig\"\u003eMix \u0026amp; Match: How to Combine Bikini Pieces Correctly\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/papa-geschenke\/die-schonsten-vatertagsgeschenke-2025-mit-liebe-ausgewahlt\"\u003eThe Most Beautiful Father's Day Gifts 2025 - Selected with Love\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-mit-bauchweg-effekt-im-sale\"\u003eSwimsuits with Tummy Control Effect on Sale\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Neutral polka dot pattern on the shore of Lake Constance in soft summer light\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Two-piece combined with a cover-up on a wooden terrace by the water\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and inventory, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the Women's Polka Dot Bikini could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eWomen's Polka Dot Bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€20.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the Women's Polka Dot Bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20\/05\/2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Bikini Damen Punkte\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/split-dot-bikini-dichtes-punktmuster.png?v=1776494439\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"20.95\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Black \/ S","offer_id":54413476266252,"sku":"CJYDYYYJ00756-Black-S","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"White \/ S","offer_id":54413476299020,"sku":"CJYDYYYJ00756-White-S","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"White \/ M","offer_id":54413476331788,"sku":"CJYDYYYJ00756-White-M","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"White \/ L","offer_id":54413476364556,"sku":"CJYDYYYJ00756-White-L","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"Black \/ M","offer_id":54413476397324,"sku":"CJYDYYYJ00756-Black-M","price":20.95,"currency_code":"EUR","in_stock":true},{"title":"Black \/ L","offer_id":54413476430092,"sku":"CJYDYYYJ00756-Black-L","price":20.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/split-dot-bikini-dichtes-punktmuster.png?v=1776494439"},{"product_id":"printed-sexy-halter-bikini","title":"Bikini tropical floral women","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini that looks calm despite a print – and stays in place all day?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know this feeling when a bikini is just there – the pattern works without being too loud.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eMany only notice the difference during the day – when a bikini doesn't need constant adjustment and the pattern looks just as good as it did in the morning.\u003c\/p\u003e\n\n  \u003ch2\u003eTropical Floral Print Bikini – Halterneck Cut for Beach and Lake\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nHalterneck cut with adjustable ties – for situations where a bikini should just stay put without constant pulling. The tropical floral pattern in green and white is striking without being overpowering. The elastane in the material allows it to adapt to the body.\u003c\/p\u003e\n\n\u003cp\u003eThe pattern features generous botanical shapes – leaves and blossoms in a calm green-and-white contrast that unfolds its effect by the water. Not an exaggerated tropical print, but rather an imagery reminiscent of early summer mornings by the lake or shady beach corners. Those who like to wear patterns that tell a story of nature and flora without dominating can find a point of reference here.\u003c\/p\u003e\n\n\u003cp\u003eThe halterneck cut emphasizes the shoulders and décolletage, while the pattern carries the overall effect. Green and white remain combinable – with a beige sarong on the beach, a white cover-up on the way to get ice cream, or simply as is, sitting on a blanket by Lake Constance, watching the water. The floral structure of the print appears differently on dark and light skin – the progression can be clearly assessed in the product photo.\u003c\/p\u003e\n\n\u003cp\u003eThree moments when this model can show its strength: during calm swimming, when the cut doesn't slip. When getting up from the towel, when the pattern briefly glistens in the sun. And when combining with beach trousers or a wrap skirt, when a patterned top works as a focal point without being too much.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The pattern appears calmer on the body than at first glance – green and white are not a loud combination.\u003cbr\u003e• The halterneck cut can be adapted to different body shapes depending on the tie – a starting point for more flexibility.\u003cbr\u003e• As a halter bikini with a print, it has its own attitude – subtle enough for the lake, prominent enough for vacation.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you like, choose your size below – the size calculator will help with the estimation.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"bust_min\": 82.0, \"bust_max\": 86.0, \"waist_min\": 62.0, \"waist_max\": 66.0, \"hip_min\": 87.0, \"hip_max\": 91.0}, {\"name\": \"M\", \"bust_min\": 87.0, \"bust_max\": 91.0, \"waist_min\": 67.0, \"waist_max\": 71.0, \"hip_min\": 92.0, \"hip_max\": 96.0}, {\"name\": \"L\", \"bust_min\": 92.0, \"bust_max\": 96.0, \"waist_min\": 72.0, \"waist_max\": 76.0, \"hip_min\": 97.0, \"hip_max\": 101.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Cut: Halterneck with tie straps\u003c\/li\u003e\n\n\u003cli\u003e✔ Material: Elastane (proportion allows for stretch and adaptation)\u003c\/li\u003e\n\n\u003cli\u003e✔ Pattern: tropical floral pattern in green and white\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, the women's tropical floral print bikini can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a halter bikini presses on the neck or the print looks different online than expected\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eA few tips that can help with the assessment.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eHalter tops often don't sit stably enough on the neck or chest\u003c\/li\u003e\n\n\u003cli\u003eWith prints, it's hard to assess how strong the pattern looks in reality\u003c\/li\u003e\n\n\u003cli\u003eFit of bikini sets is difficult to judge online\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eThose familiar with halter bikinis also know the feeling: the top fits well at first, but after an hour by the water, after swimming, or simply when sitting down on the towel, something shifts. You adjust. Re-tie. This is part of everyday life with many swimwear models – not because the cut is fundamentally bad, but because the ties, cup shape, and waistband must all fit together.\u003c\/p\u003e\n\n\u003cp\u003eA halterneck cut with adjustable straps can offer a bit more flexibility here, because the fit can be actively adjusted – depending on bust size, shoulder posture, and your own comfort level. Whether this works for you depends on the cut and body shape. With patterned models, a second question arises: How strong does the print actually look? Close-ups and clear color images help to assess the pattern progression and the green-and-white contrast more realistically than a single overall view can.\u003c\/p\u003e\n\n\u003cp\u003eThis bikini with a tropical floral pattern is designed for situations where style and beach functionality should coexist – sunbathing, calm swimming, leisure by the water. If, however, you are looking for a more sporty swimming look without a halterneck, or if you generally don't like heavily figure-hugging cuts, this model may not be your style. Likewise, if you need maximum coverage or an integrated underwire support.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDoes a halterneck cut suit your body shape – and do you like patterns that make an impression without dominating?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut \u0026amp; size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eTake your time to look at the size chart – no pressure.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay special attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Sits calmly while swimming and sunbathing by the lake\u003c\/li\u003e\n\n\u003cli\u003e→ Pattern looks good on the water and in the sun – without being overpowering\u003c\/li\u003e\n\n\u003cli\u003e→ Combination with a sarong or beach trousers for a complete summer look\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you make a decision\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Halterneck cut with adjustable ties – fit can be individually adjusted\u003c\/li\u003e\n\n\u003cli\u003e✅ Elastane content can adapt to the body and support comfort during movement\u003c\/li\u003e\n\n\u003cli\u003e✅ Tropical floral pattern in green and white – calm enough for the lake and beach, present enough for vacation\u003c\/li\u003e\n\n\u003cli\u003e✅ Combinable with sarong, beach trousers or cover-up\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not ideal if strong underwire support or maximum coverage is needed\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Not ideal if a sporty swimming look without a halterneck is desired\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Not ideal for people who don't like heavily figure-hugging swimwear cuts\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Women's tropical floral print bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eHalter tops slip or press on the neck after a short time\u003c\/td\u003e\n\n\u003ctd\u003eHalterneck cut with adjustable ties – fit can be individually adjusted depending on body shape\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePrints look different online than in reality – too strong or too pale\u003c\/td\u003e\n\n\u003ctd\u003eGreen-and-white contrast with botanical floral pattern – close-ups in the gallery show realistic pattern progression\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSwimwear without elastane feels stiff and doesn't adapt\u003c\/td\u003e\n\n\u003ctd\u003eElastane content can help the material adapt comfortably – under normal use by the water\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePatterned bikinis are difficult to combine with other items\u003c\/td\u003e\n\n\u003ctd\u003eSubtle green-and-white print can be easily combined with neutral cover-ups, sarongs, or beach trousers\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe considered exactly such situations with the women's tropical floral print bikini – so you have to adjust it less while wearing.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the women's tropical floral print bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash at 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: Elastane\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eCould be a good fit if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003ewomen's tropical floral print bikini\u003c\/strong\u003e with a fit that can suit you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being intrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently asked questions about the women's tropical floral print bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for a halter bikini with a tropical floral print?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eFor bikinis with a halterneck cut, it is recommended to measure your bust and hip circumference and compare them with the size chart. If unsure between two sizes, going up one size can be a good starting point, as the cut can be adjusted to some extent with the tie straps. The size calculator on the page also helps with the estimation.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the bikini waistband fit during movement – for example, when swimming or sitting down?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe elastane content in the material can help the bikini adapt to movement. The halterneck cut with adjustable straps can be individually adjusted. Under normal use – swimming, sitting, walking – the fit generally remains secure if the size is well chosen.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I care for a printed bikini to keep its color and shape longer?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water to remove chlorine or salt water. Wash on a delicate cycle at 30°C, do not tumble dry. Washed inside out and dried flat, the pattern stays fresh longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the tropical floral pattern look in reality – is it vibrant or rather subtle?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe pattern features botanical shapes in green and white – a calm contrast that is present without dominating. The close-ups in the image gallery provide a good impression of the pattern's progression and color intensity.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWho is this floral halter bikini less suitable for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eIf you need integrated underwire support or maximum coverage, this cut may not be ideal. Also, for a sporty swimming look without a halterneck or for people who do not like heavily figure-hugging cuts, there are other models that might be a better fit.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/die-perfekte-bademode-finden\"\u003eFinding the Perfect Swimwear\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-damen-finden-sie-den-perfekten-badeanzug-fur-den-sommer-2024\"\u003eWomen's Swimsuits: Find the Perfect Swimsuit for Summer 2024\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/bikini-damen\/wie-man-den-perfekten-bikini-fur-seine-korperform-findet\"\u003eHow to Find the Perfect Bikini for Your Body Shape\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Botanical floral pattern in green and white – calm contrast on the body\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Halterneck cut with visible tie straps – shows shoulders and décolletage\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and excess stock, especially for printed items!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified according to EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the women's tropical floral print bikini could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eWomen's Tropical Floral Print Bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€22.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the women's tropical floral print bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20\/05\/2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Bikini tropisches Blumenmuster Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/printed-halter-bikini-19324358825979.png?v=1776152312\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"22.95\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Photo Color \/ S","offer_id":54413477773580,"sku":"CJYDYYYJ00787-Photo Color-S","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Photo Color \/ L","offer_id":54413477806348,"sku":"CJYDYYYJ00787-Photo Color-L","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Photo Color \/ M","offer_id":54413477839116,"sku":"CJYDYYYJ00787-Photo Color-M","price":22.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/printed-halter-bikini-19324358825979.png?v=1776152312"},{"product_id":"new-mesh-bandage-cool-swimsuit-high-waist-sexy-bikini-european-and-american-swimwear-bikini","title":"blue grey bikini women","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini fashionable and comfortable to wear all day?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that feeling when a bikini just fits – without constant tugging or adjusting.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eAnd often you only notice this after a few hours by the water – not when you first put it on.\u003c\/p\u003e\n\n  \u003ch2\u003eBlue-Grey Women's High-Waisted Bikini – Mesh Bandage Look for Beach and Pool\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nHigh waist for more coverage in the abdominal area – with mesh and bandage elements that give the simple blue-grey a clear structure. Material feel: smooth, light, body-hugging.\u003c\/p\u003e\n\n\u003cp\u003eThe blue-grey of this bikini is no accident – it's a conscious decision against standing out. Those who stand on the shore of Lake Constance or on the beach, observing the light on the water, and simply want to look serene will find something timeless in this color scheme. No pattern, no motif – just the color and the shape. The mesh details provide a visible accent without overpowering the look.\u003c\/p\u003e\n\n\u003cp\u003eThe high waist starts above the hips and usually lies smoothly against the body when sitting on a beach towel or standing up after swimming. The bandage structure gives the top a clearer silhouette than a simple triangle top would. The result is a look that is fashionably legible – without having to shout. Combined with a light linen sarong or a simple beach dress, the bikini blends in unobtrusively.\u003c\/p\u003e\n\n\u003cp\u003eThis bikini can be a good fit if you're traveling and looking for swimwear that works for multiple occasions: by the hotel pool, during a beach stroll, or jumping into cool water after a long summer day. Also as a first bikini after a break, if you long for more coverage without switching to a sporty one-piece.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll know it's right\u003c\/h3\u003e\n\n\u003cp\u003e• You reach for the bikini in the morning because it fits your plans – not because it's the loudest in your suitcase.\u003cbr\u003e• When you look in the mirror by the lake, the silhouette appears composed without looking stiff.\u003cbr\u003e• You put on the top, feel the smooth nylon texture on your skin – and just let it sit.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you're looking for a size, our size calculator will help you estimate the fit.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"bust_min\": 63.0, \"bust_max\": 69.0, \"waist_min\": 62.0, \"waist_max\": 66.0, \"hip_min\": 74.0, \"hip_max\": 76.0}, {\"name\": \"M\", \"bust_min\": 67.0, \"bust_max\": 73.0, \"waist_min\": 66.0, \"waist_max\": 70.0, \"hip_min\": 78.0, \"hip_max\": 80.0}, {\"name\": \"L\", \"bust_min\": 71.0, \"bust_max\": 77.0, \"waist_min\": 70.0, \"waist_max\": 74.0, \"hip_min\": 82.0, \"hip_max\": 84.0}, {\"name\": \"XL\", \"bust_min\": 75.0, \"bust_max\": 81.0, \"waist_min\": 74.0, \"waist_max\": 78.0, \"hip_min\": 86.0, \"hip_max\": 88.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: Nylon\u003c\/li\u003e\n\n\u003cli\u003e✔ Waist style: High Waist\u003c\/li\u003e\n\n\u003cli\u003e✔ Details: Mesh and bandage elements, no motif, blue-grey color\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eWhen the cut and size fit you, a blue-grey women's bikini can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen the waistband doesn't stay in place when you move\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eA high waistband can provide more support – but it also depends on the cut and body shape.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eWhether the high waistband really stays put when walking\u003c\/li\u003e\n\n\u003cli\u003eWhether mesh details appear too transparent or too fragile\u003c\/li\u003e\n\n\u003cli\u003eWhether nylon feels comfortable on the skin\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou go from the sun lounger to the water, come back, sit down – and realize you have to straighten your waistband again. This happens especially with low-cut styles that have little contact with the body. A higher waistband can make a difference here: more contact area, more stability when moving. A guideline, not a promise.\u003c\/p\u003e\n\n\u003cp\u003eWith bikinis featuring mesh or bandage elements, the question sometimes arises whether the material is more delicate than a smooth fabric. In this model, the mesh details are integrated into the structure, not applied. This can help the look appear less fragile in everyday wear than one might initially think – how the material feels in the water or after several weeks remains individual.\u003c\/p\u003e\n\n\u003cp\u003eNylon as a swimwear material is often used for its smooth surface and rather light wearing feel. Whether it feels comfortable for you also depends on your own sensitivity. If you are sensitive to synthetic fabrics or are looking for a bikini made from more natural materials, this cut may not be your first choice. Those who prefer fully covering or very sporty-functional swimwear will also likely not find what they are looking for here.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDo you like swimwear that visibly shows a fashionable style – or are you looking for something that rather stays in the background?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eTake your time to look at the cut and color – and then decide.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Fashionable beach look without patterns – for days at the lake or pool\u003c\/li\u003e\n\n\u003cli\u003e→ High-waist silhouette that usually sits calmly when standing and walking\u003c\/li\u003e\n\n\u003cli\u003e→ Blue-grey as a calm color choice – combinable with light beach outfits\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ High waistband – can provide more coverage and a calmer fit with normal movement\u003c\/li\u003e\n\n\u003cli\u003e✅ Mesh and bandage details – give the look structure without patterns or motifs\u003c\/li\u003e\n\n\u003cli\u003e✅ Blue-grey without print – timeless color scheme that is easy to combine\u003c\/li\u003e\n\n\u003cli\u003e✅ Nylon material – smooth feel, designed for beach and pool use\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not ideal for very covering or functionally sporty swimwear\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those sensitive to synthetic fabrics should consider the material beforehand\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Mesh details are visible – not a completely smooth bikini look\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Blue-grey women's bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eWaistband not stable enough when moving\u003c\/td\u003e\n\n\u003ctd\u003eHigh waistband with more contact area – can be designed for a calmer fit with normal movement\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSimple bikinis quickly appear generic\u003c\/td\u003e\n\n\u003ctd\u003eMesh and bandage structure give the blue-grey look a clearer, recognizable style\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eMaterial feels heavy or sticky after swimming\u003c\/td\u003e\n\n\u003ctd\u003eNylon is designed for a smooth surface – but the individual wearing experience remains person-dependent\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eToo little coverage in the belly or hip area\u003c\/td\u003e\n\n\u003ctd\u003eHigh-waist cut covers more area than classic low-rise models\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe have considered precisely these situations with the blue-grey women's bikini – so you have to adjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the blue-grey women's bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you'll notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even when moving.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Gentle wash 30°C, do not tumble dry – observe care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: nylon\/nylon\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay be a good fit if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You're looking for a \u003cstrong\u003eblue-grey women's bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about the Blue-Grey Women's Bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the high waistband sit when moving – does it stay put when walking and swimming?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe high waistband is cut to cover more body area than a classic low-rise bikini. This can contribute to a calmer fit during normal movement – walking, sitting down, entering the water. How stable it feels individually also depends on body shape and size selection. If in doubt, choose one size larger.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eSimple bikini without motif in blue-grey – how subtle is the mesh detail?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe mesh elements are integrated into the bikini's structure and provide a visible but subtle accent. The overall look remains unobtrusive due to the blue-grey color scheme. However, those who want to forgo any details will not find a completely smooth bikini here.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I care for this bikini properly?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water to remove salt or chlorine residues. Hand wash or gentle wash at 30 °C recommended. Do not tumble dry – laying flat to air dry preserves shape and material longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs nylon as a swimwear material comfortable on the skin?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eNylon is frequently used in swimwear because it has a smooth surface and lies lightly against the body. The wearing feel is individual – those sensitive to synthetic materials should consider this when purchasing.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWho is this bikini less suitable for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThose looking for very covering or functionally sporty swimwear will likely not be happy with this model. It is also not designed for intense swimming or water sports – it is tailored for a fashionable beach look.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/die-perfekte-bademode-finden\"\u003eFinding the Perfect Swimwear\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-damen-finden-sie-den-perfekten-badeanzug-fur-den-sommer-2024\"\u003eWomen's Swimsuits: Find the Perfect Swimsuit for Summer 2024\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/bikini-damen\/der-ultimative-leitfaden-zu-high-waist-bikinis-trends-tipps-und-must-haves\"\u003eThe Ultimate Guide to High-Waist Bikinis: Trends, Tips, and Must-Haves\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Bikini on the shore of Lake Constance – the blue-grey reflects the water color\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Close-up of the mesh structure in sunlight – clear but not obtrusive\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and inventory, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified according to EU GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the blue-grey women's bikini can be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eBlue-grey women's bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€24.99\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the blue-grey women's bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"blau grauer Bikini Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/mesh-bandage-bikini-1619579646405.png?v=1776149974\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"24.99\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Blue \/ S","offer_id":54413478068492,"sku":"CJYJ110342301AZ","price":24.99,"currency_code":"EUR","in_stock":true},{"title":"Blue \/ M","offer_id":54413478101260,"sku":"CJYJ110342302BY","price":24.99,"currency_code":"EUR","in_stock":true},{"title":"Blue \/ L","offer_id":54413478134028,"sku":"CJYJ110342303CX","price":24.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/mesh-bandage-bikini-1619579646405.png?v=1776149974"},{"product_id":"striped-european-and-american-tube-top-swimsuit-ladies-split-sexy-split-bikini","title":"Multicolor Stripe Bikini for Women","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a striped bikini that simply stays in place on the beach – all day long?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that calm feeling when a bikini neither pinches nor needs readjusting – it's just there.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eAnd this is where many notice the difference – not when putting it on, but after the third time going into the water.\u003c\/p\u003e\n\n  \u003ch2\u003eWomen's Striped Bikini with Off-Shoulder Cut – for Beach, Lake, and Vacation\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nOff-shoulder bandeau cut with multi-colored horizontal stripes – a two-piece set that looks simple yet summery, made from elastic material that adapts to the body.\u003c\/p\u003e\n\n\u003cp\u003eMulti-colored horizontal stripes have a calming effect – they work without being obtrusive. This design follows a clear line: no overloaded graphics, no single dominant color, but an interplay that feels right from the first try-on. The eye falls on the pattern, lingers briefly – and that's it. It's precisely this subtlety that makes it appealing.\u003c\/p\u003e\n\n\u003cp\u003eOn the shore of Lake Constance, when the light falls flat over the water and you sit up on your towel – that's when the stripe pattern comes into its own without being overbearing. During a stroll along the beach promenade, bikini top and a light linen cloth thrown over, the striped tube top naturally fits with the rest. The design is made to be easily combined – whether with a white summer skirt or casually worn shorts.\u003c\/p\u003e\n\n\u003cp\u003eIf you're looking for a bikini that you not only wear into the water but also afterwards – for coffee at the beach kiosk, relaxing by the shore, or a short walk – you'll find a design here that can do both. Not a statement look, but not arbitrary either. A women's striped bikini that looks summery yet simple.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n  \u003cp\u003e• The pattern looks different in direct sunlight than in the shade – never gaudy, always present.\u003cbr\u003e• You reach for it in the morning because it goes with almost everything you already have with you.\u003cbr\u003e• Someone asks where you got it – not because of the price, but because of the look.\u003c\/p\u003e\n\n  \u003cp\u003e\u003cstrong\u003eIf you want to estimate size and cut – our size calculator will help you.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"bust_min\": 80.0, \"bust_max\": 85.0, \"waist_min\": 65.0, \"waist_max\": 70.0, \"hip_min\": 85.0, \"hip_max\": 90.0}, {\"name\": \"M\", \"bust_min\": 85.0, \"bust_max\": 90.0, \"waist_min\": 70.0, \"waist_max\": 75.0, \"hip_min\": 90.0, \"hip_max\": 95.0}, {\"name\": \"L\", \"bust_min\": 90.0, \"bust_max\": 96.0, \"waist_min\": 75.0, \"waist_max\": 80.0, \"hip_min\": 95.0, \"hip_max\": 100.0}, {\"name\": \"XL\", \"bust_min\": 96.0, \"bust_max\": 105.0, \"waist_min\": 80.0, \"waist_max\": 85.0, \"hip_min\": 100.0, \"hip_max\": 105.0}, {\"name\": \"XXL\", \"bust_min\": 105.0, \"bust_max\": 110.0, \"waist_min\": 85.0, \"waist_max\": 90.0, \"hip_min\": 105.0, \"hip_max\": 110.0}, {\"name\": \"XXXL\", \"bust_min\": 110.0, \"bust_max\": 115.0, \"waist_min\": 90.0, \"waist_max\": 95.0, \"hip_min\": 110.0, \"hip_max\": 115.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Cut: off-shoulder bandeau top (tube top), two-piece\u003c\/li\u003e\n\n\u003cli\u003e✔ Material: Elastane\u003c\/li\u003e\n\n\u003cli\u003e✔ Pattern: multi-colored horizontal stripes\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eWhen the cut and size fit you, a multi-colored striped bikini for women can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini gets restless in the water\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eFit, cut, and feel – what really matters.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top slips with the first jump into the water\u003c\/li\u003e\n\n\u003cli\u003eThe waistband feels uncomfortable after an hour\u003c\/li\u003e\n\n\u003cli\u003eAfter a few days of swimming, the fabric loses its shape\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou go into the water – and immediately afterwards the top sits a touch too far to the left. Or the waistband has rolled up slightly. Both are barely noticeable, but they demand attention. And on a relaxing beach day, that's exactly the kind of friction you don't need.\u003c\/p\u003e\n\n\u003cp\u003eMany bikinis are designed for photos, not for an afternoon at the lake. The fabric stretches differently when wet than when dry, the bandeau cut holds less without internal support than it should, and after a few hours, the fit is different from when you put it on. This is less due to the design and more to the material composition and how the top is cut.\u003c\/p\u003e\n\n\u003cp\u003eThis striped bikini is designed for a stable fit during normal movement – i.e., while swimming, standing up, sitting down. The elastic material can help the top sit more securely than with less stretchy fabrics. However, if you're planning intense water sports or competitive swimming, a sporty swimsuit with more support might be the more appropriate choice.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDo you like an off-shoulder cut – or do you need straps that actively support?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eCheck out the size calculator if you're unsure which size is right for you.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay special attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Stays securely in place during normal movement on the beach\u003c\/li\u003e\n\n\u003cli\u003e→ Pattern looks harmonious both in the water and during a walk\u003c\/li\u003e\n\n\u003cli\u003e→ Can be easily combined with light summer outfits\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Off-shoulder bandeau cut – designed for beach and calm water activities\u003c\/li\u003e\n\n\u003cli\u003e✅ Multi-colored stripe pattern that's easy to combine with summer outfits\u003c\/li\u003e\n\n\u003cli\u003e✅ Elastic material that adapts to the body under normal stress\u003c\/li\u003e\n\n\u003cli\u003e✅ Subtle design that isn't obtrusive\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not designed for intense water sports or competitive swimming\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer straps or internal support are better off with a different cut\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those looking for a plain, minimalist design will find a patterned model here\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Multi-colored striped bikini for women\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when moving in the water\u003c\/td\u003e\n\n\u003ctd\u003eElastane cut is designed for a stable fit during normal movement\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eDifficult to estimate bikini size online\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator with height and weight as a guide\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eDesign seems arbitrary after the season\u003c\/td\u003e\n\n\u003ctd\u003eClassic stripe pattern that remains combinable beyond one season\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered precisely such situations with the multi-colored striped bikini for women – so you have to adjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the multi-colored striped bikini for women feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even when moving.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSalt water, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang, done. Delicate wash at 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: Elastane\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay fit well if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003emulti-colored striped bikini for women\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently asked questions about multi-colored striped bikinis for women\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for a multi-colored striped off-shoulder bikini for women?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eSince bandeau tops without straps need a good circumferential fit, we recommend measuring precisely if you are unsure. Our size calculator helps you with height and weight as a guide. If the result is very close, a size up may be more sensible.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the top fit while swimming and moving?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe tube top is designed for a stable fit during normal movement in the water. With calm swimming and everyday beach activities, it generally stays securely in place. For intense water sports or competitive swimming, a model with straps or internal support may be more suitable.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I care for a striped bandeau bikini for women correctly?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water to remove residues. Delicate wash at 30 °C, do not tumble dry. This way, the shape of the elastane material will last longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWho is this bikini less suitable for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThose who engage in intense water sports or need a lot of support while swimming are generally better off with a sporty swimsuit or a bikini with adjustable straps. The off-shoulder design is intended for relaxed wear at the beach and lake.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan the top and bottom be combined separately?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe set consists of a top and matching brief, which are coordinated. Whether a combination with other pieces works visually depends on the pattern and colors of the respective parts – with plain-colored bottoms in one of the stripe colors, this generally works well.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Multi-colored horizontal stripes in the flat summer light on the shore\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Off-shoulder top when sitting on the beach – no readjusting\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and warehouse stock for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, a multi-colored striped bikini for women can be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eMulti-colored striped bikini for women\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€27.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the multi-colored striped bikini for women can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"mehrfarbiger Streifen Bikini Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/striped-tube-top-bikini-bild-2.png?v=1776149021\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"27.95\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Picture 1 \/ S","offer_id":54413479477516,"sku":"CJYJ111251401AZ","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 1 \/ M","offer_id":54413479510284,"sku":"CJYJ111251402BY","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 1 \/ L","offer_id":54413479543052,"sku":"CJYJ111251403CX","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 1 \/ XL","offer_id":54413479575820,"sku":"CJYJ111251404DW","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 2 \/ S","offer_id":54413479608588,"sku":"CJYJ111251405EV","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 2 \/ M","offer_id":54413479641356,"sku":"CJYJ111251406FU","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 2 \/ L","offer_id":54413479674124,"sku":"CJYJ111251407GT","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 2 \/ XL","offer_id":54413479706892,"sku":"CJYJ111251408HS","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 3 \/ S","offer_id":54413479739660,"sku":"CJYJ111251409IR","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 3 \/ M","offer_id":54413479772428,"sku":"CJYJ111251410JQ","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 3 \/ L","offer_id":54413479805196,"sku":"CJYJ111251411KP","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 3 \/ XL","offer_id":54413479837964,"sku":"CJYJ111251412LO","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 4 \/ S","offer_id":54413479870732,"sku":"CJYJ111251413MN","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 4 \/ M","offer_id":54413479903500,"sku":"CJYJ111251414NM","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 4 \/ L","offer_id":54413479936268,"sku":"CJYJ111251415OL","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 4 \/ XL","offer_id":54413479969036,"sku":"CJYJ111251416PK","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 5 \/ S","offer_id":54413480001804,"sku":"CJYJ111251417QJ","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 5 \/ M","offer_id":54413480034572,"sku":"CJYJ111251418RI","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 5 \/ L","offer_id":54413480067340,"sku":"CJYJ111251419SH","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 5 \/ XL","offer_id":54413480100108,"sku":"CJYJ111251420TG","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 6 \/ S","offer_id":54413480132876,"sku":"CJYJ111251421UF","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 6 \/ M","offer_id":54413480165644,"sku":"CJYJ111251422VE","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 6 \/ L","offer_id":54413480198412,"sku":"CJYJ111251423WD","price":27.95,"currency_code":"EUR","in_stock":true},{"title":"Picture 6 \/ XL","offer_id":54413480231180,"sku":"CJYJ111251424XC","price":27.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/striped-tube-top-bikini-bild-2.png?v=1776149021"},{"product_id":"swimsuit-pleated-triangle-bikini-set","title":"green bikini women","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini that stays put all day – without you having to think about it?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that calm feeling when a bikini is simply there – and you dedicate yourself to the day, not to adjusting it.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eOver the course of a day at the beach, you often notice the difference – not when you first put it on, but the fourth time you go into the water.\u003c\/p\u003e\n\n  \u003ch2\u003eGreen Triangle Bikini for Women – Simple for Lake, Beach, and Vacation\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nTriangle top with tie straps, uniform green without a pattern – for those who like quiet and versatile swimwear. The fabric contains elastane and adapts to movement.\u003c\/p\u003e\n\n\u003cp\u003eGreen is a color that looks different by the water than on a hanger. On the shore of Lake Constance, where the reeds have the same tones as the water on cloudy days, an unpatterned green bikini looks natural. No pattern vying for attention – just a color that speaks to its surroundings. This simple green bikini for women is designed precisely for this feeling: to be present without having to explain itself.\u003c\/p\u003e\n\n\u003cp\u003eThe triangle shape has been one of the most timeless cuts in swimwear for decades – not because it's trendy, but because it works. The green is rich enough to stand on its own, but calm enough to pair with a cream linen skirt or a white beach towel. If you like it subtle yet want to make a clear color statement, this is a good starting point. The solid color also makes the bikini versatile across seasons – no pressure to replace it after one summer.\u003c\/p\u003e\n\n\u003cp\u003eThe first jump into the water, when the fabric briefly cools and then adapts – that's the moment you notice if a bikini fits you. When standing up from your towel on a wooden terrace by the lake, when you briefly check if everything is in place – or not. Or during a long afternoon at the beach, when you've eventually stopped thinking about it. This green bikini is designed for such days.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice\u003c\/h3\u003e\n\n\u003cp\u003e• The fabric doesn't feel heavy when wet – you move without feeling weighed down.\u003cbr\u003e• The green appears calmer in the light of the water than in the photo – pleasantly understated.\u003cbr\u003e• No pattern means: you choose what goes with it or over it.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOnce you've found the right size, the rest is easy.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"bust_min\": 73.0, \"bust_max\": 77.0, \"waist_min\": 66.0, \"waist_max\": 70.0, \"hip_min\": 88.0, \"hip_max\": 93.0}, {\"name\": \"M\", \"bust_min\": 77.0, \"bust_max\": 81.0, \"waist_min\": 70.0, \"waist_max\": 74.0, \"hip_min\": 93.0, \"hip_max\": 98.0}, {\"name\": \"L\", \"bust_min\": 81.0, \"bust_max\": 85.0, \"waist_min\": 74.0, \"waist_max\": 78.0, \"hip_min\": 98.0, \"hip_max\": 103.0}, {\"name\": \"XL\", \"bust_min\": 85.0, \"bust_max\": 90.0, \"waist_min\": 78.0, \"waist_max\": 82.0, \"hip_min\": 103.0, \"hip_max\": 108.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: Elastane (proportion in the fabric)\u003c\/li\u003e\n\n\u003cli\u003e✔ Cut: Triangle top with tie straps\u003c\/li\u003e\n\n\u003cli\u003e✔ Design: Solid Green, no pattern\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, a green women's bikini can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini is more work during the day than the day itself\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eSome things you only notice the third time you sit down.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top fits differently in the morning than in the afternoon\u003c\/li\u003e\n\n\u003cli\u003eWet fabric that feels strange\u003c\/li\u003e\n\n\u003cli\u003eOnline sizing is always a guessing game\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eSome bikinis show that they were designed for the photo – not for an afternoon at the lake. The top shifts when swimming, the waistband digs in after two hours, and the fabric feels uncomfortable when wet. This is not an uncommon problem, but a known weakness of many models in this category.\u003c\/p\u003e\n\n\u003cp\u003eA triangle bikini with tie straps can counteract this because the fit can be individually adjusted – not just according to a size chart, but according to your own feeling. The elastane content in the fabric is designed to move with you without losing its shape. This is not a promise, but a constructive approach that can be noticeable with normal use.\u003c\/p\u003e\n\n\u003cp\u003eThis simple green triangle bikini could be right for you if you like quiet designs, value a comfortable fit for everyday wear by the water, and are not looking for a bikini with many embellishments or structural elements. However, if you plan more intense water activities or need a bikini with more support for the top, a different cut might be more suitable – for example, a model with firmer cups or wide straps.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eWould a bikini you forget about during the day be what you're looking for right now?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eTake a close look at the top and bottom – both can be chosen separately if that makes sense for your size.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Stays put comfortably after a long day at the lake\u003c\/li\u003e\n\n\u003cli\u003e→ Top generally stays in place when swimming\u003c\/li\u003e\n\n\u003cli\u003e→ Green appears calmer and more natural by the water than expected\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Triangle cut with tie straps – fit individually adjustable for normal use\u003c\/li\u003e\n\n\u003cli\u003e✅ Elastane content – fabric designed for movement\u003c\/li\u003e\n\n\u003cli\u003e✅ Solid green without a pattern – versatile across seasons\u003c\/li\u003e\n\n\u003cli\u003e✅ Top and bottom can be chosen separately – helpful for different proportions\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not ideal for intense water sports or competitive swimming\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Triangle shape without cups offers less support – if you need that, a different cut is better\u003c\/li\u003e\n\n\u003cli\u003e⚠️ No structured pattern – if you like prints or patterns, you won't find a suitable design here\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical of similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Green Women's Bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming\u003c\/td\u003e\n\n\u003ctd\u003eTie straps allow for individual fit – can stay more stable during normal movement in the water\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eDifficult to estimate size online\u003c\/td\u003e\n\n\u003ctd\u003eTop and bottom can be chosen separately, size calculator with height and weight as a guide\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eBikini colors fade quickly\u003c\/td\u003e\n\n\u003ctd\u003eElastane fabric is designed for flexibility and shape – follow care instructions for longer durability\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eWaistband digs in after a few hours\u003c\/td\u003e\n\n\u003ctd\u003eSimple cut without rigid structural elements – generally comfortable even for longer wear\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe considered exactly these situations with the green women's bikini – so you have to readjust less when wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the green women's bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even when moving.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang to dry, done. Delicate wash at 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: Elastane\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay fit well if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003egreen women's bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003equiet, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about Green Women's Bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for this green triangle bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eSince bikini sizes can vary depending on the cut, our size calculator helps: enter your height and weight, and you'll get a guide. If you're unsure between two sizes: with a triangle top with tie straps, the fit can be individually adjusted, which is why for a slender frame, the smaller size generally works better.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the top fit when swimming and moving?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe triangle top can be secured with tie straps, which can make the fit more stable during movement than fixed straps without adjustment. For normal swimming and everyday movements on the beach, it generally stays put – for intense water activities, a model with a firm cup is more suitable.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I care for this bikini properly?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water to remove residue. Wash on a delicate cycle at 30 °C, do not tumble dry. This will help maintain the fabric's elasticity longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs this simple green bikini without a pattern also available in different sizes?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes, the model is available in several sizes. The top and bottom can be chosen separately, which can be helpful for different proportions. Our size calculator provides the appropriate guide.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat activities is this bikini designed for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThis bikini is designed for everyday use by the water – swimming, spending time at the lake, beach, or pool. For competitive swimming or very intense water sports, a sportier cut with more stability is more suitable.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Green bikini on the shore of Lake Constance – color reflects the reeds and the water\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Triangle top with tie straps, from the front and from the side\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce to order – this reduces overproduction and stock, for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information checked in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, a green women's bikini can be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eGreen Women's Bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€26.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the green women's bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"grüner Bikini Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/swimsuit-pleated-triangle-bikini-set-details.png?v=1776017424\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"26.95\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Green \/ S","offer_id":54413480329484,"sku":"CJYJ148923501AZ","price":26.95,"currency_code":"EUR","in_stock":true},{"title":"Green \/ M","offer_id":54413480362252,"sku":"CJYJ148923502BY","price":26.95,"currency_code":"EUR","in_stock":true},{"title":"Green \/ L","offer_id":54413480395020,"sku":"CJYJ148923503CX","price":26.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/swimsuit-pleated-triangle-bikini-set-details.png?v=1776017424"},{"product_id":"european-and-american-new-tie-dye-lace-up-bikini","title":"Women's Tiger Print Bikini","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a tiger print bikini stay put, even after a long day at the beach?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003eYou might know that feeling when a bikini just stays in place – without constant tugging or adjusting.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eAnd that's exactly when many notice the difference – not when putting it on, but when going into the water for the second or third time.\u003c\/p\u003e\n\n  \u003ch2\u003eWomen's Tiger Print Bikini – Tie-Up Style, for Beach and Lake\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nAdjustable tie-up top and bottom – for a customized fit depending on your figure, subtle tiger print on a calm background, polyester fiber with slight elasticity whether wet or dry.\u003c\/p\u003e\n\n\u003cp\u003eThe tiger print of this bikini works with restraint – not a loud print, but an animal motif that appears calm on a neutral background. On the shore of Lake Constance, where light falls softly over the water, the pattern only becomes apparent on closer inspection. This interplay of structure and stillness is what makes it so appealing.\u003c\/p\u003e\n\n\u003cp\u003eAt the beach, you tighten the shoulder straps, walk into the water – the top stays where it is. When getting up from your towel, when sitting by the shore: the pattern catches the light but remains subtle enough not to dominate. If you like subtle patterns that don't shout but still say something, this is an option for you.\u003c\/p\u003e\n\n\u003cp\u003eThe bikini can be combined with a solid-colored sarong, a white linen shirt over the shoulder, or a simple straw hat. It fits in a holiday suitcase just as well as for a weekend trip to the lake. It makes a good gift for someone who likes prints but isn't looking for extravagance.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The lacing lies flat against the skin – no cutting in when sitting by the shore.\u003cbr\u003e• The pattern looks different depending on the light – calm in the morning, livelier at midday.\u003cbr\u003e• The top can be tied to fit your own shape – not the other way around.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you're unsure about the size, our size calculator can help – just enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"bust_min\": 68.4, \"bust_max\": 82.5, \"waist_min\": 51.6, \"waist_max\": 65.7, \"hip_min\": 73.7, \"hip_max\": 87.8}, {\"name\": \"M\", \"bust_min\": 72.6, \"bust_max\": 86.7, \"waist_min\": 55.8, \"waist_max\": 69.9, \"hip_min\": 77.9, \"hip_max\": 92.0}, {\"name\": \"L\", \"bust_min\": 77.9, \"bust_max\": 93.0, \"waist_min\": 61.0, \"waist_max\": 76.2, \"hip_min\": 83.1, \"hip_max\": 98.2}, {\"name\": \"XL\", \"bust_min\": 84.2, \"bust_max\": 99.3, \"waist_min\": 67.5, \"waist_max\": 82.5, \"hip_min\": 89.4, \"hip_max\": 104.5}, {\"name\": \"2XL\", \"bust_min\": 93.6, \"bust_max\": 109.8, \"waist_min\": 78.9, \"waist_max\": 95.1, \"hip_min\": 97.8, \"hip_max\": 114.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: Polyester fiber (Polyester)\u003c\/li\u003e\n\n\u003cli\u003e✔ Fit: adjustable tie-up top and bottom\u003c\/li\u003e\n\n\u003cli\u003e✔ Pattern: subtle tiger print on a neutral background\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, the women's tiger print bikini can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini no longer stays where it should in the water\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eFit, ties and pattern – what can play a role.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top slips when swimming\u003c\/li\u003e\n\n\u003cli\u003eThe waistband digs in after an hour\u003c\/li\u003e\n\n\u003cli\u003eEstimating size online is often difficult\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eSome people know this feeling: you go into the water, briefly dive under – and then have to pull the top back into place. At the beach, it's barely noticeable, but at the lake with friends, it's more so. It's not a drama, but it draws attention to where you don't want any.\u003c\/p\u003e\n\n\u003cp\u003eThis is often due to a fit designed for a specific cup size, but which leaves little room for deviation. Not every figure fits into a fixed scheme – and bikini tops without adjustability have structural limitations here.\u003c\/p\u003e\n\n\u003cp\u003eThis bikini is designed with variable lacing – the top and bottom can be tied individually, tighter or looser, depending on the body area. This can help the fit remain more stable even with movement. However, if you are looking for a bikini for more intense water sports activities or competitive swimming, a specially designed sports bikini is probably the more suitable choice.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eAre you someone for whom an adaptable fit is more important than a fixed cut – or do you prefer clear structures without straps?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you assess the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eYou can find the available sizes directly in the size selection above.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Stays put better than expected when swimming\u003c\/li\u003e\n\n\u003cli\u003e→ Pattern appears more subtle in real light than in photos\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Adjustable lacing – fit can be customized\u003c\/li\u003e\n\n\u003cli\u003e✅ Subtle tiger print – striking enough to make an impression, calm enough for everyday wear\u003c\/li\u003e\n\n\u003cli\u003e✅ Made from polyester fiber – slightly elastic, wearable wet or dry\u003c\/li\u003e\n\n\u003cli\u003e✅ Designed for beach, lake, and pool under normal conditions\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not designed for competitive swimming or intense water sports\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer structured bikinis without ties will find a different style here\u003c\/li\u003e\n\n\u003cli\u003e⚠️ The tiger print is subtle – those looking for a very striking print will have different expectations\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Women's Tiger Print Bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming\u003c\/td\u003e\n\n\u003ctd\u003eLacing can be tied so that the fit remains more stable during normal movement\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSize difficult to estimate online\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator available with height and weight as a guide\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eWaistband digs in after extended wear\u003c\/td\u003e\n\n\u003ctd\u003eAdjustable lacing can reduce pressure on waistband and straps\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePattern appears too striking for calm beaches\u003c\/td\u003e\n\n\u003ctd\u003eSubtle tiger print on a neutral background – appears understated, not loud\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered exactly these situations with the women's tiger print bikini – so you have to adjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the women's tiger print bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang to dry, done. Gentle wash at 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: Polyester fiber (polyester)\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eCan be a good fit if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003ewomen's tiger print bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about Women's Tiger Print Bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for a women's tiger print bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eOur size calculator will help you – enter your height and weight to get a guide. Since this bikini has adjustable lacing, it can be adapted to your figure within certain limits. If you are unsure between two sizes, it may be helpful to choose the larger option.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the waistband fit during movement – for example, when swimming?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe top is designed for an adjustable fit through the lacing. During normal movement in the water – swimming, going into the water – it generally stays put more calmly than models without adjustability. It is not designed for intense water sports.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for the bikini after wearing it?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear, cool water. Wash on a delicate cycle at 30°C, do not tumble dry. Drying flat on a towel will preserve the material and shape for longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan I order the top and bottom in different sizes?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThis is a common request – whether the top and bottom are available separately in different sizes can be seen in the respective size selection for the product. Check there directly to see what options are currently offered.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat activities is this tiger print bikini suitable for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThis bikini is designed for the beach, lake, pool, and relaxed holidays. For competitive swimming or highly athletic water activities, there are more suitable models with a firmer construction.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan the tiger print tie-up bikini be worn in different styles?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes – due to the variable lacing, it can be tied differently depending on the desired coverage and fit. This allows for a bit more versatility in how it's worn, but requires a short period of adjustment when first putting it on.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikinis\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Lacing lies flat on the shoulder – no bulging\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Tiger print in the soft sunlight by the water\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and inventory, for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the women's tiger print bikini can be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eWomen's Tiger Print Bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€23.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the women's tiger print bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Bikini mit Tigermuster Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/tie-dye-lace-up-bikini.png?v=1776146628\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"23.95\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Y57 Tiger Pattern \/ S","offer_id":54413481279756,"sku":"CJYJ176568301AZ","price":23.95,"currency_code":"EUR","in_stock":true},{"title":"Y57 Tiger Pattern \/ M","offer_id":54413481312524,"sku":"CJYJ176568302BY","price":23.95,"currency_code":"EUR","in_stock":true},{"title":"Y57 Tiger Pattern \/ L","offer_id":54413481345292,"sku":"CJYJ176568303CX","price":23.95,"currency_code":"EUR","in_stock":true},{"title":"Y57 Pink Floral \/ S","offer_id":54413481378060,"sku":"CJYJ176568304DW","price":23.95,"currency_code":"EUR","in_stock":true},{"title":"Y57 Pink Floral \/ M","offer_id":54413481410828,"sku":"CJYJ176568305EV","price":23.95,"currency_code":"EUR","in_stock":true},{"title":"Y57 Pink Floral \/ L","offer_id":54413481443596,"sku":"CJYJ176568306FU","price":23.95,"currency_code":"EUR","in_stock":true},{"title":"Y57 Blue Butterfly \/ S","offer_id":54413481476364,"sku":"CJYJ176568307GT","price":23.95,"currency_code":"EUR","in_stock":true},{"title":"Y57 Blue Butterfly \/ M","offer_id":54413481509132,"sku":"CJYJ176568308HS","price":23.95,"currency_code":"EUR","in_stock":true},{"title":"Y57 Blue Butterfly \/ L","offer_id":54413481541900,"sku":"CJYJ176568309IR","price":23.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/tie-dye-lace-up-bikini.png?v=1776146628"},{"product_id":"push-up-split-large-size-bikini-swimsuit","title":"Tropical Bikini Leaf Print Women","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini that stays put all day at the lake – and still looks good?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know the feeling when a bikini just fits – no pulling, no adjusting, just there.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eOver the course of a long day at the beach, it becomes clear whether a bikini truly holds up – not just at first glance.\u003c\/p\u003e\n\n  \u003ch2\u003ePush-Up Bikini Plus Size with Tropical Leaf-Flower Print – for Lake, Beach, and Vacation\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nTwo-piece bikini set with push-up top and matching bottoms – tropical leaf-flower motif that is understated without disappearing. Fabric made of polyester fiber: snug, light, comfortable on the skin.\u003c\/p\u003e\n\n\u003cp\u003eThe pattern follows a clear idea: leaves and flowers in calm tones, creating a visual world that evokes warm afternoons by the water. Not a flashy tropical print, but a version that still looks harmonious even after hours at the lake. The eye is drawn to the motif – and lingers briefly before moving on.\u003c\/p\u003e\n\n\u003cp\u003eThe top is designed for a shaping fit – the push-up effect is subtle, not theatrical. On a sunbathing lawn, as you sit up, or as you slowly enter the water: the pattern wears calmly, and the cups largely stay in position. The top and bottom can be chosen separately – allowing the fit for the top and bottom to be found independently, which makes a noticeable difference for curvier figures.\u003c\/p\u003e\n\n\u003cp\u003eAs a souvenir for someone who loves summer days by the water: The pattern says something without being loud. As your own choice for a dream vacation – lake, sun, no calendar. Or simply for the next Saturday on the shore of Lake Constance, when the water is warm enough and time plays no role.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The leaf motif appears calm on light fabric – not obtrusive, but visible.\u003cbr\u003e• The top usually stays put when getting up from the lounger, without needing adjustment.\u003cbr\u003e• Top and bottom can be chosen separately – for a fit that suits your own figure, not an average value.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you're comparing sizes, our size calculator can help – enter your height and weight, and receive a recommendation.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"0XL\", \"bust_min\": 83.0, \"bust_max\": 89.0, \"waist_min\": 72.0, \"waist_max\": 116.0, \"hip_min\": 79.0, \"hip_max\": 85.0}, {\"name\": \"1XL\", \"bust_min\": 89.0, \"bust_max\": 95.0, \"waist_min\": 78.0, \"waist_max\": 124.0, \"hip_min\": 85.0, \"hip_max\": 91.0}, {\"name\": \"2XL\", \"bust_min\": 95.0, \"bust_max\": 101.0, \"waist_min\": 84.0, \"waist_max\": 130.0, \"hip_min\": 91.0, \"hip_max\": 97.0}, {\"name\": \"3XL\", \"bust_min\": 101.0, \"bust_max\": 107.0, \"waist_min\": 90.0, \"waist_max\": 136.0, \"hip_min\": 97.0, \"hip_max\": 103.0}, {\"name\": \"4XL\", \"bust_min\": 107.0, \"bust_max\": 113.0, \"waist_min\": 96.0, \"waist_max\": 142.0, \"hip_min\": 103.0, \"hip_max\": 109.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: Polyester Fiber (Polyester)\u003c\/li\u003e\n\n\u003cli\u003e✔ Two-piece: Top and bottom can be chosen separately\u003c\/li\u003e\n\n\u003cli\u003e✔ Push-up top with shaping cut\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, the women's tropical leaf print bikini can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini becomes restless with movement in the water\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eFit, shape, motif – what can make the difference on a long day at the beach.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top doesn't hold properly when swimming\u003c\/li\u003e\n\n\u003cli\u003eOnline bikini sizes are difficult to estimate\u003c\/li\u003e\n\n\u003cli\u003eThe fabric feels uncomfortable when wet\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou go into the water, swim a few strokes – and realize you have to pull the top back into place afterwards. This happens with many bikinis, especially if the cut and body shape don't fit well together. It's not a disaster, but it interrupts the calm feeling you hope for by the water.\u003c\/p\u003e\n\n\u003cp\u003eThe reason is usually a combination of cut and elasticity: If the fabric gives way with movement without returning to its original shape, the position of the cups shifts. This is a question of material – and a question of the cut, which must be designed for movement, not just for standing in front of a mirror.\u003c\/p\u003e\n\n\u003cp\u003eThis push-up bikini in plus sizes is designed for a stable fit during normal movement in the water – when swimming, sitting down, standing up. The polyester material gives way but usually returns to its shape under normal strain. However, if you engage in intensive water sports or are very active in the water, a sports swimsuit with a firm cut might be a more suitable choice.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDo you prefer a bikini that adapts to the body – or one that provides more support with a firmer hold?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you assess the cut and size – enter your height and weight, and you'll get guidance for the top and bottom separately.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eTake your time looking at the available sizes – the top and bottom can be chosen independently.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Top stays put even after hours at the lake\u003c\/li\u003e\n\n\u003cli\u003e→ Pattern looks calm and harmonious in real light\u003c\/li\u003e\n\n\u003cli\u003e→ Fit can be much better adjusted by choosing separate sizes for top and bottom\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Top and bottom can be chosen separately – fit can be individually adjusted\u003c\/li\u003e\n\n\u003cli\u003e✅ Push-up cut for a shaping fit under normal strain\u003c\/li\u003e\n\n\u003cli\u003e✅ Tropical leaf-flower motif in calm colors – subtle, but visible\u003c\/li\u003e\n\n\u003cli\u003e✅ Designed for beach, lake, and vacation\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Less suitable for intensive water sports or competitive swimming – a sports swimsuit offers more support here\u003c\/li\u003e\n\n\u003cli\u003e⚠️ If you prefer a pure plain design without a pattern, a solid-colored model might be a more suitable choice\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ tropical leaf print bikini for women\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips after a few strokes\u003c\/td\u003e\n\n\u003ctd\u003eDesigned for a stable fit during normal movement in the water – usually stays in position during calm swimming\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eOne-size-fits-all doesn't fit properly top or bottom\u003c\/td\u003e\n\n\u003ctd\u003eTop and bottom can be chosen separately – individual fit possible for different proportions\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePattern looks more intrusive in real life than in the photo\u003c\/td\u003e\n\n\u003ctd\u003eLeaf-flower print in calm tones – a subtle tropical print that is understated\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSize hard to estimate online\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator with height and weight provides guidance – not a guarantee, but a helpful indicator\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered exactly these situations with the women's tropical leaf print bikini – so you'll have to adjust it less when wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the women's tropical leaf print bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash at 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: Polyester Fiber (polyester)\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eCould be a good fit if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003etropical leaf print bikini for women\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about Tropical Leaf Print Bikini for Women\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs this tropical bikini with a leaf print also available in plus sizes?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes, this push-up bikini is designed for plus sizes. The top and bottom can be chosen separately – allowing the fit to be individually adjusted. The size calculator helps to estimate the correct size based on height and weight.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the top fit when swimming – does it stay in position?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe top is designed for a stable fit during normal movement in the water. During calm swimming and everyday movements on the beach, it generally stays put. For very intensive water sports, a sports swimsuit with a firm strap system may be more suitable.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for this bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water, then wash on a delicate cycle at 30°C. Do not tumble dry – air drying preserves shape and color longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan I order the top and bottom in different sizes?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes, that's the advantage of this split set: the top and bottom are separately selectable. Those who wear different sizes on top and bottom can thus find a fit that suits their own figure – not a one-size-fits-all set.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for this bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eOur size calculator gives you an orientation based on height and weight. Since the top and bottom are chosen separately, it's worth checking both parts individually. If in doubt, it may be advisable to choose one size larger, as the fabric allows little leeway.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs the pattern rather striking or subtle?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe leaf-flower print is designed to be visible but not dominant. The color scheme is kept in calm tones – more subtle than flashy. If you prefer a very minimalist plain design, a solid-colored model might be a more suitable choice.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Blätter-Blüten-Motiv in ruhigen, gedämpften Tönen auf hellem Untergrund\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Push-Up-Cups mit formendem Schnitt – sichtbarer Effekt, kein Übertreiben\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and warehouse stock, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the women's tropical leaf print bikini might be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003etropical leaf print bikini for women\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€26.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the women's tropical leaf print bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"tropischer Bikini Blätterprint Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/1669d4ed-a2a1-4ce0-b42b-2693a6a4b4cc.jpg?v=1776145664\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"26.95\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Picture Color \/ L","offer_id":54413482950924,"sku":"CJYJ179348901AZ","price":26.95,"currency_code":"EUR","in_stock":true},{"title":"Picture Color \/ XL","offer_id":54413482983692,"sku":"CJYJ179348902BY","price":26.95,"currency_code":"EUR","in_stock":true},{"title":"Picture Color \/ 2XL","offer_id":54413483016460,"sku":"CJYJ179348903CX","price":26.95,"currency_code":"EUR","in_stock":true},{"title":"Picture Color \/ 3XL","offer_id":54413483049228,"sku":"CJYJ179348904DW","price":26.95,"currency_code":"EUR","in_stock":true},{"title":"Picture Color \/ 4XL","offer_id":54413483081996,"sku":"CJYJ179348905EV","price":26.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/1669d4ed-a2a1-4ce0-b42b-2693a6a4b4cc.jpg?v=1776145664"},{"product_id":"split-bikini-damen","title":"orange bikini yellow accents","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes an orange bikini that stays put all day at the beach – yet still looks light?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003eYou might know that feeling when a bikini just fits – without having to adjust or re-tie it at lunchtime.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eMany don't notice the difference when they put it on, but only after a few hours at the lake – when everything is still where it should be.\u003c\/p\u003e\n\n  \u003ch2\u003eWomen's Orange Bikini with Yellow Accents – High-Waist for Lake and Beach\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nHigh waistline – for a secure fit even with movement in the water, Orange with subtle yellow accents, Fabric with pleasant elasticity wet or dry.\u003c\/p\u003e\n\n\u003cp\u003eThe color combination of vibrant orange and yellow details has something that can be seen on the shores of Lake Constance as well as in the Mediterranean: a freshness that isn't loud. The orange glows in the sunlight without being blinding – the yellow accents provide a calm counterpoint that enlivens the overall look without overpowering it. Anyone looking for simple swimwear with a small splash of color will find both here.\u003c\/p\u003e\n\n\u003cp\u003eThe high waist sits in a region where many bikinis either pinch or slip – here it is cut to remain secure during normal movement. Whether you stand up on the beach, go into the water, or simply sit on a towel: the silhouette remains as it is. The top matches the clear, understated style – no fuss, but impact.\u003c\/p\u003e\n\n\u003cp\u003eThis orange bikini for women is perfect for an afternoon at the lake, when you cycle to the shore and spontaneously go for a swim. It's suitable for vacations where you're constantly in and out of the water all day. And it's for all those who like swimwear they don't have to constantly think about.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The high waistband lies flat – no digging in, even after long wear by the water.\u003cbr\u003e• The orange appears warm in the sunlight without being overly bright – the yellow accents give the piece its own character.\u003cbr\u003e• When wet, the fabric feels light and not heavy – you feel the material, but it doesn't drag you down.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you like color blocks without patterns and are looking for a simple two-piece with a bit of personality – check out the available sizes.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"height_min\": 153, \"height_max\": 163, \"weight_min\": 50, \"weight_max\": 60}, {\"name\": \"M\", \"height_min\": 158, \"height_max\": 168, \"weight_min\": 58, \"weight_max\": 68}, {\"name\": \"L\", \"height_min\": 163, \"height_max\": 173, \"weight_min\": 66, \"weight_max\": 76}, {\"name\": \"XL\", \"height_min\": 168, \"height_max\": 178, \"weight_min\": 74, \"weight_max\": 84}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: 78% Polyamide, 22% Elastane\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Delicate wash 30 °C, do not tumble dry\u003c\/li\u003e\n\n\u003cli\u003e✔ Size selection: Top according to bust measurement, bottom according to waist measurement – selectable separately\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size fit you, an orange bikini with yellow accents can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini doesn't perform in the water, it's noticeable\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eFit, color, and shape – what really matters when wearing it.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top doesn't stay put as soon as you swim\u003c\/li\u003e\n\n\u003cli\u003eThe waistband pinches or slips after a short time\u003c\/li\u003e\n\n\u003cli\u003eOrdered online, size misjudged\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou know the feeling: you briefly dive under, come back up – and the first thing you have to do is readjust. The top has slipped, the waistband has shifted. After a long day at the lake, this becomes a small but constant distraction.\u003c\/p\u003e\n\n\u003cp\u003eOften it's due to the cut: too little support on top, a waistband that sits too low, or material that gives way when wet. Not every model is designed for movement – some are more for posing by the pool than for actually going into the water.\u003c\/p\u003e\n\n\u003cp\u003eThis bikini is designed for a secure fit with normal movement – the high waist can help ensure the bottom stays put even when swimming and standing up. The top is simple, without superfluous straps or fasteners that could come undone. The top and bottom can be chosen separately in sizes according to bust and waist – this can be helpful if your upper and lower body are different sizes. However, if you're planning more intense water sports or are looking for a very sporty model, a technical swimwear model might be more suitable.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDoes a calm, subtle two-piece with some color suit you – or are you looking for something sportier or patterned?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – simply enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eCheck out the available sizes and choose the top and bottom separately.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Still fits as it should after a long day at the lake\u003c\/li\u003e\n\n\u003cli\u003e→ Top usually stays put while swimming\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ High waist – for a more secure fit even with movement in the water\u003c\/li\u003e\n\n\u003cli\u003e✅ Top and bottom selectable separately – according to bust and waist measurements\u003c\/li\u003e\n\n\u003cli\u003e✅ Simple look with color accent – vibrant orange, yellow details, no pattern\u003c\/li\u003e\n\n\u003cli\u003e✅ 78% Polyamide, 22% Elastane – adapts to movement under normal use\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not ideal for intensive water sports or competitive swimming\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer very subtle or patterned swimwear may not find the right style here\u003c\/li\u003e\n\n\u003cli\u003e⚠️ No technical swimming properties (no quick-drying promise, no proven UV protection)\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Orange Bikini with Yellow Accents\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming\u003c\/td\u003e\n\n\u003ctd\u003eDesigned for a stable fit when moving in water – simply cut, without loose straps\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eWaistband pinches or slips after a short time\u003c\/td\u003e\n\n\u003ctd\u003eHigh waistband – can stay put during normal activity\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eOnline sizing for bikinis hard to estimate\u003c\/td\u003e\n\n\u003ctd\u003eTop and bottom selectable separately by bust and waist measurement – size calculator available\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eColors look faded after one season\u003c\/td\u003e\n\n\u003ctd\u003ePolyamide\/Elastane material – designed to retain shape with normal use; observe care instructions\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe considered exactly these situations when designing the orange bikini with yellow accents – so you have to adjust less when wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the orange bikini with yellow accents feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you'll notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang, done. Delicate wash 30°C, do not tumble dry – observe care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 78% Polyamide, 22% Elastane\u003cbr\u003e• Care: Delicate wash 30 °C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eIt might suit you well if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for an \u003cstrong\u003eorange bikini with yellow accents\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct Details at a Glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Delicate wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about the Orange Bikini with Yellow Accents\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs the orange bikini with yellow accents also available with a high waist?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes – the bottom of this split bikini is designed as a high-waist cut. The high waistband usually sits above the hips and is designed for a secure fit with normal movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for the orange and yellow split bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eSince the top and bottom are chosen separately, you can select both pieces individually according to bust and waist measurements. Our size calculator helps you with this – entering your height and weight is enough as a starting point. If in doubt, choose one size larger.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eDoes the top stay put while swimming?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe top is designed for a stable fit with normal movement in the water. For very intensive water sports or competitive swimming, a technically cut swimming model is generally more suitable.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I care for this bikini properly?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water, then wash on a delicate cycle at 30 °C. Do not tumble dry – drying flat preserves the shape and material.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs the orange of the bikini very vibrant or rather muted?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe color is described as a strong, warm orange – with subtle yellow accents for contrast. The result looks fresh in the sunlight without being garish. Those who prefer very restrained shades can find more muted options in our collection.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan I combine the simple high-waist bikini in orange with other bikini parts?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThis is generally possible, as the top and bottom are available separately. The color effect with other models depends on the specific shade – if in doubt, check the color details of the other pieces.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Orange glows warmly in the sunlight – yellow accents provide a calm contrast\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"High waistband forms a clear line at the waist\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce to order – this reduces overproduction and inventory, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information checked in accordance with EU GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the orange bikini with yellow accents could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eOrange Bikini with Yellow Accents\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€22.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the orange bikini with yellow accents can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20.05.2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"orange bikini gelbe akzente\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/color-matching-split-swimsuit-erstes-produktbild.png?v=1776101208\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"22.95\", \"priceCurrency\": \"EUR\"}, \"additionalProperty\": [{\"@type\": \"PropertyValue\", \"name\": \"Pflegehinweis\", \"value\": \"Feinwäsche 30 °C, nicht im Trockner trocknen\"}]}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Ginger Yellow \/ S","offer_id":54413483606284,"sku":"CJYJ201735901AZ","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Ginger Yellow \/ M","offer_id":54413483639052,"sku":"CJYJ201735902BY","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Ginger Yellow \/ L","offer_id":54413483671820,"sku":"CJYJ201735903CX","price":22.95,"currency_code":"EUR","in_stock":true},{"title":"Ginger Yellow \/ XL","offer_id":54413483704588,"sku":"CJYJ201735904DW","price":22.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/color-matching-split-swimsuit-erstes-produktbild.png?v=1776101208"},{"product_id":"printed-womens-bikini-strap-split-suit","title":"white bikini top patterned bottoms","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini that stays put at the beach – and doesn't constantly demand attention?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that calm feeling when a bikini is simply there – without you having to think about it.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eOver the course of a day at the beach, it often becomes clear which set truly fits – and which only looked convincing on the hanger.\u003c\/p\u003e\n\n  \u003ch2\u003eWomen's White Patterned Bikini – White Top with Ornament Bottoms for Lake and Beach\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini set is made for:\u003c\/strong\u003e\u003cbr\u003e\nWhite top, tank top cut – subtly combined with patterned bottoms in an ornamental design. The interplay of clear white and the calm pattern creates a look that isn't flashy but still leaves an impression.\u003c\/p\u003e\n\n\u003cp\u003eThe ornamental pattern on the bikini bottoms has that tranquil quality known from a quiet Lake Constance morning: not loud, but with poise. The shapes appear artisanal, almost graphic – yet organic enough not to seem too cool. The white top gives space to the pattern without fading into the background itself.\u003c\/p\u003e\n\n\u003cp\u003eWhat makes this set interesting is the contrast: the clear white top gives the patterned bottom room to shine. On the shore of Lake Constance, when you get out of the water and wrap a towel around yourself, this is exactly the bikini that fits that moment – without promising too much. Those who like to combine calm patterns with clear surfaces will find a harmonious option here.\u003c\/p\u003e\n\n\u003cp\u003eFor a day at the lake, a week's vacation, or an afternoon by the pool: the set can be worn with a sarong, loose shorts, or a light summer skirt without the combination needing explanation. Those seeking subtle swimwear with a serene moment in its pattern might find what they're looking for here.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll know\u003c\/h3\u003e\n\n\u003cp\u003e• You put on the set and realize you don't think about it – it's just there.\u003cbr\u003e• Someone notices the pattern and asks where you got it – not because it's flashy, but because it's harmonious.\u003cbr\u003e• When packing your suitcase, it goes in without hesitation – as the set that goes with almost everything.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you want to estimate the size and cut, our size calculator will help you.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"XS\", \"height_min\": 148, \"height_max\": 158, \"weight_min\": 42, \"weight_max\": 52}, {\"name\": \"S\", \"height_min\": 153, \"height_max\": 163, \"weight_min\": 50, \"weight_max\": 60}, {\"name\": \"M\", \"height_min\": 158, \"height_max\": 168, \"weight_min\": 58, \"weight_max\": 68}, {\"name\": \"L\", \"height_min\": 163, \"height_max\": 173, \"weight_min\": 66, \"weight_max\": 76}, {\"name\": \"XL\", \"height_min\": 168, \"height_max\": 178, \"weight_min\": 74, \"weight_max\": 84}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: Polyester\u003c\/li\u003e\n\n\u003cli\u003e✔ Set: white top + patterned bikini bottoms (ornament pattern)\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: rinse briefly with clear water, delicate wash 30 °C, do not tumble dry\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, the white bikini top with patterned bottoms can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini needs more attention on the beach than you do\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eA set that fits – without you having to think about it.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top slides sideways when swimming\u003c\/li\u003e\n\n\u003cli\u003eThe waistband digs in after an hour on the beach\u003c\/li\u003e\n\n\u003cli\u003eThe size looks right online, but doesn't fit on your body\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou go into the water, swim a few strokes – and at some point, you realize that part of the bikini is no longer where it started. You adjust, turn away briefly, straighten up. This is not an isolated case: many bikinis are designed for quiet standing, not for movement.\u003c\/p\u003e\n\n\u003cp\u003eThe reason usually lies in the cut and material: a top that lacks stable strap guidance, or a waistband that doesn't allow for leeway when sitting. The polyester material of this set is designed for flexibility – it gives way but generally returns to its shape. Whether this suits every body type and situation can best be assessed using the size calculator.\u003c\/p\u003e\n\n\u003cp\u003eIf you prefer calm, non-sporting water activities – swimming, floating, sitting on the shore – this set can be a suitable option. It is not designed for intense swimming or water sports; for that, there is swimwear with stronger support. Those looking for an uncomplicated set for a summer day may find a possible answer here.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIs stable fit during movement the first thing you check for in swimwear?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you assess the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eTake your time to look at the set – and let the size calculator help you decide.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Still fits well after a long day at the beach\u003c\/li\u003e\n\n\u003cli\u003e→ Top usually stays in place even when swimming\u003c\/li\u003e\n\n\u003cli\u003e→ Combination of white and pattern is perceived as harmonious\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Calm ornamental pattern on the bottoms – subtle, not flashy\u003c\/li\u003e\n\n\u003cli\u003e✅ White top can be combined with various bottoms\u003c\/li\u003e\n\n\u003cli\u003e✅ Polyester material is designed for normal movement in the water\u003c\/li\u003e\n\n\u003cli\u003e✅ Clear color concept – matches sarongs, shorts, and summer dresses\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not suitable for intense water sports or competitive swimming\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer bold patterns or vibrant colors will likely not find the right style here\u003c\/li\u003e\n\n\u003cli\u003e⚠️ White top may be less opaque when wet – varies individually\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar ones\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ White bikini top patterned bottoms\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming\u003c\/td\u003e\n\n\u003ctd\u003eStrap cut designed for more stable fit during everyday movement\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eWaistband digs in or chafes after a short time\u003c\/td\u003e\n\n\u003ctd\u003eElastic waistband with leeway – usually no pressure sensation under normal load\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eOnline sizes rarely fit for bikinis\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator with height and weight available as a guide\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePattern and color quickly appear generic\u003c\/td\u003e\n\n\u003ctd\u003eOrnamental pattern in a calm tone – deliberately subtle, not seasonal\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered precisely these situations with the white bikini top and patterned bottoms – so you have to adjust less when wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the white bikini top with patterned bottoms feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even when moving.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSalt water, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang to dry, done. Delicate wash at 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: Polyester Fiber (polyester)\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eIt might be a good fit if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003ewhite bikini top with patterned bottoms\u003c\/strong\u003e that fits well\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently asked questions about the white bikini top with patterned bottoms\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for this bikini set with a white top and patterned bottoms?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eOur size calculator will help you – enter your height and weight to get a suitable orientation. If you're unsure between two sizes, it might be helpful to choose the larger option, as the cut tends to be close-fitting.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the waistband of the patterned bikini bottoms fit during movement?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe bottoms are designed for normal movement on the beach and in the water – walking, swimming, sitting. The waistband is cut so that it generally doesn't dig in. The set is not designed for intense water sports.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I care for this bikini set properly?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear water, then wash on a delicate cycle at 30 °C. Do not tumble dry – this protects the material and shape.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan I wear the top and bottoms of this bikini set from the Lake Constance region separately?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe white top combines well with other bikini bottoms, and the patterned bottoms likewise with other tops. The color choice – white and a calm ornamental pattern in neutral tones – makes combinations straightforward.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat water activities is this bikini set suitable for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe set is designed for calmer water activities – swimming, floating on the lake, walking on the beach. The construction is not intended for intense water sports or competitive swimming; there is more specialized sports swimwear for that.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"White top in the sunlight on the shore of Lake Constance\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Ornamental pattern of the bottoms – calm, graphic, clear\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and warehouse stock, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information checked in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the white bikini top with patterned bottoms could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eWhite bikini top patterned bottoms\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€25.95\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the white bikini top with patterned bottoms can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20\/05\/2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"weißes Bikini Top gemusterte Hose\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/printed-womens-bikini-strap-split-suit-variante-1.png?v=1776100211\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"25.95\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"White \/ XS","offer_id":54413483770124,"sku":"CJYJ201775901AZ","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"White \/ S","offer_id":54413483802892,"sku":"CJYJ201775902BY","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"White \/ M","offer_id":54413483835660,"sku":"CJYJ201775903CX","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"White \/ L","offer_id":54413483868428,"sku":"CJYJ201775904DW","price":25.95,"currency_code":"EUR","in_stock":true},{"title":"White \/ XL","offer_id":54413483901196,"sku":"CJYJ201775905EV","price":25.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/printed-womens-bikini-strap-split-suit-variante-1.png?v=1776100211"},{"product_id":"bikini-leopard-print-tube-top-split-womens-suit","title":"Women's Leopard Print Bikini","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a leopard print bikini stay put all day – without constant adjustments?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that serene feeling when a bikini simply stays where it belongs – when getting out of the water, when lying on a towel.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eAnd that's where the difference shows – less in the first moment, more over the course of an entire beach day.\u003c\/p\u003e\n\n  \u003ch2\u003eWomen's Leopard Print Bikini – Two-piece Tube Top Set for Beach and Pool\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nTwo-piece tube top design with leopard print – clear, straight lines on top, free movement below, animal print as a deliberate visual accent.\u003c\/p\u003e\n\n\u003cp\u003eThe leopard print has been a calm companion by the water for years – not because it's loud, but because it looks crisp. On this bikini, it appears in neutral brown and beige tones, without being obtrusive. The eye is drawn to the pattern first but doesn't get stuck on it – it simply glides on. Like a morning on Lake Constance, when the light still falls flat over the water and the pattern in the shade almost looks like a natural motif.\u003c\/p\u003e\n\n\u003cp\u003eThe tube top follows a straight line without straps – it focuses on surface rather than volume. This keeps the look calm: no overloaded detail, no second eye-catcher. The two-piece cut leaves the stomach and back free and, together with the leopard print, looks light and airy. Those who like calm combinations can wear it with a light linen cloth or simple shorts – the pattern then carries the conversation alone.\u003c\/p\u003e\n\n\u003cp\u003eBy the pool in the midday heat, when you just get up briefly to go into the water – the bikini stays put, the pattern remains visible, nothing slips during movement. On the beach during an evening stroll along the promenade, a towel loosely draped over the shoulders – the animal print looks almost timeless in the evening light. For a beach holiday where you need little more than a bikini during the day, this cut can be a straightforward choice.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The pattern attracts glances, the cut remains calm – both together feel balanced.\u003cbr\u003e• The tube top sits without straps, giving a free, open feeling on the shoulders and neck.\u003cbr\u003e• Two-piece also means: easy to put on and take off, uncomplicated even after swimming.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf you're not sure about the size yet: Our size calculator gives you a reference point – height and weight are sufficient.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate Size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"bust_min\": 81.0, \"bust_max\": 86.0, \"waist_min\": 61.0, \"waist_max\": 66.0, \"hip_min\": 86.0, \"hip_max\": 91.0}, {\"name\": \"M\", \"bust_min\": 86.0, \"bust_max\": 91.0, \"waist_min\": 66.0, \"waist_max\": 71.0, \"hip_min\": 91.0, \"hip_max\": 96.0}, {\"name\": \"L\", \"bust_min\": 91.0, \"bust_max\": 96.0, \"waist_min\": 71.0, \"waist_max\": 76.0, \"hip_min\": 96.0, \"hip_max\": 101.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Cut: Tube top (strapless), two-piece\u003c\/li\u003e\n\n\u003cli\u003e✔ Pattern: Leopard print \/ Animal print in brown-beige tones\u003c\/li\u003e\n\n\u003cli\u003e✔ Care instructions: Rinse briefly with clear water after wearing, delicate wash 30 °C, do not tumble dry\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size fit you, the women's leopard print bikini can feel significantly different in everyday life.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a Tube Top Bikini Lacks Secure Hold\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eWhat to consider with this cut – and for whom it's suitable.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top slips when swimming\u003c\/li\u003e\n\n\u003cli\u003eOnline sizing is difficult to estimate\u003c\/li\u003e\n\n\u003cli\u003eTube tops feel insecure without straps\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eAnyone who has gone into the water with a strapless bikini top and then had to adjust it knows the feeling: you move more cautiously than necessary, thinking more about the fit than the moment. This happens especially when the top doesn't suit your figure or when the size is wrong.\u003c\/p\u003e\n\n\u003cp\u003eTube tops sit without classic straps – that's their appeal, but also where the fit matters. If the top is too loose, it can slip with any significant movement. Too tight, it's uncomfortable. Since trying it on isn't possible when buying online, it's worth taking a close look at the size specifications and, if available, at other buyers' comments on the fit of this model.\u003c\/p\u003e\n\n\u003cp\u003eThis leopard print bikini is primarily a fashion-oriented model for calmer moments by the water – beach days, pool visits, holidays. For intense swimming or very active water sports, a tube top is generally less suitable. If you are looking for a bikini that offers maximum security during movement in the water, a model with straps or a sporty cut might be a better choice. If, on the other hand, you have relaxed beach days ahead and like a clear, striking pattern, this cut can be a good fit.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eHow active do you plan your next beach holiday – more relaxed by the water or with a lot of movement?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eLook closely at the product images and check the size specifications before making a decision.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Stays put calmly even after a long beach day\u003c\/li\u003e\n\n\u003cli\u003e→ Pattern appears equally balanced in photos and in motion\u003c\/li\u003e\n\n\u003cli\u003e→ Easy to put on and take off even after swimming\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Two-piece cut – top and bottom can be worn independently\u003c\/li\u003e\n\n\u003cli\u003e✅ Strapless tube top – free feeling on shoulders and neck\u003c\/li\u003e\n\n\u003cli\u003e✅ Leopard print with calm shaping – pattern carries, cut recedes\u003c\/li\u003e\n\n\u003cli\u003e✅ Designed for beach days and pool visits – uncomplicated in everyday life\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Less suitable for intense swimming or active water sports\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Strapless tube top – hold may vary with very lively movement in the water\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Not ideal if a very subtle, inconspicuous look is desired\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Material specifications are not available – carefully check fit before purchase\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Women's Leopard Print Bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming or getting up\u003c\/td\u003e\n\n\u003ctd\u003eTwo-piece cut with tube top – designed for calm fit during moderate movement\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSize hard to estimate online\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator with height and weight provides a reference point\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePattern quickly appears overloaded or obtrusive\u003c\/td\u003e\n\n\u003ctd\u003eLeopard print combined with a simple tube top cut – pattern and shape are balanced\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eColors fade after the first season\u003c\/td\u003e\n\n\u003ctd\u003eRinse briefly after wearing and wash gently – can help maintain color and shape longer\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered just such situations with the women's leopard print bikini – so you have to adjust less when wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the Women's Leopard Print Bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you notice: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash 30°C, do not tumble dry – observe care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: Nylon\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay fit well if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003ewomen's leopard print bikini\u003c\/strong\u003e with a fit that can suit you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about Women's Leopard Print Bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat activities is a women's leopard print bikini in a tube top cut suitable for?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThis bikini is designed for relaxed beach days, pool visits, and summer holidays. For intense swimming or very active water sports, a strapless tube top is generally less suitable – a model with straps or a sporty cut can offer more security there.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for the Leopard Print Bandeau Set?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eTube top bikinis sit without straps, so the fit is particularly important. Our size calculator gives you a reference point based on your height and weight. If you are between two sizes, it's worth taking a look at the product images and any comments from other buyers regarding the fit.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eDoes the top stay secure when swimming?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eTube tops generally sit well as long as the size is right and the activity is moderate. The cut is designed for calm swimming and movement by the water. For intense water activities or strong movement, a model with straps can offer more support.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I care for a leopard print bikini properly?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eRinse briefly with clear water after wearing, so that salt water or chlorine residues do not remain in the fabric. Delicate wash at 30 °C, do not tumble dry – this protects the shape and color.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs the model rather striking or understated?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe leopard print is the clear visual accent – the cut itself is simple and minimalist. If you are looking for a very subtle, inconspicuous design, this model is probably not for you. If you want to combine a clear pattern with a calm shape, you might find what you're looking for here.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eCan I order the top and bottom in different sizes?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThat depends on the specific offer in the shop. Check the product details or contact the shop directly – with two-piece bikinis, separate selection of top and bottom is sometimes possible and can significantly improve the fit.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Leopard print in the flat morning light on the water – pattern almost looks like a natural motif\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Tube top silhouette from the front – straight line, clear surface, no overloaded detail\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce to order – this reduces overproduction and stock, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information checked according to EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the women's leopard print bikini could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eWomen's Leopard Print Bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€31.99\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        In the end, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the Women's Leopard Print Bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20\/05\/2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Bikini Leopardenmuster Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/739bb68b-c02e-4da7-90ac-535055fcc58b.jpg?v=1776097323\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"31.99\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"C3534 Black \/ S","offer_id":54413485474060,"sku":"CJYJ205373701AZ","price":31.99,"currency_code":"EUR","in_stock":true},{"title":"C3534 Black \/ M","offer_id":54413485506828,"sku":"CJYJ205373702BY","price":31.99,"currency_code":"EUR","in_stock":true},{"title":"C3534 Black \/ L","offer_id":54413485539596,"sku":"CJYJ205373703CX","price":31.99,"currency_code":"EUR","in_stock":true},{"title":"C3534 Leopard Print \/ S","offer_id":54413485572364,"sku":"CJYJ205373704DW","price":31.99,"currency_code":"EUR","in_stock":true},{"title":"C3534 Leopard Print \/ M","offer_id":54413485605132,"sku":"CJYJ205373705EV","price":31.99,"currency_code":"EUR","in_stock":true},{"title":"C3534 Leopard Print \/ L","offer_id":54413485637900,"sku":"CJYJ205373706FU","price":31.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/739bb68b-c02e-4da7-90ac-535055fcc58b.jpg?v=1776097323"},{"product_id":"high-waisted-sexy-split-bikini","title":"Lilac Ribbed Bikini for Women","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini stay in place all day – without you having to think about it twice?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that peaceful feeling when a bikini simply fits – from the first moment at the water to the last.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eAnd that's exactly when many notice the difference – not when putting it on, but after the third dip in the water.\u003c\/p\u003e\n\n  \u003ch2\u003ePurple ribbed women's high-waist bikini – simple for beach and lake\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nHigh waist for a calmer fit during movement – subtle ribbed pattern, understated purple, polyester fabric with a light texture.\u003c\/p\u003e\n\n\u003cp\u003eThe ribbed pattern isn't a trend statement – it's a texture that gives the fabric its own depth without prints or patterns distracting. The purple is a calm, muted tone: close to lilac, without being bright. On the shores of Lake Constance, where the light often falls softly and diffusely on the water, this color appears particularly natural – not flashy, but visibly present.\u003c\/p\u003e\n\n\u003cp\u003eYou spread your towel on the pier and sit down – the ribbed pattern quietly catches the light without glimmering. When standing up, walking to the water, leaning against the wooden plank: the high waist stays in place, the purple remains calm. Anyone looking for a bikini that doesn't constantly demand attention will find a quiet companion for hours at the lake in this design.\u003c\/p\u003e\n\n\u003cp\u003eAs a gift, this bikini speaks a clear language: no excess, no print, no noise. For someone who is understatedly stylish and likes colors that blend into the environment rather than standing out. For a first shared vacation at the lake as well as for the twentieth summer weekend by the water.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The purple appears different in daylight than on screen – more muted, softer, closer to grey-violet\u003cbr\u003e• The ribbed pattern is subtly fine: not a coarse structure, rather a light texturing\u003cbr\u003e• The high waist fits snugly without cutting in – it usually stays comfortably in place under normal wear\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eCheck out the available variations and see which size is right for you.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"bust_min\": 85.0, \"bust_max\": 90.0, \"waist_min\": 65.0, \"waist_max\": 70.0, \"hip_min\": 90.0, \"hip_max\": 97.0}, {\"name\": \"M\", \"bust_min\": 90.0, \"bust_max\": 95.0, \"waist_min\": 70.0, \"waist_max\": 75.0, \"hip_min\": 95.0, \"hip_max\": 100.0}, {\"name\": \"L\", \"bust_min\": 95.0, \"bust_max\": 100.0, \"waist_min\": 75.0, \"waist_max\": 80.0, \"hip_min\": 100.0, \"hip_max\": 105.0}, {\"name\": \"XL\", \"bust_min\": 105.0, \"bust_max\": 110.0, \"waist_min\": 85.0, \"waist_max\": 90.0, \"hip_min\": 110.0, \"hip_max\": 115.0}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: Polyester\u003c\/li\u003e\n\n\u003cli\u003e✔ Waist style: high waist\u003c\/li\u003e\n\n\u003cli\u003e✔ Pattern: ribbed structure, plain purple\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, a purple ribbed women's bikini can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini becomes restless with movement\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eStays put without needing adjustment – even after a few hours by the water.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top slips down with the first dive into the water\u003c\/li\u003e\n\n\u003cli\u003eThe waistband feels uncomfortably tight after a while\u003c\/li\u003e\n\n\u003cli\u003eEstimating online size always feels like a risk\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eSome bikinis fit well – as long as you stand still. With the first splash into the water, when getting up from the towel, or sitting on a wet bench, the silent adjustments begin: repositioning the top, pulling up the waistband. This isn't a big problem, but it draws attention that you'd rather not devote.\u003c\/p\u003e\n\n\u003cp\u003eOften, it's due to the waistband style or the cut of the top – not necessarily the size. A high waist can help maintain a more stable position during movement because it offers more contact surface than a low-rise waistband. Not an absolute protection against slipping, but a calmer wearing feeling under normal conditions.\u003c\/p\u003e\n\n\u003cp\u003eThis purple ribbed bikini is designed for exactly this calm wearing experience: high waist, subtle design, polyester fabric with slight elasticity. It can be suitable for hours at the lake or pool – if you are looking for a bikini that is understated and moves with you. If, however, you prefer bold colors, ruffle details, or a very low-rise waistband, this cut might not be your style.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eHow important is the waistband to you – rather hip-hugging or truly high-waisted?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eLook at the details and check if the cut and color suit you.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Stays calmly in place after a long day at the lake\u003c\/li\u003e\n\n\u003cli\u003e→ Ribbed pattern and purple appear finer in daylight than expected\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ High waist – usually a calm fit under normal wear\u003c\/li\u003e\n\n\u003cli\u003e✅ Subtle ribbed pattern and muted purple – discreetly combinable\u003c\/li\u003e\n\n\u003cli\u003e✅ Polyester fabric with slight elasticity – designed for beach and lake\u003c\/li\u003e\n\n\u003cli\u003e✅ Calm look – goes with various tops and beach looks\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not designed for competitive swimming or intensive water activities\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer bold colors or playful details are better served with a different cut\u003c\/li\u003e\n\n\u003cli\u003e⚠️ No information available on chlorine or saltwater resistance\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Purple ribbed women's bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming\u003c\/td\u003e\n\n\u003ctd\u003eDesigned for a stable fit during movement – high waist can help maintain position\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eWaistband squeezes or cuts in after a while\u003c\/td\u003e\n\n\u003ctd\u003eHigh waist with polyester elasticity – usually comfortably snug with the right size\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eDifficult to estimate bikini size online\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator with height and weight available as a guide\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe considered exactly these situations with the purple ribbed women's bikini – so you have to adjust less when wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the purple ribbed women's bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSalt water, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang to dry, done. Delicate wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: Polyester. Suitable for: Fitness and bodybuilding, swimming and splashing.\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay suit you well if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003epurple ribbed women's bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about the purple ribbed women's bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for a purple ribbed women's high-waist bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eUse our size calculator with your height and weight as a guide. For high-waist bikinis, it can be helpful to consider your hip circumference – if in doubt between two sizes, choose the larger one so the waistband fits comfortably and doesn't cut in.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the waistband fit during movement – for example, when swimming or sitting down?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe high waist is designed to sit more calmly during normal movement – walking, sitting, light swimming – than a low-cut waist. For more intensive water activities, slight adjustment may still be necessary.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I properly care for a ribbed bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eRinse briefly with clear water after wearing, then wash on a delicate cycle at 30 °C. Do not tumble dry – drying flat preserves shape and structure longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs this bikini also suitable for sporty water activities?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThis bikini is designed for relaxed swimming, beach, and lake use. It is less suitable for intensive competitive swimming or very dynamic water activities – specially constructed sports bikinis are available for those.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the purple look in reality – is it vibrant or rather muted?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe tone is rather muted and calm – closer to a light grey-violet or lilac than a vibrant, bright purple. In daylight, it appears softer than on many screens.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Ribbed structure in sunlight on the shore of Lake Constance – fine texture, no shine\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"High waist in profile – snug without tightening\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and warehouse stock, for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – information checked according to EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you identify with the scenarios above, the purple ribbed women's bikini could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003ePurple ribbed women's bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€28.99\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope that the purple ribbed women's bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20\/05\/2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"lila gerippter Bikini Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/generate-a-photorealistic-image-of-a-woman-standin.png?v=1754211342\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"28.99\", \"priceCurrency\": \"EUR\"}}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Purple \/ S","offer_id":54413486358796,"sku":"CJYJ215314017QJ","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Purple \/ M","offer_id":54413486391564,"sku":"CJYJ215314018RI","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Purple \/ L","offer_id":54413486424332,"sku":"CJYJ215314019SH","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Purple \/ XL","offer_id":54413486457100,"sku":"CJYJ215314020TG","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Black \/ S","offer_id":54413485834508,"sku":"CJYJ215314001AZ","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Black \/ M","offer_id":54413485867276,"sku":"CJYJ215314002BY","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Black \/ L","offer_id":54413485900044,"sku":"CJYJ215314003CX","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Black \/ XL","offer_id":54413485932812,"sku":"CJYJ215314004DW","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Blue \/ S","offer_id":54413485965580,"sku":"CJYJ215314005EV","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Blue \/ M","offer_id":54413485998348,"sku":"CJYJ215314006FU","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Blue \/ L","offer_id":54413486031116,"sku":"CJYJ215314007GT","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Blue \/ XL","offer_id":54413486063884,"sku":"CJYJ215314008HS","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Orange \/ S","offer_id":54413486096652,"sku":"CJYJ215314009IR","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Orange \/ M","offer_id":54413486129420,"sku":"CJYJ215314010JQ","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Orange \/ L","offer_id":54413486162188,"sku":"CJYJ215314011KP","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Orange \/ XL","offer_id":54413486194956,"sku":"CJYJ215314012LO","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Peacock Green \/ S","offer_id":54413486227724,"sku":"CJYJ215314013MN","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Peacock Green \/ M","offer_id":54413486260492,"sku":"CJYJ215314014NM","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Peacock Green \/ L","offer_id":54413486293260,"sku":"CJYJ215314015OL","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Peacock Green \/ XL","offer_id":54413486326028,"sku":"CJYJ215314016PK","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Wine Red \/ S","offer_id":54413486489868,"sku":"CJYJ215314021UF","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Wine Red \/ M","offer_id":54413486522636,"sku":"CJYJ215314022VE","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Wine Red \/ L","offer_id":54413486555404,"sku":"CJYJ215314023WD","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Wine Red \/ XL","offer_id":54413486588172,"sku":"CJYJ215314024XC","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Orange 2 \/ S","offer_id":54413487145228,"sku":"CJYJ215314041OL","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Orange 2 \/ M","offer_id":54413487177996,"sku":"CJYJ215314042PK","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Orange 2 \/ L","offer_id":54413487210764,"sku":"CJYJ215314043QJ","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"Orange 2 \/ XL","offer_id":54413487243532,"sku":"CJYJ215314044RI","price":28.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/generate-a-photorealistic-image-of-a-woman-standin.png?v=1754211342"},{"product_id":"florales-bikini-set","title":"Women's Floral Bikini","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a floral bikini that sits well on the beach – even on the third day?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that calm feeling when a bikini just *is* – no tugging, no second thoughts.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eAnd that's precisely where many notice the difference – not when putting it on, but after the second dip.\u003c\/p\u003e\n\n  \u003ch2\u003eWomen's Floral Bikini with Floral Print – for Lakes, Beaches, and Summer Holidays\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nTwo-piece cut with a floral pattern – subtle in its effect, colorful enough for a summer day. The vibrant floral pattern with blossoms and leaves appears calm and rich on the polyester fiber.\u003c\/p\u003e\n\n\u003cp\u003eThe pattern originated from a simple idea: flowers that aren't loud. If you're sitting on the shore of Lake Constance and don't need to make a statement, but simply want to be present – this pattern might suit you. The blossoms and leaves are evenly distributed across the fabric, without a clear hierarchy. No single element jumps out. This creates a calm overall surface that still shows color in the sunlight.\u003c\/p\u003e\n\n\u003cp\u003eThis women's floral bikini can be combined with many things: a simple linen sarong over it in the morning at breakfast on the terrace, or directly into the water – the pattern hardly changes its character. The color scheme deliberately remains neutral, so it appears neither obtrusive nor faded. If you prefer clear, structured patterns or a monochrome beach look, this floral print might not be the best choice. For everyone else, it can be a quiet companion throughout the summer.\u003c\/p\u003e\n\n\u003cp\u003eBy the pool, when you glide into the water and the pattern briefly emerges beneath the surface. By a lake, while lying on a towel and the blossoms appear warm in the afternoon light. On holiday, when you take off your sarong in the evening and the bikini still looks fresh – just as it was in the morning.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The pattern appears calm, not brightly loud – you won't attract stares, but you'll look good.\u003cbr\u003e\n• The surface of blossoms and leaves is hard to assign to a single style – making it versatile for many occasions.\u003cbr\u003e\n• For those who don't want to spend a long time deciding when getting dressed, this design can simply work.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eChoose your size – find your bust, waist, and hip measurements in our size calculator.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g. 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g. 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g. 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"height_min\": 153, \"height_max\": 163, \"weight_min\": 50, \"weight_max\": 60}, {\"name\": \"M\", \"height_min\": 158, \"height_max\": 168, \"weight_min\": 58, \"weight_max\": 68}, {\"name\": \"L\", \"height_min\": 163, \"height_max\": 173, \"weight_min\": 66, \"weight_max\": 76}, {\"name\": \"XL\", \"height_min\": 168, \"height_max\": 178, \"weight_min\": 74, \"weight_max\": 84}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: Polyester Fiber\u003c\/li\u003e\n\n\u003cli\u003e✔ Pattern: floral pattern with blossoms and leaves\u003c\/li\u003e\n\n\u003cli\u003e✔ Size selection based on bust, waist, and hips\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, a women's floral bikini can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini gets restless with movement\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eFit, cut, and a pattern that stays calm.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top shifts when swimming\u003c\/li\u003e\n\n\u003cli\u003eThe waistband digs in after a few hours\u003c\/li\u003e\n\n\u003cli\u003eEstimating size online is difficult\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eYou go into the water, briefly dive under – and then notice that the top is no longer where it should be. It's not a drama, but it demands attention. And that's precisely the kind of attention you don't want to spend at the beach.\u003c\/p\u003e\n\n\u003cp\u003eBikinis that slip with movement usually do so for one of two reasons: the cut doesn't fit the individual body shape well, or the material gives way as soon as it gets wet. Both are difficult to assess online in advance – especially if the top and bottom cannot be selected separately.\u003c\/p\u003e\n\n\u003cp\u003eThis bikini is designed for a calmer fit during normal movement – walking along the shore, sitting on a towel, gliding into the water. Whether this suits you also depends on your body shape and your movements in the water. Those who swim intensely or engage in water sports are probably better off with a sporty swimsuit. If you prefer leisurely swimming, snorkeling, or sitting on the shore, this cut can be a good option.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDoes the style match how you spend your summer by the water?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you estimate the cut and size – enter your bust, waist, and hips.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eCheck out the available sizes and choose what suits you.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay particular attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Sits calmly when walking and sitting on the beach\u003c\/li\u003e\n\n\u003cli\u003e→ Pattern still looks fresh after several days of swimming\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you decide\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Floral pattern – subtle and versatile, for normal everyday use\u003c\/li\u003e\n\n\u003cli\u003e✅ Size selection based on bust, waist, and hips – separately adjustable\u003c\/li\u003e\n\n\u003cli\u003e✅ Designed for calm movements in the water and on the beach\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Less suitable for intense swimming or water sports – a sporty swimsuit is generally the better choice here\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Those who prefer monochrome or structured patterns may not find their style here\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ Women's Floral Bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\u0026lt;\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming\u003c\/td\u003e\n\n\u003ctd\u003eDesigned for a more stable fit with calm movement in the water\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eSize hard to estimate online\u003c\/td\u003e\n\n\u003ctd\u003eSize selection based on bust, waist, and hips – with a size calculator for guidance\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePattern looks too bright or intrusive on holiday\u003c\/td\u003e\n\n\u003ctd\u003eFloral print deliberately designed to be understated – calm overall effect\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered exactly these situations with the Women's Floral Bikini – so you have to adjust less while wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the Women's Floral Bikini feels in everyday life\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: this fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eOn the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSalt water, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang up, done. Delicate wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: Polyester Fiber, sleeveless\u003cbr\u003e• Care: Delicate wash 30 °C, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay be a good fit if…\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003ewomen's floral bikini\u003c\/strong\u003e with a fit that can suit you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being intrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and longevity\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct details at a glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Delicate wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently asked questions about Women's Floral Bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs there a women's floral bikini in a simple design from the Bodenseemarke?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eYes – this women's floral bikini from Bodenseemarke is deliberately understated. The floral pattern with blossoms and leaves appears calm and is easy to combine without being dominant.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for this bikini?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThis bikini is offered based on bust, waist, and hips. Our size calculator helps you estimate the right size based on your measurements. If you're unsure between two sizes, choosing the slightly larger option might help.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the waistband fit during movement – for example, when swimming?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe bikini is designed for a calmer fit during normal movement in the water – such as leisurely swimming or snorkeling. For intense swimming or water sports activities, a sporty swimsuit is generally more suitable.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I care for this bikini properly?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eAfter wearing, rinse briefly with clear, cool water. Wash at 30 °C on a delicate cycle. Do not tumble dry – air drying flat preserves its shape and color longer.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs this bikini also suitable for Lake Constance or regional holidays?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe subtle floral pattern and simple cut pair well with calmer waters like Lake Constance. The bikini is suitable for relaxed swimming days, beach stays, and summer holidays – less so for active water sports.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Blüten und Blätter gleichmäßig über den Stoff verteilt – keine dominante Einzelfigur\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Farben wirken im Sonnenlicht warm, ohne zu leuchten\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order placement\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and inventory for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you find yourself in the scenarios above, the Women's Floral Bikini can be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eWomen's Floral Bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€26.99\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope the Women's Floral Bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20\/05\/2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Blumen Bikini Damen\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/shopify_Bikini_Sexy_Print_High_Waist.png?v=1753876871\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"26.99\", \"priceCurrency\": \"EUR\"}, \"additionalProperty\": [{\"@type\": \"PropertyValue\", \"name\": \"Pflegehinweis\", \"value\": \"Feinwäsche 30 °C, nicht im Trockner trocknen\"}]}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"Printed \/ S","offer_id":54413489963276,"sku":"CJYJ232068501AZ","price":26.99,"currency_code":"EUR","in_stock":true},{"title":"Printed \/ M","offer_id":54413489996044,"sku":"CJYJ232068502BY","price":26.99,"currency_code":"EUR","in_stock":true},{"title":"Printed \/ L","offer_id":54413490028812,"sku":"CJYJ232068503CX","price":26.99,"currency_code":"EUR","in_stock":true},{"title":"Printed \/ XL","offer_id":54413490061580,"sku":"CJYJ232068504DW","price":26.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/shopify_Bikini_Sexy_Print_High_Waist.png?v=1753876871"},{"product_id":"halter-color-matching-high-waist-bikini-split-swimsuit","title":"black and pink halter bikini","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n  \u003cdiv class=\"bn-problem-hook\"\u003e\u003cp\u003eWhat makes a bikini stay in place all day – while swimming, sitting, and going out?\u003c\/p\u003e\u003c\/div\u003e\n\n  \u003cp class=\"bn-energy\"\u003ePerhaps you know that calm feeling when a bikini just stays where it belongs – no tugging, no adjusting.\u003c\/p\u003e\n\n  \u003cp class=\"bn-soft-reality\"\u003eAnd usually, you only notice this during the course of a day at the beach – after the second dip in the water or when getting up from your towel.\u003c\/p\u003e\n\n  \u003ch2\u003eBlack and Pink Halterneck High-Waisted Bikini – for Beach and Lake\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this bikini is made for:\u003c\/strong\u003e\u003cbr\u003e\nHigh-waisted with a halterneck top – a clear two-piece in black and pink, for moments by the water that should remain calm. Fabric made of 82% polyamide and 18% polyester – pleasantly elastic, smooth on the skin.\u003c\/p\u003e\n\n\u003cp\u003eBlack and pink – a combination that works effortlessly. Not loud, not hidden. The two-tone design was created in response to swimwear that often seems either too colorful or too plain. Those who appreciate subtle contrasts will find a clear line here: the dark top meets the pink high-waisted briefs – an interplay that simply fits, whether on the shores of Lake Constance, at breakfast before the first swim, or on a poolside lounger.\u003c\/p\u003e\n\n\u003cp\u003eThe halterneck strap can be tied at the neck, adapting to different bust sizes. The top's strap construction provides a more stable fit than pure triangle shapes – especially when moving in the water. The high waist of the briefs sits at the waist, covers more than classic bikini bottoms, and can help them stay in place more securely when walking or swimming. The black and pink color combination can be paired with a white linen wrap, black shorts, or a solid-colored beach dress.\u003c\/p\u003e\n\n\u003cp\u003eThree moments where this design shines: You pull your beach bag out of the sand at the lake shore and walk straight into the water – the top stays put. Afterward, you sit with a coffee at the beach bar, the briefs hold their position without digging in. In the evening, when changing on the wooden terrace, the bikini still looks as neat as it did in the morning – no stretching out, no color bleeding after a day of sun and water.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• The fabric feels pleasantly smooth on the first wear – not stiff, not too soft\u003cbr\u003e• The halterneck lies flat on the neck without chafing – even after an hour of beach reading\u003cbr\u003e• The black remains deep, the pink clear – no faded first impression\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eIf this appeals to you, you'll find sizes S to XL below – and a note on fit.\u003c\/strong\u003e\u003c\/p\u003e\n\n\n    \u003cdiv class=\"bn-size-calculator\"\u003e\n\n        \u003ch3\u003e📏 Size Calculator\u003c\/h3\u003e\n\n        \u003cp class=\"bn-calc-subtitle\"\u003eFind your perfect size\u003c\/p\u003e\n\n\n        \u003cdiv class=\"bn-calc-form\" id=\"bn-calc-form-bikini\"\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_height\" name=\"bn_height\" placeholder=\"e.g., 175\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_weight\" name=\"bn_weight\" placeholder=\"e.g., 70\"\u003e\n            \u003c\/div\u003e\n\n            \n            \u003cdiv class=\"bn-calc-field\"\u003e\n\n                \u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e\n                \u003cinput type=\"number\" id=\"bn_bust\" name=\"bn_bust\" placeholder=\"e.g., 90\"\u003e\n            \u003c\/div\u003e\n\n            \n\n            \u003cbutton type=\"button\" class=\"bn-calc-button\" onclick=\"calculateSize_bikini()\"\u003eCalculate size\u003c\/button\u003e\n\n            \u003cdiv id=\"bn-calc-result\" class=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n\u003cstyle\u003e\n\n    .bn-size-calculator {\n        max-width: 500px;\n        margin: 40px auto;\n        padding: 30px;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n        border-radius: 20px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.2);\n        color: white;\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .bn-size-calculator h3 {\n        text-align: center;\n        margin: 0 0 10px 0;\n        font-size: 28px;\n        font-weight: 700;\n    }\n\n    .bn-calc-subtitle {\n        text-align: center;\n        margin: 0 0 25px 0;\n        opacity: 0.9;\n        font-size: 16px;\n    }\n\n    .bn-calc-form {\n        display: flex;\n        flex-direction: column;\n        gap: 15px;\n    }\n\n    .bn-calc-field {\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n\n    .bn-calc-field label {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.95;\n    }\n\n    .bn-calc-field input,\n    .bn-calc-select {\n        padding: 14px;\n        border: none;\n        border-radius: 10px;\n        font-size: 16px;\n        background: rgba(255,255,255,0.95);\n        color: #1a202c;\n        transition: all 0.3s;\n    }\n\n    .bn-calc-field input:focus,\n    .bn-calc-select:focus {\n        outline: none;\n        background: white;\n        box-shadow: 0 0 0 3px rgba(255,255,255,0.3);\n    }\n\n    .bn-calc-button {\n        margin-top: 10px;\n        padding: 16px;\n        background: #08890e;\n        color: white;\n        border: none;\n        border-radius: 12px;\n        font-size: 18px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: all 0.3s;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .bn-calc-button:hover {\n        background: #06660a;\n        transform: translateY(-2px);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.3);\n    }\n\n    .bn-calc-button:active {\n        transform: translateY(0);\n    }\n\n    .bn-calc-result {\n        margin-top: 20px;\n        padding: 20px;\n        background: rgba(255,255,255,0.2);\n        border-radius: 12px;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        min-height: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        backdrop-filter: blur(10px);\n    }\n\n    .bn-calc-result:empty {\n        display: none;\n    }\n\n    \/* 🔥 NEU: Geschlechts-abhängige Felder ausblenden *\/\n    .bn-show-if-women,\n    .bn-show-if-men {\n        display: none;\n    }\n\n    @media (max-width: 600px) {\n        .bn-size-calculator {\n            margin: 20px;\n            padding: 20px;\n        }\n    }\n    \n\u003c\/style\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_bikini() {\n    const genderSelect = document.getElementById('bn_gender');\n    if (!genderSelect) return;\n    \n    const gender = genderSelect.value;\n    \n    \/\/ Alle Felder mit \"bn-show-if-women\" oder \"bn-show-if-men\"\n    document.querySelectorAll('.bn-show-if-women').forEach(el =\u003e {\n        el.style.display = (gender === 'women') ? 'flex' : 'none';\n    });\n    \n    document.querySelectorAll('.bn-show-if-men').forEach(el =\u003e {\n        el.style.display = (gender === 'men') ? 'flex' : 'none';\n    });\n}\n\n\/\/ Event Listener für Geschlechts-Auswahl (robust: funktioniert auch nach Shopify-DOM-Injection)\n(function() {\n    function initGenderToggle_bikini() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_bikini);\n            toggleGenderFields_bikini();\n        } else {\n            setTimeout(initGenderToggle_bikini, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_bikini);\n    } else {\n        initGenderToggle_bikini();\n    }\n})();\n\nfunction calculateSize_bikini() {\n    const height = parseFloat(document.getElementById('bn_height')?.value || 0);\n    const weight = parseFloat(document.getElementById('bn_weight')?.value || 0);\n    const hip = parseFloat(document.getElementById('bn_hip')?.value || 0);\n    const bust = parseFloat(document.getElementById('bn_bust')?.value || 0);\n    const waist = parseFloat(document.getElementById('bn_waist')?.value || 0);\n    const chest = parseFloat(document.getElementById('bn_chest')?.value || 0);\n\n    const sizeSets = [{\"calib\": {\"height\": 163, \"weight\": 63, \"bust\": 90, \"hip\": 87, \"size_true\": \"M\"}, \"sizes\": [{\"name\": \"S\", \"height_min\": 153, \"height_max\": 163, \"weight_min\": 50, \"weight_max\": 60}, {\"name\": \"M\", \"height_min\": 158, \"height_max\": 168, \"weight_min\": 58, \"weight_max\": 68}, {\"name\": \"L\", \"height_min\": 163, \"height_max\": 173, \"weight_min\": 66, \"weight_max\": 76}, {\"name\": \"XL\", \"height_min\": 168, \"height_max\": 178, \"weight_min\": 74, \"weight_max\": 84}]}];\n    const tolerance = {\"height_weight\": 1.0, \"weight_weight\": 1.0, \"hip_weight\": 3.0, \"bust_weight\": 3.0, \"waist_weight\": 1.5, \"chest_weight\": 0.5};\n\n    \/\/ 🔥 NEU v7: Für Hoodie → Filter nach Herren\/Damen\n    const genderSelect = document.getElementById('bn_gender');\n    let filteredSizeSets = sizeSets;\n\n    if (genderSelect) {\n        const selectedGender = genderSelect.value;\n        filteredSizeSets = sizeSets.filter(s =\u003e (s.calib?.group || 'men') === selectedGender);\n        \n        if (filteredSizeSets.length === 0) {\n            document.getElementById('bn-calc-result').innerHTML = \n                '⚠️ Keine Models für die gewählte Gruppe verfügbar.';\n            return;\n        }\n        \n        console.log('🔥 Filtered by gender:', selectedGender, '→', filteredSizeSets.length, 'model(s)');\n    }\n\n    console.log('🔥 Multi-Model Calculator Debug:', { height, weight, hip, bust, waist, chest, sizeSets: filteredSizeSets, tolerance });\n\n    if (!filteredSizeSets || filteredSizeSets.length === 0) {\n        document.getElementById('bn-calc-result').innerHTML = '⚠️ Keine Größentabelle verfügbar.';\n        return;\n    }\n\n    \/\/ 🔥 SCHRITT 1: Berechne für JEDES Model-Set die Distanz zum User\n    const setScores = [];\n    for (let i = 0; i \u003c filteredSizeSets.length; i++) {\n        const set = filteredSizeSets[i];\n        const calib = set.calib || {};\n\n        let cDiff = 0;\n        let cCount = 0;\n\n        if (calib.height \u0026\u0026 height \u003e 0) {\n            cDiff += Math.pow(height - calib.height, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.weight \u0026\u0026 weight \u003e 0) {\n            cDiff += Math.pow(weight - calib.weight, 2) * 1.0;\n            cCount++;\n        }\n        if (calib.bust \u0026\u0026 bust \u003e 0) {\n            cDiff += Math.pow(bust - calib.bust, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.hip \u0026\u0026 hip \u003e 0) {\n            cDiff += Math.pow(hip - calib.hip, 2) * 1.5;\n            cCount++;\n        }\n        if (calib.waist \u0026\u0026 waist \u003e 0) {\n            cDiff += Math.pow(waist - calib.waist, 2) * 1.5;\n            cCount++;\n        }\n\n        const score = cCount \u003e 0 ? Math.sqrt(cDiff \/ cCount) : 9999;\n        const weight_factor = score \u003e 0 ? 1.0 \/ (1.0 + score \/ 10.0) : 1.0;\n\n        setScores.push({\n            index: i,\n            score: score,\n            weight: weight_factor,\n            calib: calib,\n            sizes: set.sizes || []\n        });\n    }\n\n    \/\/ Normalisiere Gewichte (Summe = 1.0)\n    const totalWeight = setScores.reduce((sum, s) =\u003e sum + s.weight, 0);\n    if (totalWeight \u003e 0) {\n        setScores.forEach(s =\u003e s.weight \/= totalWeight);\n    }\n\n    console.log('🔥 Model Scores:', setScores.map(s =\u003e ({\n        calib: s.calib,\n        score: s.score.toFixed(1),\n        weight: (s.weight * 100).toFixed(1) + '%'\n    })));\n\n    \/\/ 🔥 SCHRITT 2: Für jede Size sammle gewichtete Scores aus ALLEN Model-Sets\n    const sizeVotes = {};\n\n    for (const setScore of setScores) {\n        const sizes = setScore.sizes;\n        const setWeight = setScore.weight;\n\n        for (const size of sizes) {\n            let diff = 0;\n            let count = 0;\n\n            \/\/ Körpergröße\n            if (size.height_min !== undefined \u0026\u0026 size.height_max !== undefined \u0026\u0026 height \u003e 0) {\n                const heightCenter = (size.height_min + size.height_max) \/ 2;\n                diff += Math.pow(height - heightCenter, 2) * tolerance.height_weight;\n                count++;\n            }\n\n            \/\/ Gewicht\n            if (size.weight_min !== undefined \u0026\u0026 size.weight_max !== undefined \u0026\u0026 weight \u003e 0) {\n                const weightCenter = (size.weight_min + size.weight_max) \/ 2;\n                diff += Math.pow(weight - weightCenter, 2) * tolerance.weight_weight;\n                count++;\n            }\n\n            \/\/ Hüftumfang\n            if (size.hip_min !== undefined \u0026\u0026 size.hip_max !== undefined \u0026\u0026 hip \u003e 0) {\n                const hipCenter = (size.hip_min + size.hip_max) \/ 2;\n                diff += Math.pow(hip - hipCenter, 2) * tolerance.hip_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\n            if (size.bust_min !== undefined \u0026\u0026 size.bust_max !== undefined \u0026\u0026 bust \u003e 0) {\n                const bustCenter = (size.bust_min + size.bust_max) \/ 2;\n                diff += Math.pow(bust - bustCenter, 2) * tolerance.bust_weight;\n                count++;\n            }\n\n            \/\/ Taillenumfang\n            if (size.waist_min !== undefined \u0026\u0026 size.waist_max !== undefined \u0026\u0026 waist \u003e 0) {\n                const waistCenter = (size.waist_min + size.waist_max) \/ 2;\n                diff += Math.pow(waist - waistCenter, 2) * tolerance.waist_weight;\n                count++;\n            }\n\n            \/\/ Brustumfang\/Chest\n            if (size.chest_min !== undefined \u0026\u0026 size.chest_max !== undefined \u0026\u0026 chest \u003e 0) {\n                const chestCenter = (size.chest_min + size.chest_max) \/ 2;\n                diff += Math.pow(chest - chestCenter, 2) * tolerance.chest_weight;\n                count++;\n            }\n\n            if (count \u003e 0) {\n                const sizeDiff = Math.sqrt(diff \/ count);\n\n                \/\/ 🔥 Gewichte diesen Score mit dem Model-Gewicht\n                const weightedScore = sizeDiff * (1.0 \/ (setWeight + 0.01));\n\n                if (!sizeVotes[size.name]) {\n                    sizeVotes[size.name] = {\n                    name: size.name,\n                    totalScore: 0,\n                    count: 0\n                    };\n                }\n\n                sizeVotes[size.name].totalScore += weightedScore;\n                sizeVotes[size.name].count++;\n            }\n        }\n    }\n\n    \/\/ 🔥 SCHRITT 3: Finde die Size mit dem besten durchschnittlichen Score\n    let bestSize = '';\n    let bestAvgScore = Number.POSITIVE_INFINITY;\n\n    for (const sizeName in sizeVotes) {\n        const vote = sizeVotes[sizeName];\n        const avgScore = vote.totalScore \/ vote.count;\n\n        if (avgScore \u003c bestAvgScore) {\n            bestAvgScore = avgScore;\n            bestSize = sizeName;\n        }\n    }\n\n    console.log('🔥 Size Votes:', sizeVotes);\n    console.log('🔥 Best Size:', bestSize, 'Score:', bestAvgScore.toFixed(2));\n\n    if (bestSize) {\n        document.getElementById('bn-calc-result').innerHTML = \n            '✅ Deine empfohlene Größe: \u003cstrong\u003e' + bestSize + '\u003c\/strong\u003e';\n    } else {\n        document.getElementById('bn-calc-result').innerHTML = \n            '⚠️ Bitte fülle alle Felder aus.';\n    }\n}\n\n\u003c\/script\u003e\n\n\n  \u003cdiv class=\"bn-quick-benefits\"\u003e\u003cul\u003e\n\n\u003cli\u003e✔ Material: 82% Polyamide, 18% Polyester\u003c\/li\u003e\n\n\u003cli\u003e✔ Cut: Halterneck top, high-waisted briefs\u003c\/li\u003e\n\n\u003cli\u003e✔ Color: Black \/ Pink, solid two-tone\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-mini-cta\"\u003eWhen cut and size fit you, a black and pink halter bikini can feel significantly different in everyday wear.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-comfort\"\u003e\n\n  \u003ch2\u003eWhen a bikini doesn't sit well while swimming and moving\u003c\/h2\u003e\n\n  \u003cp class=\"bn-subheadline\"\u003eA halter bikini designed for calm days by the water – not for competitive sports.\u003c\/p\u003e\n\n  \u003cdiv class=\"bn-questions\"\u003e\n\n  \u003ch3\u003eIf you recognize yourself here\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n\u003cli\u003eThe top slips when you first jump into the water\u003c\/li\u003e\n\n\u003cli\u003eThe waistband digs in after an hour at the beach\u003c\/li\u003e\n\n\u003cli\u003eEstimating bikini size online is difficult\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n  \u003cp\u003eMany know the feeling: you go into the water, and afterward, something isn't sitting right. The top has shifted, the briefs have ridden up, or the waistband digs in when sitting on the edge of the jetty. This isn't a sign of sensitivity – it's simply a matter of cut and material.\u003c\/p\u003e\n\n\u003cp\u003eBikinis with a halterneck construction are generally designed so that the top has less downward movement than a pure triangle top. The high waist of the briefs distributes tension more evenly across the hips than low-rise briefs – which can contribute to a more secure fit during normal movement in the water. However, how any bikini fits also depends on individual body shape.\u003c\/p\u003e\n\n\u003cp\u003eThis black and pink halter bikini is designed for relaxed days by the water – lakes, pools, beach vacations. If, on the other hand, you engage in more intense water sports, surfing, or fast lap swimming, a specialized sports swimsuit is probably the more suitable choice. Who it's less suitable for: Those with a fuller upper body who prefer a lined or molded top might find more support in a bikini with pre-formed cups.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDoes the cut match what you do in the water – and how you want to feel while doing it?\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eOur size calculator helps you assess the cut and size – enter your height and weight.\u003c\/strong\u003e\u003c\/p\u003e\n\n\u003cp\u003eAvailable sizes: S, M, L, XL. Top and bottom are available as a set.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-social-proof\"\u003e\n\n\u003ch3\u003eMany pay special attention to\u003c\/h3\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e→ Top stays put while swimming\u003c\/li\u003e\n\n\u003cli\u003e→ Fits as well after a long beach day as it did when first put on\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-decision-anchor\"\u003e\n\n\u003ch3\u003eThis will help you make a decision\u003c\/h3\u003e\n\n\u003cul class=\"bn-decision-pro\"\u003e\n\n\u003cli\u003e✅ Halterneck top – designed for a stable fit during movement\u003c\/li\u003e\n\n\u003cli\u003e✅ High waist – sits at the waist, can remain securely in place under normal activity\u003c\/li\u003e\n\n\u003cli\u003e✅ Two-tone in black and pink – subtly combinable\u003c\/li\u003e\n\n\u003cli\u003e✅ 82% Polyamide – elastic, comfortable on the skin\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not designed for intense water sports or competitive swimming\u003c\/li\u003e\n\n\u003cli\u003e⚠️ No lined or molded top – if you prefer more structured support, this might not be ideal\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Only available as a set – no separate purchase of top or bottom\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \u003cdiv class=\"bn-compare\"\u003e\n\n\u003cdiv class=\"bn-compare-header\"\u003e\n\n\u003cspan class=\"bn-compare-icon\"\u003e⚖️\u003c\/span\u003e\u003ch3\u003eTypical Differences\u003c\/h3\u003e\n\n\u003cp class=\"bn-compare-sub\"\u003eWhat many complain about with similar products – and what this one is designed for.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003ctable\u003e\n\n\u003ctr\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-other\"\u003e❌ Typical for similar products\u003c\/span\u003e\u003c\/th\u003e\n\n\u003cth\u003e\u003cspan class=\"bn-compare-th-this\"\u003e✅ black and pink halter bikini\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eTop slips when swimming\u003c\/td\u003e\n\n\u003ctd\u003eHalterneck construction designed for a more secure fit when moving in water\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eWaistband digs in or slips with prolonged wear\u003c\/td\u003e\n\n\u003ctd\u003eHigh waistband at the waist – distributes tension more evenly than low-rise briefs\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eDifficult to estimate bikini size online\u003c\/td\u003e\n\n\u003ctd\u003eSize calculator with height and weight as a guide\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eColors look faded after one season\u003c\/td\u003e\n\n\u003ctd\u003ePolyamide fabric – generally shape-retaining and colorfast with normal use and proper care\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/table\u003e\n\n\n\u003c\/div\u003e\n\n  \u003cp class=\"bn-loop\"\u003eWe've considered exactly these situations with the black and pink halter bikini – so you have to adjust less when wearing it.\u003c\/p\u003e\n\n\n  \n\u003cdiv class=\"bn-lupe\"\u003e\n\n  \u003ch3\u003eHow the black and pink halter bikini feels in everyday wear\u003c\/h3\u003e\n\n  \u003cp class=\"bn-lupe-intro\"\u003eSpecific moments when you realize: This fits.\u003c\/p\u003e\n\n  \n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e💧\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eIn the water\u003c\/h4\u003e\n\n      \u003cp\u003eThe cut is designed for a stable fit – even with movement.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🌊\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAfter swimming\u003c\/h4\u003e\n\n      \u003cp\u003eThe material dries quickly. No heavy, wet feeling on the skin.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e☀️\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eAt the beach\u003c\/h4\u003e\n\n      \u003cp\u003eSaltwater, sun, sand: The fabric retains its shape. No discoloration, no stretching out.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-lupe-item\"\u003e\n\n    \u003cdiv class=\"bn-lupe-icon\"\u003e🧴\u003c\/div\u003e\n\n    \u003cdiv class=\"bn-lupe-content\"\u003e\n\n      \u003ch4\u003eCare\u003c\/h4\u003e\n\n      \u003cp\u003eRinse briefly, hang, done. Delicate wash 30°C, do not tumble dry – follow care instructions for longer durability.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-material\"\u003e\n\n  \u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n  \u003cdiv\u003e• Material: 82% Polyamide, 18% Polyester\u003cbr\u003e• Care: 30°C, delicate wash, do not bleach, do not tumble dry\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n  \n\n  \n  \n\u003cdiv class=\"bn-target\"\u003e\n\n  \u003ch3\u003eMay fit well if …\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e→ You are looking for a \u003cstrong\u003eblack and pink halter bikini\u003c\/strong\u003e with a fit that suits you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003ecalm, simple designs\u003c\/strong\u003e without being obtrusive\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003eeveryday comfort\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You value \u003cstrong\u003ecomfort and durability\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e→ You want to \u003cstrong\u003eavoid bad purchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-specs\"\u003e\n\n  \u003ch3\u003eProduct Details at a Glance\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\n\n\u003cstrong\u003eCare:\u003c\/strong\u003e Delicate wash 30°C, do not tumble dry\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \n\u003cdiv class=\"bn-faq\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\"\u003e\n\n  \u003ch3\u003eFrequently Asked Questions about the Black and Pink Halter Bikini\u003c\/h3\u003e\n\n  \n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I find the right size for the black and pink halter bikini with high waist?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eUse the size calculator with height and weight as a guide. If unsure between two sizes – especially if you are a bit fuller in the upper body – a size larger might be more comfortable. Available sizes: S, M, L, XL.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow does the high waist fit when moving in the water?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe high-waisted briefs are cut to generally stay in place during normal movement – walking, sitting, swimming. As with any bikini, this can vary slightly depending on body shape. The waistband sits at the waist, not directly on the hip bone edge.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eHow do I care for this bikini properly?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eRinse briefly with clear water after wearing. Wash at 30 °C on a delicate cycle, do not tumble dry. Air dry flat – this helps maintain the shape and elasticity of the polyamide fabric.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eIs this bikini also suitable for sports water activities?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe bikini is designed for relaxed days by the water – lakes, pools, vacation. For more intense water sports like fast lap swimming or water sports with a lot of body movement, a specially designed sports swimsuit is generally the better choice.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eDoes the halterneck top hold up during swimming?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003eThe top features a halterneck strap that ties at the neck. This construction generally keeps it more securely in place during normal movement in the water than a simple triangle top. The precise fit also depends on how the strap is tied individually.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003cdiv itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"\u003e\n\n    \u003ch4 itemprop=\"name\"\u003eWhat material is the bikini made of?\u003c\/h4\u003e\n\n    \u003cdiv itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\"\u003e\n\n      \u003cp itemprop=\"text\"\u003e82% Polyamide, 18% Polyester. The fabric is elastic and feels comfortable on the skin – both dry and wet. Polyamide is a common material for swimwear that supports stretch and shape recovery with normal use.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n  \u003cdiv class=\"bn-related-articles\"\u003e\n\n  \u003ch3\u003eGuides\u003c\/h3\u003e\n\n  \u003cul\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzug-grosse-grossen\"\u003ePlus Size Swimsuits\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/bugel-bikini\"\u003eUnderwire Bikini\u003c\/a\u003e\u003c\/li\u003e\n\n    \u003cli\u003e\u003ca href=\"\/en\/blogs\/badeanzug-damen\/badeanzuge-fur-jeden-typ\"\u003eSwimsuit Guide 2025\u003c\/a\u003e\u003c\/li\u003e\n\n  \u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Clear contrast: black halterneck top meets pink high-waisted briefs\" style=\"display:none\"\u003e\u003c\/span\u003e\u003cspan class=\"bn-visual-anchor\" data-visual-intent=\"Halterneck strap lies flat on the neck – no bulk, no chafing\" style=\"display:none\"\u003e\u003c\/span\u003e\n\n  \u003cdetails class=\"bn-ship\"\u003e\u003csummary\u003eDelivery\u003c\/summary\u003e\u003cdiv\u003e\u003cdiv class=\"bn-shipping-info\"\u003e\n\n    \u003ch4\u003e📦 Delivery Time\u003c\/h4\u003e\n\n    \u003cp\u003e\u003cstrong\u003e5–11 days\u003c\/strong\u003e after order receipt\u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e\n        We produce on demand – this reduces overproduction and stock, especially for printed goods!\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/details\u003e\n  \n  \u003cdiv class=\"bn-return-policy\"\u003eOrder without pressure. 30 days to decide.\u003c\/div\u003e\n\n  \u003cdiv class=\"bn-source\"\u003e\u003csmall class=\"bn-source\"\u003eSource: Bodenseemarke – Information verified in accordance with EU-GPSR.\u003cbr\u003eManufacturer: Eugen Noll Bodenseemarke GbR, Zaunkönigweg 8, 88048 Friedrichshafen, DE, info@bodenseemarke.com\u003c\/small\u003e\u003c\/div\u003e\n\n\n  \u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the black and pink halter bikini could be a suitable option.\u003c\/p\u003e\n\n\n  \u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eblack and pink halter bikini\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€28.99\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton type=\"button\" class=\"bn-cta-button\" onclick=\"var t=document.querySelector('.product-form__input')||document.querySelector('[name=id]')||document.querySelector('form[action*=cart]');if(t){t.scrollIntoView({behavior:'smooth',block:'center'})}else{window.scrollTo({top:0,behavior:'smooth'})}\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\u003cp class=\"bn-cta-trust\"\u003eOrder without pressure. 30 days to decide.\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-stars\"\u003e★★★★★\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003cdiv class=\"bn-closing-note\"\u003e\n\n    \u003cp\u003e\n        Ultimately, it's not about the garment itself, but about the moments you experience in it. \n        We hope the black and pink halter bikini can accompany you exactly as you wish.\n    \u003c\/p\u003e\n\n    \u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\n        \u003ca href=\"\/en\/pages\/uber-uns\" style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\"\u003eLearn about our philosophy →\u003c\/a\u003e\n    \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n  \u003csmall class=\"bn-updated\"\u003eLast updated: 20\/05\/2026\u003c\/small\u003e\n\n  \n\n\u003cstyle\u003e\n\n  .bn-product-copy{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px!important;line-height:1.7!important;color:#111827}\n  .bn-product-copy h2{font-size:1.8rem!important;margin:24px 0 12px;line-height:1.3}\n  .bn-product-copy h3{font-size:1.25rem!important;margin:20px 0 10px;line-height:1.4}\n  .bn-product-copy p{margin:12px 0;font-size:1rem!important;line-height:1.7!important}\n  .bn-product-copy li{font-size:1rem!important;line-height:1.7!important}\n @media(max-width:768px){\n    .bn-product-copy{font-size:15px!important;line-height:1.65!important}\n    .bn-product-copy h2{font-size:1.45rem!important;margin:18px 0 10px}\n    .bn-product-copy h3{font-size:1.15rem!important;margin:16px 0 8px}\n    .bn-product-copy p,.bn-product-copy li{font-size:0.97rem!important;line-height:1.65!important}\n  }\n  .bn-subheadline{color:#374151}\n  .bn-questions{margin:14px 0;padding:16px;background:#f9fafb;border-radius:8px}\n  .bn-questions ul{margin:8px 0 0 20px}\n  .bn-questions li{margin:6px 0}\n  .bn-pricebox{margin:16px 0;padding:12px;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px}\n  details.bn-ship, details.bn-returns{margin:10px 0;background:#f9fafb;padding:10px 12px;border-radius:8px}\n  details summary{cursor:pointer;font-weight:600}\n  .bn-material{margin:16px 0}\n  .bn-sizechart{margin:16px 0}\n  .bn-fit{margin:16px 0}\n  .bn-mini-cta{margin:20px 0;padding:16px;background:#f0f9ff;border-left:4px solid #3b82f6;font-weight:500;font-style:italic}\n  .bn-loop{margin:16px 0;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;font-weight:500}\n  .bn-loop-end{margin:20px 0;padding:16px;background:#f0fdf4;border-left:4px solid #10b981;font-weight:500;font-style:italic}\n  .bn-target{margin:20px 0;padding:20px;background:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}\n  .bn-target h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-specs{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px}\n  .bn-specs h3{margin:0 0 12px 0;font-size:1.2rem}\n  .bn-faq{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #d1fae5;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.05)}\n  .bn-faq\u003eh3{margin:0;padding:18px 24px;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-bottom:2px solid #bbf7d0;font-size:1.1rem;color:#065f46;font-weight:700}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]{padding:16px 24px;border-top:1px solid #f0fdf4}\n  .bn-faq [itemtype=\"https:\/\/schema.org\/Question\"]:first-of-type{border-top:none}\n  .bn-faq h4{margin:0 0 8px 0;font-size:0.95rem;font-weight:600;color:#1e293b;cursor:pointer}\n  .bn-faq h4::before{content:\"❓ \";font-size:0.85rem}\n  .bn-faq p[itemprop=\"text\"]{margin:0;font-size:0.9rem;color:#475569;line-height:1.6;padding-left:1.4rem}\n  .bn-entity{margin:20px 0;padding:20px;background:#fef3c7;border-radius:8px;border-left:4px solid #f59e0b}\n  .bn-lupe{margin:30px 0;padding:24px;background:#f0f9ff;border-radius:12px;border-left:4px solid #3b82f6}\n  .bn-lupe h3{margin:0 0 8px 0;font-size:1.3rem}\n  .bn-lupe-intro{margin:0 0 20px 0;color:#374151;font-style:italic}\n  .bn-lupe-item{display:flex;gap:16px;margin:16px 0;padding:16px;background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}\n  .bn-lupe-icon{font-size:32px;flex-shrink:0}\n  .bn-lupe-content h4{margin:0 0 6px 0;font-size:1.05rem;font-weight:600}\n  .bn-lupe-content p{margin:0;color:#374151;line-height:1.5}\n  .bn-updated{display:block;margin-top:8px;color:#6b7280}\n  .bn-return-policy{margin:16px 0;padding:12px;background:#f9fafb;border-left:3px solid #2563eb;font-size:0.95rem}\n  .bn-product-image{width:100%;height:auto;margin:20px 0;border-radius:8px}\n  .bn-gpsr{margin-top:32px}\n  .bn-quick-benefits{margin:14px 0 20px 0;padding:12px 16px;background:#f9fafb;border-radius:8px}\n  .bn-quick-benefits ul{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}\n  .bn-quick-benefits li{font-size:0.9rem;color:#374151;font-weight:500}\n  .bn-problem-hook{margin:0 0 16px 0;padding:14px 20px;background:#fef9ec;border-left:4px solid #f59e0b;border-radius:6px;font-style:italic;color:#6b7280;font-size:0.95rem}\n  .bn-social-proof{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-social-proof h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-social-proof ul{margin:0;padding-left:0;list-style:none}\n  .bn-social-proof li{margin:8px 0;color:#374151}\n  .bn-decision-anchor{margin:20px 0;padding:20px;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}\n  .bn-decision-anchor h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-decision-anchor ul{margin:6px 0;padding-left:0;list-style:none}\n  .bn-decision-anchor li{margin:6px 0;line-height:1.5}\n  .bn-compare{margin:32px 0;padding:0;background:#fff;border-radius:12px;border:2px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,0.06)}\n  .bn-compare-header{padding:20px 24px 16px;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-bottom:2px solid #bae6fd;display:flex;align-items:flex-start;gap:12px}\n  .bn-compare-icon{font-size:1.6rem;flex-shrink:0;margin-top:2px}\n  .bn-compare-header h3{margin:0 0 4px 0;font-size:1.15rem;color:#0c4a6e;font-weight:700}\n  .bn-compare-sub{margin:0;font-size:0.85rem;color:#0369a1;font-style:italic}\n  .bn-compare table{width:100%;border-collapse:collapse;margin:0}\n  .bn-compare th{padding:14px 16px;text-align:left;font-size:0.85rem;font-weight:700;letter-spacing:0.3px}\n  .bn-compare th:first-child{background:#fff1f2;color:#be123c;border-right:2px solid #e5e7eb;width:50%}\n  .bn-compare th:last-child{background:#f0fdf4;color:#15803d}\n  .bn-compare-th-other,.bn-compare-th-this{display:block}\n  .bn-compare td{padding:13px 16px;font-size:0.9rem;line-height:1.45;vertical-align:top;border-top:1px solid #f1f5f9}\n  .bn-compare td:first-child{background:#fff;color:#64748b;border-right:2px solid #e5e7eb}\n  .bn-compare td:last-child{background:#f8fff9;color:#1e293b;font-weight:500}\n  .bn-compare tr:last-child td{border-bottom:none}\n  .bn-related-articles{margin:20px 0;padding:20px;background:#f9fafb;border-radius:8px;border-left:4px solid #6366f1}\n  .bn-related-articles h3{margin:0 0 12px 0;font-size:1.1rem}\n  .bn-related-articles ul{margin:8px 0;padding-left:20px}\n  .bn-related-articles li{margin:6px 0}\n  .bn-related-articles a{color:#4f46e5;text-decoration:none;font-weight:500}\n  .bn-related-articles a:hover{text-decoration:underline}\n  .bn-bottom-cta{margin:3rem 0 1rem 0;padding:2rem;background:var(--color-background-primary,#fff);border:0.5px solid var(--color-border-tertiary,#e5e7eb);border-radius:12px;text-align:center}\n  .bn-cta-title{font-size:1.05rem;font-weight:500;margin:0 0 8px 0;color:var(--color-text-primary,#111827)}\n  .bn-cta-price{margin:0 0 18px 0;font-size:1.1rem}\n  .bn-cta-original{text-decoration:line-through;color:#9ca3af;margin-right:10px;font-size:1rem}\n  .bn-cta-sale{color:#dc2626;font-weight:500;font-size:1.25rem}\n  .bn-cta-current{font-weight:500;font-size:1.25rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-button{display:block;width:100%;padding:14px 28px;background:#f9ca51;color:#111827;border:none;border-radius:8px;font-size:0.95rem;font-weight:500;cursor:pointer;letter-spacing:0.3px;transition:opacity 0.2s}\n  .bn-cta-button:hover{opacity:0.88}\n  .bn-cta-trust{margin:14px 0 6px 0;font-weight:500;font-size:0.9rem;color:var(--color-text-primary,#111827)}\n  .bn-cta-stars{margin:0;font-size:1.2rem;color:#f9ca51;letter-spacing:2px}\n  .bn-closing-note{margin-top:3rem;padding:2rem;border-top:1px solid #eee;text-align:center;font-style:italic;color:#4b5563}\n  .bn-closing-note a{color:#3b82f6;text-decoration:none;font-weight:500}\n  .bn-shipping-info h4{margin:0 0 8px 0;font-size:1.05rem;font-weight:600}\n  .bn-shipping-info p{margin:6px 0}\n  .bn-energy{margin:8px 0 12px 0;padding:14px 20px;font-style:italic;color:#374151;font-size:1.05rem;line-height:1.8;background:#f0fdf4;border-left:3px solid #10b981;border-radius:8px}\n  .bn-soft-reality{margin:8px 0 20px 0;padding:10px 20px;color:#6b7280;font-size:0.95rem;font-style:italic;line-height:1.7;background:#f9fafb;border-radius:8px}\n  \n\u003c\/style\u003e\n\n\u003c\/div\u003e\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"schwarz pinker Halter Bikini\", \"brand\": {\"@type\": \"Brand\", \"name\": \"Bodenseemarke\"}, \"image\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/O1CN01b4uiQ21XwYTHxSFMr__2383162988-0-cib_2048x2048_1.png?v=1765815858\", \"category\": \"bikini\", \"offers\": {\"@type\": \"Offer\", \"availability\": \"https:\/\/schema.org\/InStock\", \"price\": \"28.99\", \"priceCurrency\": \"EUR\"}, \"additionalProperty\": [{\"@type\": \"PropertyValue\", \"name\": \"Pflegehinweis\", \"value\": \"30°C, Schonwäsche, nicht bleichen, nicht im Trockner trocknen\"}]}\u003c\/script\u003e","brand":"Bodenseemarke","offers":[{"title":"FF928BK \/ S","offer_id":54413491405068,"sku":"CJYJ236930001AZ","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"FF928BK \/ M","offer_id":54413491437836,"sku":"CJYJ236930002BY","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"FF928BK \/ L","offer_id":54413491470604,"sku":"CJYJ236930003CX","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"FF928BK \/ XL","offer_id":54413491503372,"sku":"CJYJ236930004DW","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"FF928WH \/ S","offer_id":54413491536140,"sku":"CJYJ236930006FU","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"FF928WH \/ M","offer_id":54413491568908,"sku":"CJYJ236930007GT","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"FF928WH \/ L","offer_id":54413491601676,"sku":"CJYJ236930008HS","price":28.99,"currency_code":"EUR","in_stock":true},{"title":"FF928WH \/ XL","offer_id":54413491634444,"sku":"CJYJ236930009IR","price":28.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/O1CN01b4uiQ21XwYTHxSFMr__2383162988-0-cib_2048x2048_1.png?v=1765815858"}],"url":"https:\/\/www.bodenseemarke.com\/en\/collections\/bikini-damen.oembed?page=2","provider":"Bodenseemarke","version":"1.0","type":"link"}