{"version":3,"file":"client.mjs","sources":["../app/assets/teaser_moebel_discount_chip.svg","../app/shared/constants.ts","../app/client/core/cta-url.ts","../app/client/core/host-normalization.ts","../app/client/styles/core.ts","../app/client/styles/handheld-wide.ts","../app/client/styles/mobile.ts","../app/client/styles/tablet.ts","../app/client/moebel-teaser.shadow-styles.ts","../app/client/moebel-teaser.client.ts"],"sourcesContent":["export default \"data:image/svg+xml,%3csvg%20width='170'%20height='100'%20viewBox='0%200%20170%20100'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20width='170'%20height='100'%20rx='10'%20fill='%23E30613'/%3e%3cpath%20d='M57.587%2025V10.4545H63.1552C64.2063%2010.4545%2065.0799%2010.6203%2065.7759%2010.9517C66.4767%2011.2784%2066.9999%2011.7259%2067.3455%2012.294C67.6959%2012.8622%2067.8711%2013.5062%2067.8711%2014.2259C67.8711%2014.8177%2067.7575%2015.3243%2067.5302%2015.7457C67.3029%2016.1624%2066.9975%2016.5009%2066.614%2016.7614C66.2305%2017.0218%2065.802%2017.2088%2065.3285%2017.3224V17.4645C65.8446%2017.4929%2066.3394%2017.6515%2066.8129%2017.9403C67.2911%2018.2244%2067.6817%2018.6269%2067.9847%2019.1477C68.2878%2019.6686%2068.4393%2020.2983%2068.4393%2021.0369C68.4393%2021.7898%2068.257%2022.4669%2067.8924%2023.0682C67.5278%2023.6648%2066.9786%2024.1359%2066.2447%2024.4815C65.5108%2024.8272%2064.5875%2025%2063.4748%2025H57.587ZM60.2219%2022.7983H63.0558C64.0122%2022.7983%2064.7011%2022.616%2065.1225%2022.2514C65.5487%2021.8821%2065.7617%2021.4086%2065.7617%2020.831C65.7617%2020.4001%2065.6552%2020.0118%2065.4421%2019.6662C65.229%2019.3158%2064.926%2019.0412%2064.533%2018.8423C64.14%2018.6387%2063.6713%2018.5369%2063.1268%2018.5369H60.2219V22.7983ZM60.2219%2016.6406H62.8285C63.283%2016.6406%2063.6926%2016.5578%2064.0572%2016.392C64.4218%2016.2216%2064.7082%2015.9825%2064.9165%2015.6747C65.1296%2015.3622%2065.2362%2014.9929%2065.2362%2014.5668C65.2362%2014.0033%2065.0373%2013.5393%2064.6396%2013.1747C64.2466%2012.8101%2063.6618%2012.6278%2062.8853%2012.6278H60.2219V16.6406ZM70.6179%2025V14.0909H73.1889V25H70.6179ZM71.9105%2012.5426C71.5033%2012.5426%2071.1529%2012.4077%2070.8594%2012.1378C70.5658%2011.8632%2070.419%2011.5341%2070.419%2011.1506C70.419%2010.7623%2070.5658%2010.4332%2070.8594%2010.1634C71.1529%209.88873%2071.5033%209.75142%2071.9105%209.75142C72.3224%209.75142%2072.6728%209.88873%2072.9616%2010.1634C73.2552%2010.4332%2073.402%2010.7623%2073.402%2011.1506C73.402%2011.5341%2073.2552%2011.8632%2072.9616%2012.1378C72.6728%2012.4077%2072.3224%2012.5426%2071.9105%2012.5426ZM84.4549%2016.9744L82.1112%2017.2301C82.0449%2016.9934%2081.9289%2016.7708%2081.7631%2016.5625C81.6022%2016.3542%2081.3844%2016.1861%2081.1097%2016.0582C80.8351%2015.9304%2080.4989%2015.8665%2080.1012%2015.8665C79.5662%2015.8665%2079.1164%2015.9825%2078.7518%2016.2145C78.3919%2016.4465%2078.2144%2016.7472%2078.2191%2017.1165C78.2144%2017.4337%2078.3304%2017.6918%2078.5671%2017.8906C78.8086%2018.0895%2079.2063%2018.2528%2079.7603%2018.3807L81.6211%2018.7784C82.6533%2019.0009%2083.4203%2019.3537%2083.9222%2019.8366C84.4289%2020.3196%2084.6845%2020.9517%2084.6893%2021.733C84.6845%2022.4195%2084.4833%2023.0256%2084.0856%2023.5511C83.6926%2024.072%2083.1457%2024.4792%2082.445%2024.7727C81.7442%2025.0663%2080.9393%2025.2131%2080.0302%2025.2131C78.695%2025.2131%2077.6201%2024.9337%2076.8058%2024.375C75.9914%2023.8116%2075.506%2023.0279%2075.3498%2022.0241L77.8569%2021.7827C77.9705%2022.2751%2078.212%2022.6468%2078.5813%2022.8977C78.9506%2023.1487%2079.4312%2023.2741%2080.0231%2023.2741C80.6339%2023.2741%2081.1239%2023.1487%2081.4933%2022.8977C81.8673%2022.6468%2082.0543%2022.3366%2082.0543%2021.9673C82.0543%2021.6548%2081.9336%2021.3968%2081.6921%2021.1932C81.4554%2020.9896%2081.0861%2020.8333%2080.5842%2020.7244L78.7234%2020.3338C77.677%2020.116%2076.9028%2019.7491%2076.4009%2019.233C75.899%2018.7121%2075.6504%2018.054%2075.6552%2017.2585C75.6504%2016.5862%2075.8327%2016.0038%2076.2021%2015.5114C76.5761%2015.0142%2077.0946%2014.6307%2077.7575%2014.3608C78.4251%2014.0862%2079.1945%2013.9489%2080.0657%2013.9489C81.3441%2013.9489%2082.3503%2014.2211%2083.0842%2014.7656C83.8228%2015.3101%2084.2797%2016.0464%2084.4549%2016.9744ZM91.6282%2025V23.3665L97.2532%2016.3139V16.2216H91.8129V14.0909H100.4V15.8452L95.0444%2022.777V22.8693H100.584V25H91.6282ZM109.954%2020.4119V14.0909H112.525V25H110.032V23.0611H109.918C109.672%2023.6719%20109.267%2024.1714%20108.704%2024.5597C108.145%2024.9479%20107.456%2025.142%20106.637%2025.142C105.922%2025.142%20105.29%2024.9834%20104.741%2024.6662C104.196%2024.3442%20103.77%2023.8778%20103.462%2023.267C103.155%2022.6515%20103.001%2021.9081%20103.001%2021.0369V14.0909H105.572V20.6392C105.572%2021.3305%20105.761%2021.8797%20106.14%2022.2869C106.519%2022.6941%20107.016%2022.8977%20107.631%2022.8977C108.01%2022.8977%20108.377%2022.8054%20108.732%2022.6207C109.087%2022.4361%20109.379%2022.1615%20109.606%2021.7969C109.838%2021.4276%20109.954%2020.9659%20109.954%2020.4119Z'%20fill='white'/%3e%3cpath%20d='M26.8435%2068V60.8977L40.4088%2049.6761C41.3084%2048.9304%2042.0779%2048.232%2042.7171%2047.581C43.3681%2046.9181%2043.8653%2046.2375%2044.2085%2045.5391C44.5637%2044.8407%2044.7412%2044.0653%2044.7412%2043.2131C44.7412%2042.2779%2044.54%2041.4789%2044.1375%2040.8161C43.7469%2040.1532%2043.2024%2039.6442%2042.504%2039.2891C41.8056%2038.9221%2041.0007%2038.7386%2040.0892%2038.7386C39.1778%2038.7386%2038.3728%2038.9221%2037.6744%2039.2891C36.9879%2039.656%2036.4552%2040.1946%2036.0764%2040.9048C35.6977%2041.6151%2035.5083%2042.4792%2035.5083%2043.4972H26.1333C26.1333%2040.9403%2026.7074%2038.7386%2027.8556%2036.892C29.0038%2035.0455%2030.6254%2033.625%2032.7206%2032.6307C34.8158%2031.6364%2037.272%2031.1392%2040.0892%2031.1392C43.0012%2031.1392%2045.5225%2031.6068%2047.6531%2032.5419C49.7957%2033.4652%2051.4469%2034.7673%2052.607%2036.4482C53.7789%2038.129%2054.3648%2040.0999%2054.3648%2042.3608C54.3648%2043.7576%2054.0748%2045.1484%2053.4948%2046.5334C52.9147%2047.9065%2051.8731%2049.4276%2050.3698%2051.0966C48.8664%2052.7656%2046.7298%2054.7543%2043.96%2057.0625L40.5509%2059.9034V60.1165H54.7554V68H26.8435ZM58.0313%2062.3182V54.6477L72.662%2031.6364H79.6222V41.8636H75.645L67.7615%2054.3636V54.6477H89.3524V62.3182H58.0313ZM75.716%2068V59.9744L75.9291%2056.6364V31.6364H85.162V68H75.716ZM124.264%2061.1818V59.2642C124.264%2057.7254%20124.596%2056.3049%20125.259%2055.0028C125.934%2053.7008%20126.91%2052.6532%20128.188%2051.8601C129.467%2051.067%20131.023%2050.6705%20132.858%2050.6705C134.74%2050.6705%20136.321%2051.0611%20137.599%2051.8423C138.889%2052.6236%20139.866%2053.6652%20140.529%2054.9673C141.192%2056.2694%20141.523%2057.7017%20141.523%2059.2642V61.1818C141.523%2062.7206%20141.186%2064.1411%20140.511%2065.4432C139.848%2066.7453%20138.871%2067.7929%20137.581%2068.5859C136.291%2069.379%20134.717%2069.7756%20132.858%2069.7756C131%2069.7756%20129.431%2069.379%20128.153%2068.5859C126.875%2067.7929%20125.904%2066.7453%20125.241%2065.4432C124.59%2064.1411%20124.264%2062.7206%20124.264%2061.1818ZM130.443%2059.2642V61.1818C130.443%2061.8565%20130.609%2062.5253%20130.941%2063.1882C131.284%2063.8393%20131.923%2064.1648%20132.858%2064.1648C133.841%2064.1648%20134.486%2063.8452%20134.794%2063.206C135.113%2062.5668%20135.273%2061.892%20135.273%2061.1818V59.2642C135.273%2058.554%20135.125%2057.8674%20134.829%2057.2045C134.533%2056.5417%20133.876%2056.2102%20132.858%2056.2102C131.923%2056.2102%20131.284%2056.5417%20130.941%2057.2045C130.609%2057.8674%20130.443%2058.554%20130.443%2059.2642ZM105.23%2040.3722V38.4545C105.23%2036.892%20105.568%2035.4598%20106.242%2034.1577C106.929%2032.8556%20107.911%2031.8139%20109.19%2031.0327C110.468%2030.2514%20112.013%2029.8608%20113.824%2029.8608C115.706%2029.8608%20117.286%2030.2514%20118.565%2031.0327C119.855%2031.8139%20120.832%2032.8556%20121.495%2034.1577C122.157%2035.4598%20122.489%2036.892%20122.489%2038.4545V40.3722C122.489%2041.9347%20122.152%2043.361%20121.477%2044.6513C120.814%2045.9415%20119.837%2046.9714%20118.547%2047.7408C117.257%2048.5102%20115.683%2048.8949%20113.824%2048.8949C111.966%2048.8949%20110.397%2048.5043%20109.119%2047.723C107.84%2046.9418%20106.87%2045.906%20106.207%2044.6158C105.556%2043.3255%20105.23%2041.911%20105.23%2040.3722ZM111.48%2038.4545V40.3722C111.48%2041.0824%20111.646%2041.7571%20111.978%2042.3963C112.309%2043.0355%20112.925%2043.3551%20113.824%2043.3551C114.807%2043.3551%20115.452%2043.0355%20115.759%2042.3963C116.079%2041.7571%20116.239%2041.0824%20116.239%2040.3722V38.4545C116.239%2037.7443%20116.091%2037.0578%20115.795%2036.3949C115.499%2035.732%20114.842%2035.4006%20113.824%2035.4006C112.889%2035.4006%20112.262%2035.7438%20111.942%2036.4304C111.634%2037.1051%20111.48%2037.7798%20111.48%2038.4545ZM108.249%2068L133.249%2031.6364H138.291L113.291%2068H108.249Z'%20fill='white'/%3e%3cpath%20d='M21.9141%2089V74.4545H32.397V77.6364H25.8629V80.1364H31.8572V83.3182H25.8629V85.8182H32.3686V89H21.9141ZM37.793%2078.0909L39.3839%2081.4716L41.06%2078.0909H44.9521L42.0259%2083.5455L45.0941%2089H41.2305L39.3839%2085.5341L37.5941%2089H33.6737L36.7702%2083.5455L33.8725%2078.0909H37.793ZM52.8516%2078.0909V80.9318H45.6641V78.0909H52.8516ZM47.0561%2075.4773H50.9766V85.4915C50.9766%2085.643%2051.0026%2085.7708%2051.0547%2085.875C51.1068%2085.9744%2051.1873%2086.0502%2051.2962%2086.1023C51.4051%2086.1496%2051.5447%2086.1733%2051.7152%2086.1733C51.8336%2086.1733%2051.9709%2086.1591%2052.1271%2086.1307C52.2881%2086.1023%2052.4065%2086.0786%2052.4822%2086.0597L53.0504%2088.8153C52.8752%2088.8674%2052.6243%2088.9313%2052.2976%2089.0071C51.9756%2089.0829%2051.5921%2089.1326%2051.147%2089.1562C50.2474%2089.2036%2049.4922%2089.1113%2048.8814%2088.8793C48.2706%2088.6425%2047.8113%2088.2708%2047.5036%2087.7642C47.1958%2087.2576%2047.0466%2086.6231%2047.0561%2085.8608V75.4773ZM54.4513%2089V78.0909H58.2582V80.1648H58.3718C58.5707%2079.3977%2058.8855%2078.8366%2059.3164%2078.4815C59.752%2078.1264%2060.261%2077.9489%2060.8434%2077.9489C61.0138%2077.9489%2061.1819%2077.9631%2061.3477%2077.9915C61.5181%2078.0152%2061.6815%2078.0507%2061.8377%2078.098V81.4432C61.6436%2081.3769%2061.4045%2081.3272%2061.1204%2081.294C60.8363%2081.2609%2060.5924%2081.2443%2060.3888%2081.2443C60.0053%2081.2443%2059.6597%2081.3319%2059.3519%2081.5071C59.0489%2081.6776%2058.8098%2081.919%2058.6346%2082.2315C58.4594%2082.5393%2058.3718%2082.9015%2058.3718%2083.3182V89H54.4513ZM65.6552%2089.1705C64.9592%2089.1705%2064.3436%2089.0568%2063.8086%2088.8295C63.2783%2088.5975%2062.8616%2088.2472%2062.5586%2087.7784C62.2556%2087.3097%2062.104%2086.7131%2062.104%2085.9886C62.104%2085.392%2062.2058%2084.883%2062.4094%2084.4616C62.613%2084.0355%2062.8971%2083.6875%2063.2617%2083.4176C63.6263%2083.1477%2064.0501%2082.9418%2064.533%2082.7997C65.0207%2082.6577%2065.5463%2082.5653%2066.1097%2082.5227C66.7205%2082.4754%2067.2106%2082.4186%2067.5799%2082.3523C67.954%2082.2812%2068.2238%2082.1842%2068.3896%2082.0611C68.5553%2081.9332%2068.6381%2081.7652%2068.6381%2081.5568V81.5284C68.6381%2081.2443%2068.5292%2081.0265%2068.3114%2080.875C68.0936%2080.7235%2067.8143%2080.6477%2067.4734%2080.6477C67.0993%2080.6477%2066.7939%2080.7306%2066.5572%2080.8963C66.3252%2081.0573%2066.1855%2081.3059%2066.1381%2081.642H62.5302C62.5775%2080.9792%2062.7882%2080.3684%2063.1623%2079.8097C63.5411%2079.2462%2064.0927%2078.7964%2064.8171%2078.4602C65.5415%2078.1193%2066.4459%2077.9489%2067.5302%2077.9489C68.3114%2077.9489%2069.0122%2078.0412%2069.6325%2078.2259C70.2527%2078.4058%2070.7807%2078.6591%2071.2163%2078.9858C71.6519%2079.3078%2071.9833%2079.6866%2072.2106%2080.1222C72.4426%2080.553%2072.5586%2081.0218%2072.5586%2081.5284V89H68.8938V87.4659H68.8086C68.5908%2087.8731%2068.3256%2088.2022%2068.0131%2088.4531C67.7054%2088.7041%2067.3526%2088.8864%2066.9549%2089C66.5619%2089.1136%2066.1287%2089.1705%2065.6552%2089.1705ZM66.9336%2086.6989C67.2319%2086.6989%2067.5112%2086.6373%2067.7717%2086.5142C68.0368%2086.3911%2068.2522%2086.2135%2068.418%2085.9815C68.5837%2085.7495%2068.6665%2085.4678%2068.6665%2085.1364V84.2273C68.5624%2084.2699%2068.4511%2084.3101%2068.3327%2084.348C68.2191%2084.3859%2068.096%2084.4214%2067.9634%2084.4545C67.8356%2084.4877%2067.6983%2084.5185%2067.5515%2084.5469C67.4094%2084.5753%2067.2603%2084.6013%2067.104%2084.625C66.801%2084.6723%2066.5524%2084.7505%2066.3583%2084.8594C66.1689%2084.9635%2066.0269%2085.0938%2065.9322%2085.25C65.8422%2085.4015%2065.7972%2085.572%2065.7972%2085.7614C65.7972%2086.0644%2065.9038%2086.2964%2066.1168%2086.4574C66.3299%2086.6184%2066.6022%2086.6989%2066.9336%2086.6989ZM81.5909%2081.7273V84.6818H74.7727V81.7273H81.5909ZM83.8672%2089V74.4545H90.1456C91.2251%2074.4545%2092.1697%2074.651%2092.9794%2075.044C93.7891%2075.437%2094.4188%2076.0028%2094.8686%2076.7415C95.3184%2077.4801%2095.5433%2078.3655%2095.5433%2079.3977C95.5433%2080.4394%2095.3113%2081.3177%2094.8473%2082.0327C94.388%2082.7476%2093.7417%2083.2874%2092.9084%2083.652C92.0798%2084.0166%2091.1115%2084.1989%2090.0036%2084.1989H86.2536V81.1307H89.2081C89.6721%2081.1307%2090.0675%2081.0739%2090.3942%2080.9602C90.7256%2080.8419%2090.9789%2080.6548%2091.1541%2080.3991C91.334%2080.1435%2091.424%2079.8097%2091.424%2079.3977C91.424%2078.9811%2091.334%2078.6425%2091.1541%2078.3821C90.9789%2078.117%2090.7256%2077.9228%2090.3942%2077.7997C90.0675%2077.6719%2089.6721%2077.608%2089.2081%2077.608H87.8161V89H83.8672ZM92.3899%2082.3239L96.0263%2089H91.7365L88.1854%2082.3239H92.3899ZM100.323%2089.1705C99.6271%2089.1705%2099.0116%2089.0568%2098.4766%2088.8295C97.9463%2088.5975%2097.5296%2088.2472%2097.2266%2087.7784C96.9235%2087.3097%2096.772%2086.7131%2096.772%2085.9886C96.772%2085.392%2096.8738%2084.883%2097.0774%2084.4616C97.281%2084.0355%2097.5651%2083.6875%2097.9297%2083.4176C98.2943%2083.1477%2098.718%2082.9418%2099.201%2082.7997C99.6887%2082.6577%20100.214%2082.5653%20100.778%2082.5227C101.388%2082.4754%20101.879%2082.4186%20102.248%2082.3523C102.622%2082.2812%20102.892%2082.1842%20103.058%2082.0611C103.223%2081.9332%20103.306%2081.7652%20103.306%2081.5568V81.5284C103.306%2081.2443%20103.197%2081.0265%20102.979%2080.875C102.762%2080.7235%20102.482%2080.6477%20102.141%2080.6477C101.767%2080.6477%20101.462%2080.7306%20101.225%2080.8963C100.993%2081.0573%20100.853%2081.3059%20100.806%2081.642H97.1982C97.2455%2080.9792%2097.4562%2080.3684%2097.8303%2079.8097C98.209%2079.2462%2098.7607%2078.7964%2099.4851%2078.4602C100.21%2078.1193%20101.114%2077.9489%20102.198%2077.9489C102.979%2077.9489%20103.68%2078.0412%20104.3%2078.2259C104.921%2078.4058%20105.449%2078.6591%20105.884%2078.9858C106.32%2079.3078%20106.651%2079.6866%20106.879%2080.1222C107.111%2080.553%20107.227%2081.0218%20107.227%2081.5284V89H103.562V87.4659H103.477C103.259%2087.8731%20102.994%2088.2022%20102.681%2088.4531C102.373%2088.7041%20102.021%2088.8864%20101.623%2089C101.23%2089.1136%20100.797%2089.1705%20100.323%2089.1705ZM101.602%2086.6989C101.9%2086.6989%20102.179%2086.6373%20102.44%2086.5142C102.705%2086.3911%20102.92%2086.2135%20103.086%2085.9815C103.252%2085.7495%20103.335%2085.4678%20103.335%2085.1364V84.2273C103.23%2084.2699%20103.119%2084.3101%20103.001%2084.348C102.887%2084.3859%20102.764%2084.4214%20102.631%2084.4545C102.504%2084.4877%20102.366%2084.5185%20102.219%2084.5469C102.077%2084.5753%20101.928%2084.6013%20101.772%2084.625C101.469%2084.6723%20101.22%2084.7505%20101.026%2084.8594C100.837%2084.9635%20100.695%2085.0938%20100.6%2085.25C100.51%2085.4015%20100.465%2085.572%20100.465%2085.7614C100.465%2086.0644%20100.572%2086.2964%20100.785%2086.4574C100.998%2086.6184%20101.27%2086.6989%20101.602%2086.6989ZM109.043%2089V74.4545H112.963V79.9943H113.02C113.162%2079.625%20113.371%2079.2865%20113.645%2078.9787C113.92%2078.6662%20114.261%2078.4176%20114.668%2078.233C115.075%2078.0436%20115.549%2077.9489%20116.088%2077.9489C116.808%2077.9489%20117.492%2078.1406%20118.141%2078.5241C118.794%2078.9077%20119.325%2079.5114%20119.732%2080.3352C120.144%2081.1591%20120.35%2082.2292%20120.35%2083.5455C120.35%2084.8049%20120.153%2085.849%20119.76%2086.6776C119.372%2087.5062%20118.851%2088.1241%20118.198%2088.5312C117.549%2088.9384%20116.837%2089.142%20116.06%2089.142C115.549%2089.142%20115.092%2089.0592%20114.689%2088.8935C114.292%2088.723%20113.951%2088.4934%20113.667%2088.2045C113.387%2087.911%20113.172%2087.5795%20113.02%2087.2102H112.935V89H109.043ZM112.878%2083.5455C112.878%2084.0758%20112.947%2084.535%20113.084%2084.9233C113.226%2085.3068%20113.425%2085.6051%20113.681%2085.8182C113.941%2086.0265%20114.251%2086.1307%20114.611%2086.1307C114.971%2086.1307%20115.276%2086.0289%20115.527%2085.8253C115.783%2085.617%20115.977%2085.321%20116.11%2084.9375C116.247%2084.5492%20116.316%2084.0852%20116.316%2083.5455C116.316%2083.0057%20116.247%2082.544%20116.11%2082.1605C115.977%2081.7723%20115.783%2081.4763%20115.527%2081.2727C115.276%2081.0644%20114.971%2080.9602%20114.611%2080.9602C114.251%2080.9602%20113.941%2081.0644%20113.681%2081.2727C113.425%2081.4763%20113.226%2081.7723%20113.084%2082.1605C112.947%2082.544%20112.878%2083.0057%20112.878%2083.5455ZM125.03%2089.1705C124.334%2089.1705%20123.719%2089.0568%20123.184%2088.8295C122.653%2088.5975%20122.237%2088.2472%20121.934%2087.7784C121.631%2087.3097%20121.479%2086.7131%20121.479%2085.9886C121.479%2085.392%20121.581%2084.883%20121.784%2084.4616C121.988%2084.0355%20122.272%2083.6875%20122.637%2083.4176C123.001%2083.1477%20123.425%2082.9418%20123.908%2082.7997C124.396%2082.6577%20124.921%2082.5653%20125.485%2082.5227C126.096%2082.4754%20126.586%2082.4186%20126.955%2082.3523C127.329%2082.2812%20127.599%2082.1842%20127.765%2082.0611C127.93%2081.9332%20128.013%2081.7652%20128.013%2081.5568V81.5284C128.013%2081.2443%20127.904%2081.0265%20127.686%2080.875C127.469%2080.7235%20127.189%2080.6477%20126.848%2080.6477C126.474%2080.6477%20126.169%2080.7306%20125.932%2080.8963C125.7%2081.0573%20125.56%2081.3059%20125.513%2081.642H121.905C121.953%2080.9792%20122.163%2080.3684%20122.537%2079.8097C122.916%2079.2462%20123.468%2078.7964%20124.192%2078.4602C124.917%2078.1193%20125.821%2077.9489%20126.905%2077.9489C127.686%2077.9489%20128.387%2078.0412%20129.007%2078.2259C129.628%2078.4058%20130.156%2078.6591%20130.591%2078.9858C131.027%2079.3078%20131.358%2079.6866%20131.586%2080.1222C131.818%2080.553%20131.934%2081.0218%20131.934%2081.5284V89H128.269V87.4659H128.184C127.966%2087.8731%20127.701%2088.2022%20127.388%2088.4531C127.08%2088.7041%20126.728%2088.8864%20126.33%2089C125.937%2089.1136%20125.504%2089.1705%20125.03%2089.1705ZM126.309%2086.6989C126.607%2086.6989%20126.886%2086.6373%20127.147%2086.5142C127.412%2086.3911%20127.627%2086.2135%20127.793%2085.9815C127.959%2085.7495%20128.042%2085.4678%20128.042%2085.1364V84.2273C127.937%2084.2699%20127.826%2084.3101%20127.708%2084.348C127.594%2084.3859%20127.471%2084.4214%20127.338%2084.4545C127.211%2084.4877%20127.073%2084.5185%20126.926%2084.5469C126.784%2084.5753%20126.635%2084.6013%20126.479%2084.625C126.176%2084.6723%20125.927%2084.7505%20125.733%2084.8594C125.544%2084.9635%20125.402%2085.0938%20125.307%2085.25C125.217%2085.4015%20125.172%2085.572%20125.172%2085.7614C125.172%2086.0644%20125.279%2086.2964%20125.492%2086.4574C125.705%2086.6184%20125.977%2086.6989%20126.309%2086.6989ZM140.312%2078.0909V80.9318H133.125V78.0909H140.312ZM134.517%2075.4773H138.438V85.4915C138.438%2085.643%20138.464%2085.7708%20138.516%2085.875C138.568%2085.9744%20138.648%2086.0502%20138.757%2086.1023C138.866%2086.1496%20139.006%2086.1733%20139.176%2086.1733C139.295%2086.1733%20139.432%2086.1591%20139.588%2086.1307C139.749%2086.1023%20139.867%2086.0786%20139.943%2086.0597L140.511%2088.8153C140.336%2088.8674%20140.085%2088.9313%20139.759%2089.0071C139.437%2089.0829%20139.053%2089.1326%20138.608%2089.1562C137.708%2089.2036%20136.953%2089.1113%20136.342%2088.8793C135.732%2088.6425%20135.272%2088.2708%20134.964%2087.7642C134.657%2087.2576%20134.508%2086.6231%20134.517%2085.8608V75.4773ZM148.418%2078.0909V80.9318H141.23V78.0909H148.418ZM142.623%2075.4773H146.543V85.4915C146.543%2085.643%20146.569%2085.7708%20146.621%2085.875C146.673%2085.9744%20146.754%2086.0502%20146.863%2086.1023C146.971%2086.1496%20147.111%2086.1733%20147.282%2086.1733C147.4%2086.1733%20147.537%2086.1591%20147.694%2086.1307C147.855%2086.1023%20147.973%2086.0786%20148.049%2086.0597L148.617%2088.8153C148.442%2088.8674%20148.191%2088.9313%20147.864%2089.0071C147.542%2089.0829%20147.158%2089.1326%20146.713%2089.1562C145.814%2089.2036%20145.059%2089.1113%20144.448%2088.8793C143.837%2088.6425%20143.378%2088.2708%20143.07%2087.7642C142.762%2087.2576%20142.613%2086.6231%20142.623%2085.8608V75.4773Z'%20fill='white'/%3e%3c/svg%3e\"","import type {Language} from \"../../.check24-home/types/check24\";\n\n/**\n * Default product slug (background slide key). Used by skeleton CSS, hook selectors,\n * and Vanilla Home background slides (`data-wc-slide-id` per platform docs).\n */\nexport const DEFAULT_PRODUCT_SLUG = \"shofur\";\n\n/** Natural size of `teaser_moebel_discount_chip.svg` (viewBox) for `<img width=\"…\" height=\"…\">`. */\nexport const DISCOUNT_CHIP_INTRINSIC_WIDTH = 170;\nexport const DISCOUNT_CHIP_INTRINSIC_HEIGHT = 100;\n\n/** Placeholder in server skeleton HTML; replaced in preview and by the host if needed. */\nexport const MOEBEL_CTA_URL_PLACEHOLDER = \"__C24_MOEBEL_CTA_URL__\";\n\n/** Desktop artwork crop when the host viewport is at most {@link TABLET_BACKGROUND_POSITION_MAX_WIDTH_PX}. */\nexport const TABLET_BACKGROUND_POSITION = \"85% center\";\n\n/** From this viewport width downward (desktop slide), use {@link TABLET_BACKGROUND_POSITION}. */\nexport const TABLET_BACKGROUND_POSITION_MAX_WIDTH_PX = 1160;\n\nexport interface TeaserStrings {\n    headlineDesktop: string;\n    headlineMobileLines: string[];\n    sublineDesktop: string;\n    ctaText: string;\n    ctaPill: string;\n}\n\nconst GERMAN_TEASER_STRINGS: TeaserStrings = {\n    headlineDesktop: `Möbel Super Summer Deals`,\n    headlineMobileLines: [\"Möbel Super\", \"Summer Deals\"],\n    sublineDesktop: `nur bis 27.07. – nur in der App`,\n    ctaText: \"Über 1 Million Produkte\",\n    ctaPill: \"Angebote entdecken\",\n};\n\nconst ENGLISH_TEASER_STRINGS: TeaserStrings = {\n    headlineDesktop: `Furniture Super Summer Deals`,\n    headlineMobileLines: [\"Furniture Super\", \"Summer Deals\"],\n    sublineDesktop: `only until July 27th – only in the app`,\n    ctaText: \"Over 1 million products\",\n    ctaPill: \"Discover offers\",\n};\n\nconst TEASER_DICTIONARY: Record<Language, TeaserStrings> = {\n    \"de-DE\": GERMAN_TEASER_STRINGS,\n    \"de-AT\": GERMAN_TEASER_STRINGS,\n    \"en-GB\": ENGLISH_TEASER_STRINGS,\n    \"en-US\": ENGLISH_TEASER_STRINGS,\n    \"es-ES\": ENGLISH_TEASER_STRINGS,\n};\n\nexport function getTeaserStrings(language: Language): TeaserStrings {\n    return TEASER_DICTIONARY[language];\n}\n","const PROD_DOMAIN = \"moebel.check24.de\";\nconst NON_PROD_DOMAIN = \"moebel.check24-test.de\";\nconst CTA_URL_TEMPLATE = \"https://{DOMAIN}/ul/?tid=CH24_extradiscount_Teaser_Web\";\n\nexport function isNonProdEnv(env: string): boolean {\n    return [\"dev\", \"int\", \"test\"].includes(env);\n}\n\nexport function buildMoebelCtaUrl(env: string): string {\n    const domain = isNonProdEnv(env) ? NON_PROD_DOMAIN : PROD_DOMAIN;\n    return CTA_URL_TEMPLATE.replace(\"{DOMAIN}\", domain);\n}\n","import type {Language} from \"../../../.check24-home/types/check24\";\n\nconst LANGUAGES: readonly Language[] = [\"de-DE\", \"en-GB\", \"en-US\", \"de-AT\", \"es-ES\"];\n\nexport function normalizeLanguage(value: string | undefined): Language {\n    if (value && (LANGUAGES as readonly string[]).includes(value)) {\n        return value as Language;\n    }\n\n    return \"de-DE\";\n}\n\nexport type NormalizedDeviceOutput = \"desktop\" | \"mobile\" | \"tabletapp\" | \"app\";\n\nexport function normalizeDeviceOutput(value: string | undefined): NormalizedDeviceOutput {\n    if (value === \"mobile\" || value === \"tabletapp\" || value === \"app\") {\n        return value;\n    }\n\n    return \"desktop\";\n}\n","import {DISCOUNT_CHIP_INTRINSIC_HEIGHT, DISCOUNT_CHIP_INTRINSIC_WIDTH} from \"../../shared/constants.js\";\n\nexport function buildShadowCoreStyles(): string {\n    return `\n:host {\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  margin: 0;\n  padding: 0;\n  height: 360px;\n  position: relative;\n  background: transparent;\n  font-family: Inter, sans-serif;\n  visibility: visible;\n}\n\n.teaser-container {\n  width: 100%;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  max-width: 960px;\n  margin: 0 auto;\n  padding: 0;\n  text-align: center;\n}\n\n.teaser-text-block {\n  display: contents;\n}\n\n.c24-teaser-headline {\n  font-size: 30px;\n  font-weight: 700;\n  color: #FFF;\n  line-height: 40px;\n  margin: 50px 30px 0;\n  hyphens: none;\n  -webkit-hyphens: none;\n}\n\n.c24-teaser-headline__mobile {\n  display: none;\n}\n\n.c24-teaser-subline {\n  font-size: 18px;\n  font-weight: normal;\n  color: #FFF;\n  line-height: 1;\n  margin: 16px 30px 0;\n  letter-spacing: -0.32px;\n  hyphens: none;\n  -webkit-hyphens: none;\n}\n\n.c24-yellow-box {\n  display: inline-flex;\n  position: absolute;\n  bottom: 60px;\n  align-items: center;\n  justify-content: space-between;\n  height: 64px;\n  width: fit-content;\n  margin: 0 auto;\n  padding: 4px 6px 4px 32px;\n  border: 3px solid #FFBB1C;\n  border-radius: 32px;\n  background: #FFFFFF;\n  color: #181818;\n  font-size: 16px;\n  font-weight: normal;\n  cursor: default;\n  white-space: nowrap;\n  transition: border-color 0.2s ease;\n  gap: 30px;\n  box-sizing: border-box;\n  min-width: 496px;\n}\n\n.c24-yellow-box-2-columns {\n  display: grid;\n  grid-template-columns: repeat(2, auto);\n  width: 100%;\n  height: 100%;\n  justify-content: space-between;\n}\n\n.c24-yellow-text-box-wrapper {\n  font-size: 14px;\n  line-height: 20px;\n  box-sizing: border-box;\n  border-radius: 3px;\n  border: none;\n  outline: none;\n  display: flex;\n  place-items: center;\n}\n\n.c24-yellow-text-box-wrapper:not(:last-child) {\n  margin-right: 30px;\n}\n\n.c24-yellow-box-text {\n  font-size: 16px;\n  padding-left: 10px;\n  flex: 0 0 auto;\n  cursor: default;\n  user-select: none;\n}\n\n.c24-yellow-box-button-link {\n  line-height: 22px;\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  padding: 13px 30px;\n  border-radius: 90px;\n  background: #0563C1;\n  color: #ffffff;\n  font-size: 16px;\n  font-weight: 400;\n  white-space: nowrap;\n  flex-shrink: 0;\n  transition: background 0.2s ease;\n  min-width: 164.468px;\n  text-decoration: none;\n  box-sizing: border-box;\n  cursor: pointer;\n}\n\n.c24-yellow-box:hover {\n  background: #FFFFFF;\n  border-color: #FFBB1C;\n}\n\n.c24-yellow-box:hover .c24-yellow-box-button-link {\n  background: #064E9C;\n}\n\n.c24-yellow-box:active {\n  background: #FFFFFF;\n  border-color: #FFBB1C;\n}\n\n.c24-yellow-box:active .c24-yellow-box-button-link {\n  background: #064E9C;\n}\n\n.teaser-discount-chip {\n  position: absolute;\n  top: 30px;\n  left: max(20px, calc(50% - 550px));\n  width: 230px;\n  height: auto;\n  aspect-ratio: ${DISCOUNT_CHIP_INTRINSIC_WIDTH} / ${DISCOUNT_CHIP_INTRINSIC_HEIGHT};\n  object-fit: contain;\n  pointer-events: none;\n}\n\n.teaser-link {\n  position: absolute;\n  inset: 0;\n  display: none;\n  text-decoration: none;\n}\n\n@media (max-width: 959px) {\n  .teaser-link {\n    display: block;\n    cursor: pointer;\n  }\n\n  .c24-yellow-box {\n    display: none;\n  }\n}\n\n:host([data-deviceoutput=\"mobile\"]) .c24-yellow-box,\n:host([data-deviceoutput=\"tabletapp\"]) .c24-yellow-box,\n:host([data-deviceoutput=\"app\"]) .c24-yellow-box,\n:host([deviceoutput=\"mobile\"]) .c24-yellow-box,\n:host([deviceoutput=\"tabletapp\"]) .c24-yellow-box,\n:host([deviceoutput=\"app\"]) .c24-yellow-box {\n  display: none;\n}\n`.trim();\n}\n","export function buildShadowHandheldWideStyles(): string {\n    return `\n/*\n * Narrow-viewport layout is normally driven only by @media (max-width: 768px) so LayoutCheck\n * matches the server skeleton. When the host still reports a handheld deviceoutput while the\n * viewport is wide (e.g. preview iframes), apply the same headline/subline switching.\n */\n@media (min-width: 769px) {\n  :host([deviceoutput=\"mobile\"]),\n  :host([data-deviceoutput=\"mobile\"]),\n  :host([deviceoutput=\"tabletapp\"]),\n  :host([data-deviceoutput=\"tabletapp\"]),\n  :host([deviceoutput=\"app\"]),\n  :host([data-deviceoutput=\"app\"]) {\n    height: 230px;\n    font-family: Inter, sans-serif;\n  }\n\n  /*\n   * Handheld deviceoutput on a wide viewport: same layout as max-width 768 (LayoutCheck / skeleton).\n   */\n  :host([deviceoutput=\"mobile\"]) .teaser-container,\n  :host([data-deviceoutput=\"mobile\"]) .teaser-container,\n  :host([deviceoutput=\"tabletapp\"]) .teaser-container,\n  :host([data-deviceoutput=\"tabletapp\"]) .teaser-container,\n  :host([deviceoutput=\"app\"]) .teaser-container,\n  :host([data-deviceoutput=\"app\"]) .teaser-container {\n    display: flex;\n    flex-direction: row;\n    flex-wrap: wrap;\n    align-items: center;\n    text-align: center;\n    justify-content: center;\n    box-sizing: border-box;\n    padding-inline: clamp(1rem, 4vw, 1.5rem);\n    padding-block: 1rem;\n    column-gap: 1rem;\n    row-gap: 0;\n  }\n\n  :host([deviceoutput=\"mobile\"]) .teaser-discount-chip,\n  :host([data-deviceoutput=\"mobile\"]) .teaser-discount-chip,\n  :host([deviceoutput=\"tabletapp\"]) .teaser-discount-chip,\n  :host([data-deviceoutput=\"tabletapp\"]) .teaser-discount-chip,\n  :host([deviceoutput=\"app\"]) .teaser-discount-chip,\n  :host([data-deviceoutput=\"app\"]) .teaser-discount-chip {\n    position: static;\n    order: -1;\n    flex: 0 0 auto;\n    width: 100px;\n    margin: 0;\n    top: auto;\n    right: auto;\n  }\n\n  :host([deviceoutput=\"mobile\"]) .c24-teaser-headline,\n  :host([data-deviceoutput=\"mobile\"]) .c24-teaser-headline,\n  :host([deviceoutput=\"tabletapp\"]) .c24-teaser-headline,\n  :host([data-deviceoutput=\"tabletapp\"]) .c24-teaser-headline,\n  :host([deviceoutput=\"app\"]) .c24-teaser-headline,\n  :host([data-deviceoutput=\"app\"]) .c24-teaser-headline {\n    flex: 0 1 auto;\n    min-width: 0;\n    max-width: min(100%, calc(100% - 7.25rem));\n    margin: 0;\n    font-size: 20px;\n    line-height: 26px;\n  }\n\n  :host([deviceoutput=\"mobile\"]) .c24-teaser-headline__desktop,\n  :host([data-deviceoutput=\"mobile\"]) .c24-teaser-headline__desktop,\n  :host([deviceoutput=\"tabletapp\"]) .c24-teaser-headline__desktop,\n  :host([data-deviceoutput=\"tabletapp\"]) .c24-teaser-headline__desktop,\n  :host([deviceoutput=\"app\"]) .c24-teaser-headline__desktop,\n  :host([data-deviceoutput=\"app\"]) .c24-teaser-headline__desktop {\n    display: none;\n  }\n\n  :host([deviceoutput=\"mobile\"]) .c24-teaser-headline__mobile,\n  :host([data-deviceoutput=\"mobile\"]) .c24-teaser-headline__mobile,\n  :host([deviceoutput=\"tabletapp\"]) .c24-teaser-headline__mobile,\n  :host([data-deviceoutput=\"tabletapp\"]) .c24-teaser-headline__mobile,\n  :host([deviceoutput=\"app\"]) .c24-teaser-headline__mobile,\n  :host([data-deviceoutput=\"app\"]) .c24-teaser-headline__mobile {\n    display: flex;\n    flex-direction: column;\n    align-items: flex-start;\n    align-self: flex-start;\n    gap: 0;\n    width: 100%;\n  }\n\n  :host([deviceoutput=\"mobile\"]) .c24-teaser-headline__mobile-line,\n  :host([data-deviceoutput=\"mobile\"]) .c24-teaser-headline__mobile-line,\n  :host([deviceoutput=\"tabletapp\"]) .c24-teaser-headline__mobile-line,\n  :host([data-deviceoutput=\"tabletapp\"]) .c24-teaser-headline__mobile-line,\n  :host([deviceoutput=\"app\"]) .c24-teaser-headline__mobile-line,\n  :host([data-deviceoutput=\"app\"]) .c24-teaser-headline__mobile-line {\n    display: block;\n    font-size: inherit;\n    line-height: 26px;\n    min-height: 26px;\n  }\n\n  :host([deviceoutput=\"mobile\"]) .c24-teaser-subline,\n  :host([data-deviceoutput=\"mobile\"]) .c24-teaser-subline,\n  :host([deviceoutput=\"tabletapp\"]) .c24-teaser-subline,\n  :host([data-deviceoutput=\"tabletapp\"]) .c24-teaser-subline,\n  :host([deviceoutput=\"app\"]) .c24-teaser-subline,\n  :host([data-deviceoutput=\"app\"]) .c24-teaser-subline {\n    display: none;\n  }\n}\n`.trim();\n}\n","export function buildShadowMobileStyles(): string {\n    return `\n@media (max-width: 768px) {\n  :host {\n    height: 230px;\n    font-family: Inter, sans-serif;\n  }\n\n  /*\n   * Mobile: two-line headline (c24-teaser-headline__mobile-line) + chip; no subline.\n   */\n  .teaser-container {\n    flex-direction: row;\n    flex-wrap: wrap;\n    align-items: center;\n    justify-content: center;\n    text-align: start;\n    box-sizing: border-box;\n    padding-inline: clamp(1rem, 4vw, 1.5rem);\n    padding-block: 1rem;\n    column-gap: 1rem;\n    row-gap: 0;\n  }\n\n  .teaser-discount-chip {\n    position: static;\n    flex: 0 0 auto;\n    align-self: center;\n    width: 100px;\n    top: auto;\n    right: auto;\n  }\n\n  .c24-teaser-headline {\n    flex: 0 1 auto;\n    min-width: 0;\n    max-width: min(100%, calc(100% - 7.25rem));\n    margin: 0;\n    font-size: 20px;\n    line-height: 26px;\n  }\n\n  .c24-teaser-headline__desktop {\n    display: none;\n  }\n\n  .c24-teaser-headline__mobile {\n    display: flex;\n    flex-direction: column;\n    align-items: flex-start;\n    align-self: flex-start;\n    gap: 0;\n    width: 100%;\n  }\n\n  .c24-teaser-headline__mobile-line {\n    display: block;\n    font-size: inherit;\n    line-height: 26px;\n    min-height: 26px;\n  }\n\n  /* Mobile layout has no subline (desktop-only copy). */\n  .c24-teaser-subline {\n    display: none;\n  }\n}\n\n/* Compact layout for very narrow viewports (≤ 260px) */\n@media (max-width: 260px) {\n  .teaser-discount-chip {\n    width: 82px;\n  }\n\n  .c24-teaser-headline {\n    font-size: 17px;\n  }\n}\n`.trim();\n}\n","export function buildShadowTabletStyles(): string {\n    return `\n/* Between desktop and wide viewports, shrink the chip to match the tablet band (see 769–959). */\n@media (min-width: 960px) and (max-width: 1072px) {\n  .teaser-discount-chip {\n    width: 165px;\n    max-width: 165px;\n  }\n}\n\n/*\n * 769px–959px, desktop product copy: keep headline/subline as one text block on the left\n * and place the discount chip on the right, while preserving desktop/tablet sizes.\n * Handheld deviceoutput uses the (min-width: 769px) :host(… mobile …) block instead.\n */\n@media (max-width: 959px) and (min-width: 769px) {\n  :host(:not([deviceoutput=\"mobile\"]):not([data-deviceoutput=\"mobile\"]):not([deviceoutput=\"tabletapp\"]):not([data-deviceoutput=\"tabletapp\"]):not([deviceoutput=\"app\"]):not([data-deviceoutput=\"app\"])) .teaser-container {\n    display: flex;\n    flex-direction: row;\n    align-items: flex-start;\n    justify-content: center;\n    gap: 0;\n    min-height: 100%;\n    max-width: 100%;\n    margin: 0 auto;\n    padding: 0 0 16px;\n    box-sizing: border-box;\n  }\n\n  :host(:not([deviceoutput=\"mobile\"]):not([data-deviceoutput=\"mobile\"]):not([deviceoutput=\"tabletapp\"]):not([data-deviceoutput=\"tabletapp\"]):not([deviceoutput=\"app\"]):not([data-deviceoutput=\"app\"])) .teaser-text-block {\n    display: flex;\n    flex-direction: column;\n    flex: 0 1 auto;\n    min-width: 0;\n    margin: 50px 30px 0;\n  }\n\n  :host(:not([deviceoutput=\"mobile\"]):not([data-deviceoutput=\"mobile\"]):not([deviceoutput=\"tabletapp\"]):not([data-deviceoutput=\"tabletapp\"]):not([deviceoutput=\"app\"]):not([data-deviceoutput=\"app\"])) .c24-teaser-headline {\n    margin: 0;\n    text-align: center;\n  }\n\n  :host(:not([deviceoutput=\"mobile\"]):not([data-deviceoutput=\"mobile\"]):not([deviceoutput=\"tabletapp\"]):not([data-deviceoutput=\"tabletapp\"]):not([deviceoutput=\"app\"]):not([data-deviceoutput=\"app\"])) .c24-teaser-subline {\n    margin: 16px 0 0;\n    min-width: 0;\n    text-align: center;\n    width: auto;\n    max-width: none;\n    box-sizing: border-box;\n  }\n\n  :host(:not([deviceoutput=\"mobile\"]):not([data-deviceoutput=\"mobile\"]):not([deviceoutput=\"tabletapp\"]):not([data-deviceoutput=\"tabletapp\"]):not([deviceoutput=\"app\"]):not([data-deviceoutput=\"app\"])) .teaser-discount-chip {\n    position: static;\n    flex: 0 0 auto;\n    align-self: flex-start;\n    width: 165px;\n    max-width: 165px;\n    height: auto;\n    margin: 36px 30px 0 0;\n    top: auto;\n    right: auto;\n  }\n}\n`.trim();\n}\n","import {buildShadowCoreStyles} from \"./styles/core.js\";\nimport {buildShadowHandheldWideStyles} from \"./styles/handheld-wide.js\";\nimport {buildShadowMobileStyles} from \"./styles/mobile.js\";\nimport {buildShadowTabletStyles} from \"./styles/tablet.js\";\n\n/**\n * Shadow-only styles for the Möbel teaser (no innerHTML for the stylesheet).\n */\nexport const MOEBEL_TEASER_SHADOW_STYLES = [\n    buildShadowCoreStyles(),\n    buildShadowTabletStyles(),\n    buildShadowMobileStyles(),\n    buildShadowHandheldWideStyles(),\n].join(\"\\n\\n\");\n","import type {HomeClientComponent, HomeClientComponentElement, HomeClientComponentProps} from \"../../.check24-home/types/client\";\nimport discountChipImage from \"../assets/teaser_moebel_discount_chip.svg\";\nimport {\n    DEFAULT_PRODUCT_SLUG,\n    DISCOUNT_CHIP_INTRINSIC_HEIGHT,\n    DISCOUNT_CHIP_INTRINSIC_WIDTH,\n    getTeaserStrings,\n} from \"../shared/constants.js\";\nimport {buildMoebelCtaUrl} from \"./core/cta-url.js\";\nimport {normalizeDeviceOutput, normalizeLanguage} from \"./core/host-normalization.js\";\nimport {MOEBEL_TEASER_SHADOW_STYLES} from \"./moebel-teaser.shadow-styles.js\";\n\nclass MoebelTeaserClient extends HTMLElement implements HomeClientComponentElement {\n    onStyleLoaded?: (style: string) => void;\n    onRender?: () => void;\n\n    private shadow: ShadowRoot | null = null;\n    private hostProps: HomeClientComponentProps = this.createFallbackHostProps();\n    private ctaUrl = \"\";\n    private ctaText = \"\";\n    private ctaPillText = \"\";\n\n    static get observedAttributes(): string[] {\n        return [\"deviceoutput\", \"data-deviceoutput\", \"language\", \"user\", \"platform\", \"env\", \"sso-env\", \"product-slug\", \"system-time\"];\n    }\n\n    private getDeviceOutputAttributeValue(): string | undefined {\n        const fromPlain = this.getAttribute(\"deviceoutput\");\n        if (fromPlain) {\n            return fromPlain;\n        }\n        return this.getAttribute(\"data-deviceoutput\") ?? undefined;\n    }\n\n    private createFallbackHostProps(): HomeClientComponentProps {\n        const env = this.getAttribute(\"env\") ?? \"\";\n        const deviceOutput = normalizeDeviceOutput(this.getDeviceOutputAttributeValue());\n        const language = normalizeLanguage(this.getAttribute(\"language\") ?? this.getAttribute(\"lang\") ?? undefined);\n        const platform = this.getAttribute(\"platform\") === \"app\" ? \"app\" : \"web\";\n        const productSlug = this.getAttribute(\"product-slug\") ?? DEFAULT_PRODUCT_SLUG;\n        const ssoEnvRaw = this.getAttribute(\"sso-env\");\n        const ssoEnv = ssoEnvRaw === null || ssoEnvRaw === \"\" ? undefined : ssoEnvRaw;\n        const userRaw = this.getAttribute(\"user\");\n        let user: HomeClientComponentProps[\"user\"];\n        if (userRaw) {\n            try {\n                user = JSON.parse(userRaw) as HomeClientComponentProps[\"user\"];\n            } catch {\n                user = undefined;\n            }\n        }\n\n        return {\n            productSlug,\n            deviceOutput,\n            language,\n            platform,\n            user,\n            env,\n            ssoEnv,\n        };\n    }\n\n    private getValidateAttributes(): ((attributes: NamedNodeMap) => HomeClientComponentProps) | undefined {\n        if (typeof globalThis === \"undefined\") {\n            return undefined;\n        }\n\n        const c24Home = (globalThis as unknown as {C24Home?: {validateAttributes?: (attributes: NamedNodeMap) => HomeClientComponentProps}})\n            .C24Home;\n\n        if (!c24Home || typeof c24Home.validateAttributes !== \"function\") {\n            return undefined;\n        }\n\n        return c24Home.validateAttributes.bind(c24Home) as (attributes: NamedNodeMap) => HomeClientComponentProps;\n    }\n\n    private readHostProps(): HomeClientComponentProps {\n        const validate = this.getValidateAttributes();\n        if (validate) {\n            return validate(this.attributes);\n        }\n\n        return this.createFallbackHostProps();\n    }\n\n    private syncFromHost(): void {\n        const hostProps = this.readHostProps();\n        const normalizedLanguage = normalizeLanguage(hostProps.language);\n        this.hostProps = {\n            productSlug: hostProps.productSlug,\n            deviceOutput: hostProps.deviceOutput,\n            language: normalizedLanguage,\n            platform: hostProps.platform,\n            user: hostProps.user,\n            env: hostProps.env,\n            ssoEnv: hostProps.ssoEnv,\n        };\n        this.ctaUrl = buildMoebelCtaUrl(this.hostProps.env ?? \"\");\n        const teaserStrings = getTeaserStrings(normalizedLanguage);\n        this.ctaText = teaserStrings.ctaText;\n        this.ctaPillText = teaserStrings.ctaPill;\n        this.setAttribute(\"lang\", normalizedLanguage);\n    }\n\n    attributeChangedCallback(_name: string, oldValue: string, newValue: string): void {\n        if (oldValue === newValue) {\n            return;\n        }\n\n        this.syncFromHost();\n\n        if (this.shadow) {\n            this.render();\n        }\n    }\n\n    connectedCallback(): void {\n        if (!this.shadow) {\n            this.shadow = this.attachShadow({mode: \"closed\"});\n        }\n\n        this.syncFromHost();\n        this.render();\n        this.dispatchBackgroundUpdate();\n    }\n\n    private dispatchBackgroundUpdate(): void {\n        this.dispatchEvent(\n            new CustomEvent(\"c24-background-update\", {\n                bubbles: true,\n                detail: {\n                    productSlug: this.hostProps.productSlug,\n                    styles: {},\n                },\n            }),\n        );\n    }\n\n    private render(): void {\n        if (!this.shadow) {\n            return;\n        }\n\n        const teaserStrings = getTeaserStrings(normalizeLanguage(this.hostProps.language));\n        const shadow = this.shadow;\n\n        while (shadow.firstChild) {\n            shadow.removeChild(shadow.firstChild);\n        }\n\n        const style = document.createElement(\"style\");\n        style.textContent = MOEBEL_TEASER_SHADOW_STYLES;\n        shadow.append(style);\n\n        const container = document.createElement(\"div\");\n        container.className = \"teaser-container\";\n\n        const discountChip = document.createElement(\"img\");\n        discountChip.className = \"teaser-discount-chip\";\n        discountChip.src = discountChipImage;\n        discountChip.alt = \"\";\n        discountChip.setAttribute(\"aria-hidden\", \"true\");\n        discountChip.width = DISCOUNT_CHIP_INTRINSIC_WIDTH;\n        discountChip.height = DISCOUNT_CHIP_INTRINSIC_HEIGHT;\n\n        const teaserLink = document.createElement(\"a\");\n        teaserLink.className = \"teaser-link\";\n        teaserLink.href = this.ctaUrl;\n        teaserLink.setAttribute(\"aria-label\", this.ctaText);\n        teaserLink.tabIndex = -1;\n\n        const headline = document.createElement(\"h2\");\n        headline.className = \"c24-teaser-headline\";\n        const headlineDesktop = document.createElement(\"span\");\n        headlineDesktop.className = \"c24-teaser-headline__desktop\";\n        headlineDesktop.textContent = teaserStrings.headlineDesktop;\n        const headlineMobile = document.createElement(\"span\");\n        headlineMobile.className = \"c24-teaser-headline__mobile\";\n        teaserStrings.headlineMobileLines.forEach((line) => {\n            const lineEl = document.createElement(\"span\");\n            lineEl.className = \"c24-teaser-headline__mobile-line\";\n            lineEl.textContent = line;\n            headlineMobile.append(lineEl);\n        });\n        headline.append(headlineDesktop, headlineMobile);\n\n        const subline = document.createElement(\"p\");\n        subline.className = \"c24-teaser-subline\";\n        const sublineDesktop = document.createElement(\"span\");\n        sublineDesktop.className = \"c24-teaser-subline__desktop\";\n        sublineDesktop.textContent = teaserStrings.sublineDesktop;\n        subline.append(sublineDesktop);\n        const textBlock = document.createElement(\"div\");\n        textBlock.className = \"teaser-text-block\";\n        textBlock.append(headline, subline);\n\n        const yellowBox = document.createElement(\"div\");\n        yellowBox.className = \"c24-yellow-box\";\n\n        const columns = document.createElement(\"div\");\n        columns.className = \"c24-yellow-box-2-columns\";\n\n        const textWrapper = document.createElement(\"div\");\n        textWrapper.className = \"c24-yellow-text-box-wrapper\";\n\n        const yellowText = document.createElement(\"div\");\n        yellowText.className = \"c24-yellow-box-text\";\n        yellowText.textContent = this.ctaText;\n\n        const pill = document.createElement(\"a\");\n        pill.className = \"c24-yellow-box-button-link\";\n        pill.href = this.ctaUrl;\n        pill.setAttribute(\"aria-label\", `${this.ctaPillText} (${this.ctaText})`);\n        pill.textContent = this.ctaPillText;\n\n        textWrapper.append(yellowText);\n        columns.append(textWrapper, pill);\n        yellowBox.append(columns);\n\n        container.append(teaserLink, textBlock, yellowBox, discountChip);\n        shadow.append(container);\n    }\n}\n\nconst homeClientComponent: HomeClientComponent = {\n    component: MoebelTeaserClient,\n};\n\nconst TEASER_CUSTOM_ELEMENT_TAG = \"shofur-teaser-summer-deals\";\nconst TEASER_SKELETON_SELECTOR = \".c24-shofur-teaser-skeleton\";\n\n/**\n * Replace server-rendered skeleton nodes with the real custom element (same pattern as DSL demo).\n * Attributes on the skeleton element are copied onto the host element.\n */\nfunction replaceSkeletonWithComponent(): void {\n    if (typeof document === \"undefined\") {\n        return;\n    }\n\n    const skeletons = document.querySelectorAll(TEASER_SKELETON_SELECTOR);\n    skeletons.forEach((el) => {\n        if (el.closest(TEASER_CUSTOM_ELEMENT_TAG)) {\n            return;\n        }\n\n        if (!(el instanceof HTMLElement)) {\n            return;\n        }\n\n        const replacement = document.createElement(TEASER_CUSTOM_ELEMENT_TAG);\n        for (const attr of Array.from(el.attributes)) {\n            replacement.setAttribute(attr.name, attr.value);\n        }\n\n        el.replaceWith(replacement);\n    });\n}\n\n/**\n * Register the element, then upgrade skeleton placeholders.\n * Holding `SlugTagMatchStep` requires `customElements.define(\"…\", …)` with a string literal tag\n * matching manifest `slug` — keep the define call literal below.\n */\nfunction bootstrapMoebelTeaserClient(): void {\n    if (typeof customElements === \"undefined\") {\n        return;\n    }\n\n    if (!customElements.get(\"shofur-teaser-summer-deals\")) {\n        customElements.define(\"shofur-teaser-summer-deals\", MoebelTeaserClient);\n    }\n\n    replaceSkeletonWithComponent();\n}\n\nif (typeof document !== \"undefined\" && document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", bootstrapMoebelTeaserClient);\n} else {\n    bootstrapMoebelTeaserClient();\n}\n\nexport default homeClientComponent;\n"],"names":["discountChipImage","DEFAULT_PRODUCT_SLUG","GERMAN_TEASER_STRINGS","ENGLISH_TEASER_STRINGS","TEASER_DICTIONARY","getTeaserStrings","language","PROD_DOMAIN","NON_PROD_DOMAIN","CTA_URL_TEMPLATE","isNonProdEnv","env","buildMoebelCtaUrl","domain","LANGUAGES","normalizeLanguage","value","normalizeDeviceOutput","buildShadowCoreStyles","buildShadowHandheldWideStyles","buildShadowMobileStyles","buildShadowTabletStyles","MOEBEL_TEASER_SHADOW_STYLES","MoebelTeaserClient","__publicField","fromPlain","deviceOutput","platform","productSlug","ssoEnvRaw","ssoEnv","userRaw","user","c24Home","validate","hostProps","normalizedLanguage","teaserStrings","_name","oldValue","newValue","shadow","style","container","discountChip","teaserLink","headline","headlineDesktop","headlineMobile","line","lineEl","subline","sublineDesktop","textBlock","yellowBox","columns","textWrapper","yellowText","pill","homeClientComponent","TEASER_CUSTOM_ELEMENT_TAG","TEASER_SKELETON_SELECTOR","replaceSkeletonWithComponent","el","replacement","attr","bootstrapMoebelTeaserClient"],"mappings":";;;AAAA,MAAAA,IAAe,+qnBCMFC,IAAuB;AAuBpC,MAAMC,IAAuC;AAAA,EACzC,iBAAiB;AAAA,EACjB,qBAAqB,CAAC,eAAe,cAAc;AAAA,EACnD,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,SAAS;AACb,GAEMC,IAAwC;AAAA,EAC1C,iBAAiB;AAAA,EACjB,qBAAqB,CAAC,mBAAmB,cAAc;AAAA,EACvD,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,SAAS;AACb,GAEMC,IAAqD;AAAA,EACvD,SAASF;AAAA,EACT,SAASA;AAAA,EACT,SAASC;AAAA,EACT,SAASA;AAAA,EACT,SAASA;AACb;AAEO,SAASE,EAAiBC,GAAmC;AAChE,SAAOF,EAAkBE,CAAQ;AACrC;ACvDA,MAAMC,IAAc,qBACdC,IAAkB,0BAClBC,IAAmB;AAElB,SAASC,EAAaC,GAAsB;AAC/C,SAAO,CAAC,OAAO,OAAO,MAAM,EAAE,SAASA,CAAG;AAC9C;AAEO,SAASC,EAAkBD,GAAqB;AACnD,QAAME,IAASH,EAAaC,CAAG,IAAIH,IAAkBD;AACrD,SAAOE,EAAiB,QAAQ,YAAYI,CAAM;AACtD;ACTA,MAAMC,IAAiC,CAAC,SAAS,SAAS,SAAS,SAAS,OAAO;AAE5E,SAASC,EAAkBC,GAAqC;AACnE,SAAIA,KAAUF,EAAgC,SAASE,CAAK,IACjDA,IAGJ;AACX;AAIO,SAASC,EAAsBD,GAAmD;AACrF,SAAIA,MAAU,YAAYA,MAAU,eAAeA,MAAU,QAClDA,IAGJ;AACX;AClBO,SAASE,IAAgC;AAC5C,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAyLT,KAAA;AACF;AC7LO,SAASC,IAAwC;AACpD,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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"}