{"product_id":"hatte-hatte-fahrradkette-ladies-premium-shirt","title":"\"If If Bicycle Chain\" Women's Shirt","description":"\u003cdiv class=\"bn-product-copy\"\u003e\n\n\u003cdiv class=\"bn-problem-hook\"\u003e\n\n\u003cp\u003eWhat defines a shirt that carries a saying – and still remains understated?\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003cp class=\"bn-energy\"\u003ePerhaps you know the feeling: a witty shirt that doesn't demand attention, but simply matches your sense of humor.\u003c\/p\u003e\n\n\u003cp class=\"bn-soft-reality\"\u003eAnd sometimes you only realize this when you wear a shirt that can do both – be quiet and still say something.\u003c\/p\u003e\n\n\u003ch2\u003eHätte Hätte Fahrradkette T-shirt for Women – with a saying that speaks for itself\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eWhat this shirt is made for:\u003c\/strong\u003e\u003cbr\u003eA women's T-shirt with the classic \"Hätte Hätte Fahrradkette\" saying – understated in appearance, clear in its message, made from ring-spun cotton with a pleasant feel directly on the skin.\u003c\/p\u003e\n\n\u003cp\u003eThe Hätte Hätte Fahrradkette T-shirt features a saying that probably everyone has thought at some point – on the bike, after a turn, looking at the clock. The small bicycle illustration with a chain track keeps the motif concrete without being loud. No neon print, no grand gesture – rather the shirt that friends comment on with a smile when you're by Lake Constance, enjoying your first coffee.\u003c\/p\u003e\n\n\u003cp\u003eThe graphic sits subtly on the fabric; the saying feels like an inside joke, not a statement. Paired with light jeans on the way to the farmers' market or under an open linen jacket on a bike tour – the shirt remains in the background until someone takes a closer look. Then comes the smile. The motif is legible on both light and darker color variations, allowing it to integrate into various looks without dominating.\u003c\/p\u003e\n\n\u003cp\u003eAs a gift for someone who lives by the saying – the friend who is always faster on the bike, the colleague who makes the best out of every situation. Or simply for yourself, as a quiet reference to all those moments when the bicycle was the right decision.\u003c\/p\u003e\n\n\u003ch3\u003eHow you'll notice it\u003c\/h3\u003e\n\n\u003cp\u003e• You pull it out of the closet in the morning and immediately know what it pairs with.\u003cbr\u003e• On the bike, during coffee, or in conversation – the saying does its job without being flashy.\u003cbr as a gift it needs no long explanation the saying speaks for itself.\u003e\n\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eIf you like, choose your color below.\u003c\/strong\u003e\u003c\/p\u003e\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\u003cdiv id=\"bn-calc-form-tshirt_women\" class=\"bn-calc-form\"\u003e\n\n\u003cdiv class=\"bn-calc-field\"\u003e\n\n\u003clabel for=\"bn_height\"\u003eHeight (cm)\u003c\/label\u003e \u003cinput placeholder=\"e.g. 175\" name=\"bn_height\" id=\"bn_height\" type=\"number\"\u003e\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"bn-calc-field\"\u003e\n\n\u003clabel for=\"bn_weight\"\u003eWeight (kg)\u003c\/label\u003e \u003cinput placeholder=\"e.g. 70\" name=\"bn_weight\" id=\"bn_weight\" type=\"number\"\u003e\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"bn-calc-field\"\u003e\n\n\u003clabel for=\"bn_bust\"\u003eBust circumference (cm) (optional)\u003c\/label\u003e \u003cinput placeholder=\"e.g. 90\" name=\"bn_bust\" id=\"bn_bust\" type=\"number\"\u003e\n\n\u003c\/div\u003e\n\n\u003cbutton class=\"bn-calc-button\" type=\"button\"\u003eCalculate size\u003c\/button\u003e\n\u003cdiv class=\"bn-calc-result\" id=\"bn-calc-result\"\u003e\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\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\u003cdiv class=\"bn-product-copy\"\u003e\n\n\u003cscript\u003e\n\n\/\/ 🔥 Geschlechts-abhängige Felder ein-\/ausblenden\nfunction toggleGenderFields_tshirt_women() {\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_tshirt_women() {\n        const genderSelect = document.getElementById('bn_gender');\n        if (genderSelect) {\n            genderSelect.addEventListener('change', toggleGenderFields_tshirt_women);\n            toggleGenderFields_tshirt_women();\n        } else {\n            setTimeout(initGenderToggle_tshirt_women, 100);\n        }\n    }\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGenderToggle_tshirt_women);\n    } else {\n        initGenderToggle_tshirt_women();\n    }\n})();\n\nfunction calculateSize_tshirt_women() {\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\": 65, \"bust\": 90, \"size_true\": \"L\"}, \"sizes\": [{\"name\": \"S\", \"height_min\": 148, \"height_max\": 158, \"weight_min\": 40, \"weight_max\": 50}, {\"name\": \"M\", \"height_min\": 153, \"height_max\": 163, \"weight_min\": 50, \"weight_max\": 60}, {\"name\": \"L\", \"height_min\": 158, \"height_max\": 168, \"weight_min\": 60, \"weight_max\": 70}, {\"name\": \"XL\", \"height_min\": 163, \"height_max\": 173, \"weight_min\": 70, \"weight_max\": 80}, {\"name\": \"XXL\", \"height_min\": 168, \"height_max\": 178, \"weight_min\": 80, \"weight_max\": 90}, {\"name\": \"3XL\", \"height_min\": 173, \"height_max\": 183, \"weight_min\": 90, \"weight_max\": 100}]}];\n    const tolerance = {\"height_weight\": 1.2, \"weight_weight\": 1.2, \"hip_weight\": 0.8, \"bust_weight\": 2.5, \"waist_weight\": 0.8, \"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\u003cdiv class=\"bn-quick-benefits\"\u003e\n\n\u003cul\u003e\n\n\u003cli\u003e✔ Material: 100% cotton (ring-spun) – Exception Ash: 99% cotton, 1% viscose – Exception Sport Grey: 85% cotton, 15% polyester\u003c\/li\u003e\n\n\u003cli\u003e✔ Fit: Ladies Premium Shirt – feminine cut\u003c\/li\u003e\n\n\u003cli\u003e✔ Care: Wash at 30°C on a gentle cycle, do not tumble dry\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\u003cp class=\"bn-mini-cta\"\u003eIf the cut and size suit you, the Hätte Hätte Fahrradkette Shirt for Women can feel significantly different in everyday life.\u003c\/p\u003e\n\n\u003cdiv class=\"bn-comfort\"\u003e\n\n\u003ch2\u003eShirts with sayings that work without being overbearing\u003c\/h2\u003e\n\n\u003cp class=\"bn-subheadline\"\u003eWhat makes for a subtle motif – and how it shows in everyday life.\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\u003eShirts with sayings often seem too flashy or loud\u003c\/li\u003e\n\n\u003cli\u003eThe fit of women's shirts is hard to judge online\u003c\/li\u003e\n\n\u003cli\u003eMaterial of cheap printed shirts can sometimes feel stiff\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\u003cp\u003eMany shirts with text quickly stand out – but not always in the right way. The print stands off the fabric, the saying seems too large, and after a few washes, it's clearly visible. Or the fit isn't as expected: too wide at the shoulder, too short in length.\u003c\/p\u003e\n\n\u003cp\u003ePart of this is due to the material: blended fabrics with a high synthetic fiber content can behave differently than expected after washing. Ring-spun cotton generally has a more consistent feel and behaves more predictably after washing – with normal care. Another factor is that prints with simple graphics tend to last longer than large, full-surface prints.\u003c\/p\u003e\n\n\u003cp\u003eAs a Ladies Premium Shirt, this cut is designed for a more feminine fit – which can help in estimating the size more accurately than with unisex shirts. However, if you prefer shirts that are completely text-free and function purely as a layering piece, this shirt might not be your style. Or if you're looking for functional materials with moisture-wicking properties – then a sports jersey would be a more suitable choice.\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDo you prefer shirts with sayings as a statement or as a quiet companion?\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 color and size below.\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→ As a gift for friends or colleagues with a sense of humor\u003c\/li\u003e\n\n\u003cli\u003e→ For everyday wear with jeans or sneakers – a quiet companion for the day\u003c\/li\u003e\n\n\u003cli\u003e→ On a bike tour or for coffee by the lake – the saying needs no explanation\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 bicycle motif – more of an insider than a loud statement\u003c\/li\u003e\n\n\u003cli\u003e✅ Ring-spun cotton for a consistent feel with normal use\u003c\/li\u003e\n\n\u003cli\u003e✅ Feminine cut as a Ladies Premium Shirt – can simplify size selection\u003c\/li\u003e\n\n\u003cli\u003e✅ Goes with jeans, shorts, or layering looks\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cul class=\"bn-decision-contra\"\u003e\n\n\u003cli\u003e⚠️ Not suitable for those who prefer shirts without text or motif\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Less suitable for formal or business occasions\u003c\/li\u003e\n\n\u003cli\u003e⚠️ Not a functional material – if you're looking for moisture-wicking properties, you'll find better options elsewhere\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\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\n\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\u003ctbody\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✅ Hätte Hätte Fahrradkette Shirt for Women\u003c\/span\u003e\u003c\/th\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003ePrinted shirts often seem too flashy or stand off the fabric\u003c\/td\u003e\n\n\u003ctd\u003eThe minimalist motif with the chain track should remain visually subtle and be easier to combine\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eWomen's shirts often fit inconsistently at the shoulders and length\u003c\/td\u003e\n\n\u003ctd\u003eDesigned as a Ladies Premium Shirt for a more feminine cut – can make fit selection easier\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eMaterial information is often missing or imprecise\u003c\/td\u003e\n\n\u003ctd\u003eFabric composition is transparently indicated for each color variation\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\n\u003ctd\u003eCheap cotton shirts lose their shape faster after washing\u003c\/td\u003e\n\n\u003ctd\u003eRing-spun cotton can provide a more consistent base with normal care\u003c\/td\u003e\n\n\n\u003c\/tr\u003e\n\n\n\u003c\/tbody\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 Hätte Hätte Fahrradkette Shirt for Women – so you have to adjust less while wearing it.\u003c\/p\u003e\n\n\u003cdiv class=\"bn-lupe\"\u003e\n\n\u003ch3\u003eHow the Hätte Hätte Fahrradkette Shirt 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\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\u003eWhen putting it on\u003c\/h4\u003e\n\n\u003cp\u003eThe fabric feels soft – no scratching, no tugging.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\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 everyday life\u003c\/h4\u003e\n\n\u003cp\u003eThe fit usually remains stable during movement. Less readjusting than with loose cuts.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\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 home\u003c\/h4\u003e\n\n\u003cp\u003eEven after hours: Comfortable, without pressure points or constrictions.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\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 washing\u003c\/h4\u003e\n\n\u003cp\u003eShape and color often stay beautiful longer with gentle care. Durable, not just for one season.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"bn-material\"\u003e\n\n\u003ch3\u003eCare \u0026amp; Material\u003c\/h3\u003e\n\n\u003cdiv\u003e• Material: 100% cotton (ring-spun) \/ Exception Ash: 99% cotton, 1% viscose \/ Exception Sport Grey: 85% cotton, 15% polyester\u003c\/div\u003e\n\n\n\u003c\/div\u003e\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\u003eHätte Hätte Fahrradkette Shirt for Women\u003c\/strong\u003e with a fit that can suit you\u003c\/li\u003e\n\n\u003cli\u003e→ You like \u003cstrong\u003esubtle, 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 mispurchases\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv itemtype=\"https:\/\/schema.org\/FAQPage\" itemscope=\"\" class=\"bn-faq\"\u003e\n\n\u003ch3\u003eFrequently Asked Questions about the Hätte Hätte Fahrradkette Shirt for Women\u003c\/h3\u003e\n\n\u003cdiv itemtype=\"https:\/\/schema.org\/Question\" itemprop=\"mainEntity\" itemscope=\"\"\u003e\n\n\u003ch4 itemprop=\"name\"\u003eIs the Hätte Hätte Fahrradkette Shirt for Women also suitable as a gift?\u003c\/h4\u003e\n\n\u003cdiv itemtype=\"https:\/\/schema.org\/Answer\" itemprop=\"acceptedAnswer\" itemscope=\"\"\u003e\n\n\u003cp itemprop=\"text\"\u003eYes, the shirt is well-suited as a gift for female cyclists or anyone who knows and likes the saying. The saying is generally understandable and needs no further explanation. As a note: If you are unsure of the size, many shops offer easy return options.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv itemtype=\"https:\/\/schema.org\/Question\" itemprop=\"mainEntity\" itemscope=\"\"\u003e\n\n\u003ch4 itemprop=\"name\"\u003eHow does the Hätte Hätte Fahrradkette Women's Shirt fit?\u003c\/h4\u003e\n\n\u003cdiv itemtype=\"https:\/\/schema.org\/Answer\" itemprop=\"acceptedAnswer\" itemscope=\"\"\u003e\n\n\u003cp itemprop=\"text\"\u003eThe shirt is designed as a Ladies Premium Shirt with a more feminine cut, which makes size selection somewhat easier compared to unisex shirts. If in doubt, it is recommended to check the size chart or use the size calculator with your height and weight.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv itemtype=\"https:\/\/schema.org\/Question\" itemprop=\"mainEntity\" itemscope=\"\"\u003e\n\n\u003ch4 itemprop=\"name\"\u003eHow do I properly care for the cotton bicycle saying shirt for women?\u003c\/h4\u003e\n\n\u003cdiv itemtype=\"https:\/\/schema.org\/Answer\" itemprop=\"acceptedAnswer\" itemscope=\"\"\u003e\n\n\u003cp itemprop=\"text\"\u003eWash at 30°C on a gentle cycle, do not tumble dry. Washed inside out, the motif stays fresh longer. Please note the care instructions on the label, as they may vary slightly depending on the color variant.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv itemtype=\"https:\/\/schema.org\/Question\" itemprop=\"mainEntity\" itemscope=\"\"\u003e\n\n\u003ch4 itemprop=\"name\"\u003eWhat occasions is the witty bicycle saying T-shirt for women suitable for?\u003c\/h4\u003e\n\n\u003cdiv itemtype=\"https:\/\/schema.org\/Answer\" itemprop=\"acceptedAnswer\" itemscope=\"\"\u003e\n\n\u003cp itemprop=\"text\"\u003eThe shirt pairs well with relaxed everyday looks – with jeans, shorts, or under an open jacket. It is less suitable for formal outfits or business contexts. It feels most at home during leisure activities, gatherings, or weekend trips to the water.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv itemtype=\"https:\/\/schema.org\/Question\" itemprop=\"mainEntity\" itemscope=\"\"\u003e\n\n\u003ch4 itemprop=\"name\"\u003eWhat material is the shirt made of and are there differences depending on the color?\u003c\/h4\u003e\n\n\u003cdiv itemtype=\"https:\/\/schema.org\/Answer\" itemprop=\"acceptedAnswer\" itemscope=\"\"\u003e\n\n\u003cp itemprop=\"text\"\u003eThe shirt is made of 100% cotton (ring-spun) in most colors. Exception: In the color Ash, it contains 99% cotton and 1% viscose, in Sport Grey 85% cotton and 15% polyester. These differences can slightly affect the feel and care behavior.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv itemtype=\"https:\/\/schema.org\/Question\" itemprop=\"mainEntity\" itemscope=\"\"\u003e\n\n\u003ch4 itemprop=\"name\"\u003eIs the saying on the shirt understandable even for people who don't cycle much?\u003c\/h4\u003e\n\n\u003cdiv itemtype=\"https:\/\/schema.org\/Answer\" itemprop=\"acceptedAnswer\" itemscope=\"\"\u003e\n\n\u003cp itemprop=\"text\"\u003eYes, 'Hätte hätte Fahrradkette' is a well-known German idiom that works beyond cycling – it stands for missed opportunities with a wink. The motif with the bicycle illustration gives the saying a concrete framework without explaining it.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\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\/papa-geschenke\/papa-ist-der-beste-t-shirts-fur-den-coolsten-vater\"\u003eDad is the best: T-shirts for the coolest father\u003c\/a\u003e\u003c\/li\u003e\n\n\u003cli\u003e\u003ca href=\"\/en\/blogs\/papa-geschenke\/papa-t-shirts-stilvolle-und-bequeme-modelle-fur-jeden-anlasserfekte-geschenk-zum-vatertag\"\u003eDad T-shirts: Stylish and comfortable models for every occasion – the perfect Father's Day gift\u003c\/a\u003e\u003c\/li\u003e\n\n\u003cli\u003e\u003ca href=\"\/en\/blogs\/papa-geschenke\/papa-geschenke-die-schonsten-ideen-fur-den-wichtigsten-mann-der-welt\"\u003eDad Gifts: The best ideas for the most important man in the world\u003c\/a\u003e\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\n\u003c\/div\u003e\n\n\u003cspan style=\"display: none;\" data-visual-intent=\"Light shirt with bicycle illustration and chain track, worn with jeans by Lake Constance\" class=\"bn-visual-anchor\"\u003e\u003c\/span\u003e\u003cspan style=\"display: none;\" data-visual-intent=\"Subtle print on soft fabric – motif lies flat, no visible texture\" class=\"bn-visual-anchor\"\u003e\u003c\/span\u003e\n\u003cdetails class=\"bn-ship\"\u003e\n\u003csummary\u003eDelivery\u003c\/summary\u003e\n\u003cdiv\u003e\n\n\u003cdiv class=\"bn-shipping-info\"\u003e\n\n\u003ch4\u003e📦 Delivery time\u003c\/h4\u003e\n\n\u003cp\u003e\u003cstrong\u003eStandard:\u003c\/strong\u003e 2–5 business days after order receipt\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eExpress shipping:\u003c\/strong\u003e Orders placed before 12 PM are shipped the same day. Orders placed after 12 PM are shipped the next business day.\u003c\/p\u003e\n\n\u003cp style=\"font-size: 0.9rem; color: #6b7280; margin-top: 8px;\"\u003e💡 Tip: Order before 12 PM if you need it quickly!\u003c\/p\u003e\n\n\u003cp style=\"font-size: 0.85rem; color: #9ca3af; margin-top: 6px;\"\u003eWe produce on demand – this reduces overproduction and warehouse stock.\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003c\/details\u003e\n\u003cdiv class=\"bn-return-policy\"\u003eOrder without printing. 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\u003cp class=\"bn-loop-end\"\u003eIf you recognize yourself in the scenarios above, the Hätte Hätte Fahrradkette Shirt for Women might be a suitable option.\u003c\/p\u003e\n\n\u003cdiv class=\"bn-bottom-cta\"\u003e\n\n\u003cp class=\"bn-cta-title\"\u003eHätte Hätte Fahrradkette Shirt for Women\u003c\/p\u003e\n\n\u003cp class=\"bn-cta-price\"\u003e\u003cspan class=\"bn-cta-current\"\u003e€29.90\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cbutton class=\"bn-cta-button\" type=\"button\"\u003eSelect size \u0026amp; order ↑\u003c\/button\u003e\n\u003cp class=\"bn-cta-trust\"\u003eOrder without printing. 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\u003cdiv class=\"bn-closing-note\"\u003e\n\n\u003cp\u003eUltimately, it's not about the garment itself, but about the moments you experience in it. We hope that the Hätte Hätte Fahrradkette Shirt for Women can accompany you exactly as you wish.\u003c\/p\u003e\n\n\u003cp style=\"font-size: 0.9rem; margin-top: 1rem; font-style: normal;\"\u003e\u003ca style=\"color: #3b82f6; text-decoration: none; font-weight: 500;\" href=\"\/en\/pages\/uber-uns\"\u003eDiscover our philosophy →\u003c\/a\u003e\u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003csmall class=\"bn-updated\"\u003eLast updated: 15.05.2026\u003c\/small\u003e\n\n\u003c\/div\u003e\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\u003cp\u003e \u003c\/p\u003e","brand":"Bodenseemarke","offers":[{"title":"Sorbet \/ XS","offer_id":54794452369676,"sku":"c4404262.5db74a","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Sorbet \/ S","offer_id":54794452402444,"sku":"c4404262.b8d573","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Sorbet \/ M","offer_id":54794452435212,"sku":"c4404262.e1282c","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Sorbet \/ L","offer_id":54794452467980,"sku":"c4404262.8d0b90","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Sorbet \/ XL","offer_id":54794452500748,"sku":"c4404262.677943","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Sorbet \/ XXL","offer_id":54794452533516,"sku":"c4404262.a54832","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Urban Purple \/ XS","offer_id":54794452566284,"sku":"c4404262.07af59","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Urban Purple \/ S","offer_id":54794452599052,"sku":"c4404262.8eb8c5","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Urban Purple \/ M","offer_id":54794452631820,"sku":"c4404262.8277a6","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Urban Purple \/ L","offer_id":54794452664588,"sku":"c4404262.c23069","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Urban Purple \/ XL","offer_id":54794452697356,"sku":"c4404262.92989e","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Urban Purple \/ XXL","offer_id":54794452730124,"sku":"c4404262.b8ee48","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Red \/ XS","offer_id":54794452762892,"sku":"c4404262.e65901","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Red \/ S","offer_id":54794452795660,"sku":"c4404262.6a15a4","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Red \/ M","offer_id":54794452828428,"sku":"c4404262.a4c0bd","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Red \/ L","offer_id":54794452861196,"sku":"c4404262.7543cb","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Red \/ XL","offer_id":54794452893964,"sku":"c4404262.526cc7","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Red \/ XXL","offer_id":54794452926732,"sku":"c4404262.6db5d4","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Red \/ 3XL","offer_id":54794452959500,"sku":"c4404262.c1782f","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Black \/ XS","offer_id":54794452992268,"sku":"c4404262.260ee2","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Black \/ S","offer_id":54794453025036,"sku":"c4404262.1023aa","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Black \/ M","offer_id":54794453057804,"sku":"c4404262.592669","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Black \/ L","offer_id":54794453090572,"sku":"c4404262.022ee6","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Black \/ XL","offer_id":54794453123340,"sku":"c4404262.844d94","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Black \/ XXL","offer_id":54794453156108,"sku":"c4404262.986279","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Black \/ 3XL","offer_id":54794453188876,"sku":"c4404262.a42ffe","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Navy \/ XS","offer_id":54794453221644,"sku":"c4404262.3ccdf6","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Navy \/ S","offer_id":54794453254412,"sku":"c4404262.49496e","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Navy \/ M","offer_id":54794453287180,"sku":"c4404262.72b80f","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Navy \/ L","offer_id":54794453319948,"sku":"c4404262.5ed868","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Navy \/ XL","offer_id":54794453352716,"sku":"c4404262.a85795","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Navy \/ XXL","offer_id":54794453385484,"sku":"c4404262.4ba217","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Navy \/ 3XL","offer_id":54794453418252,"sku":"c4404262.5a96cb","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Swimming pool \/ XS","offer_id":54794453451020,"sku":"c4404262.c2307a","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Swimming pool \/ S","offer_id":54794453483788,"sku":"c4404262.7942fc","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Swimming pool \/ M","offer_id":54794453516556,"sku":"c4404262.d8bcb0","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Swimming pool \/ L","offer_id":54794453549324,"sku":"c4404262.7e874d","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Swimming pool \/ XL","offer_id":54794453582092,"sku":"c4404262.be9c6f","price":29.9,"currency_code":"EUR","in_stock":true},{"title":"Swimming pool \/ XXL","offer_id":54794453614860,"sku":"c4404262.b076ad","price":29.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0528\/5635\/7044\/files\/front-ladies-premium-shirt-sorbet-640-08fb-2000x.png?v=1778880357","url":"https:\/\/www.bodenseemarke.com\/en\/products\/hatte-hatte-fahrradkette-ladies-premium-shirt","provider":"Bodenseemarke","version":"1.0","type":"link"}