{"id":698419,"date":"2026-06-01T13:57:12","date_gmt":"2026-06-01T11:57:12","guid":{"rendered":"https:\/\/www.dynseo.com\/prixcoupdecoeur\/"},"modified":"2026-06-01T13:57:12","modified_gmt":"2026-06-01T11:57:12","slug":"herzpreis-topculture","status":"publish","type":"page","link":"https:\/\/www.dynseo.com\/de\/herzpreis-topculture\/","title":{"rendered":"Herzpreis &#8211; TOPCULTURE"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8220;1&#8243; _builder_version=&#8220;4.27.6&#8243; _module_preset=&#8220;default&#8220; custom_padding=&#8220;0px|||||&#8220; global_colors_info=&#8220;{}&#8220;][et_pb_row _builder_version=&#8220;4.27.6&#8243; _module_preset=&#8220;default&#8220; width=&#8220;100%&#8220; max_width=&#8220;2019px&#8220; custom_padding=&#8220;0px|||||&#8220; global_colors_info=&#8220;{}&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.27.6&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220;][et_pb_code _builder_version=&#8220;4.27.6&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220;]<!-- ============================================================<!-- [et_pb_line_break_holder] -->     DYNSEO \u2014 TOP CULTURE 2026 \u2014 HEADER FOTOWETTBEWERB<!-- [et_pb_line_break_holder] -->     In ein Divi &#8222;Code&#8220;-Modul oben auf der Seite einf\u00fcgen<!-- [et_pb_line_break_holder] -->     ============================================================ &#8211;><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"><!-- [et_pb_line_break_holder] --><link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin><!-- [et_pb_line_break_holder] --><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@700;800;900&#038;family=Poppins:wght@400;500;600&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->.dtc-header-wrap{font-family:'Poppins',sans-serif;margin:0;padding:0;line-height:1;}<!-- [et_pb_line_break_holder] -->.dtc-header-wrap *{box-sizing:border-box;margin:0;padding:0;}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 HERO \u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->.dtc-hero{<!-- [et_pb_line_break_holder] -->    background:linear-gradient(135deg,#a9e2e4 0%,#5e5ed7 55%,#3a3aaa 100%);<!-- [et_pb_line_break_holder] -->    padding:60px 24px 90px;<!-- [et_pb_line_break_holder] -->    position:relative;<!-- [et_pb_line_break_holder] -->    overflow:hidden;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-hero::before{<!-- [et_pb_line_break_holder] -->    content:'';position:absolute;top:-100px;right:-100px;<!-- [et_pb_line_break_holder] -->    width:500px;height:500px;border-radius:50%;<!-- [et_pb_line_break_holder] -->    background:rgba(255,236,167,.07);pointer-events:none;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-hero::after{<!-- [et_pb_line_break_holder] -->    content:'';position:absolute;bottom:-80px;left:-60px;<!-- [et_pb_line_break_holder] -->    width:350px;height:350px;border-radius:50%;<!-- [et_pb_line_break_holder] -->    background:rgba(255,255,255,.04);pointer-events:none;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-hero-inner{<!-- [et_pb_line_break_holder] -->    max-width:1080px;margin:0 auto;<!-- [et_pb_line_break_holder] -->    display:flex;flex-wrap:wrap;<!-- [et_pb_line_break_holder] -->    align-items:center;gap:48px;<!-- [et_pb_line_break_holder] -->    position:relative;z-index:2;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-hero-left{flex:1;min-width:280px;}<!-- [et_pb_line_break_holder] -->.dtc-hero-right{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:16px;}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* Pill *\/<!-- [et_pb_line_break_holder] -->.dtc-pill{<!-- [et_pb_line_break_holder] -->    display:inline-flex;align-items:center;gap:8px;<!-- [et_pb_line_break_holder] -->    background:rgba(255,236,167,.18);<!-- [et_pb_line_break_holder] -->    border:1px solid rgba(255,236,167,.35);<!-- [et_pb_line_break_holder] -->    color:#ffeca7;<!-- [et_pb_line_break_holder] -->    font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;<!-- [et_pb_line_break_holder] -->    letter-spacing:1.5px;text-transform:uppercase;<!-- [et_pb_line_break_holder] -->    padding:8px 18px;border-radius:30px;<!-- [et_pb_line_break_holder] -->    margin-bottom:20px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* Titre *\/<!-- [et_pb_line_break_holder] -->.dtc-hero-title{<!-- [et_pb_line_break_holder] -->    font-family:'Montserrat',sans-serif;<!-- [et_pb_line_break_holder] -->    font-size:clamp(30px,5vw,54px);<!-- [et_pb_line_break_holder] -->    font-weight:900;<!-- [et_pb_line_break_holder] -->    color:#fff;<!-- [et_pb_line_break_holder] -->    line-height:1.15;<!-- [et_pb_line_break_holder] -->    margin-bottom:8px;<!-- [et_pb_line_break_holder] -->    text-shadow:0 2px 16px rgba(0,0,0,.15);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-hero-title .dtc-accent{<!-- [et_pb_line_break_holder] -->    display:inline-block;<!-- [et_pb_line_break_holder] -->    background:#ffeca7;<!-- [et_pb_line_break_holder] -->    color:#5e5ed7;<!-- [et_pb_line_break_holder] -->    border-radius:12px;<!-- [et_pb_line_break_holder] -->    padding:2px 18px 5px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-hero-sub{<!-- [et_pb_line_break_holder] -->    font-family:'Montserrat',sans-serif;<!-- [et_pb_line_break_holder] -->    font-size:clamp(16px,2.5vw,22px);<!-- [et_pb_line_break_holder] -->    font-weight:800;<!-- [et_pb_line_break_holder] -->    color:rgba(255,255,255,.9);<!-- [et_pb_line_break_holder] -->    margin-bottom:20px;<!-- [et_pb_line_break_holder] -->    letter-spacing:.3px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* Description *\/<!-- [et_pb_line_break_holder] -->.dtc-hero-desc{<!-- [et_pb_line_break_holder] -->    font-size:15px;color:rgba(255,255,255,.82);<!-- [et_pb_line_break_holder] -->    line-height:1.8;max-width:520px;margin-bottom:28px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-hero-desc strong{color:#fff;font-weight:600;}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* Drapeaux *\/<!-- [et_pb_line_break_holder] -->.dtc-flags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px;}<!-- [et_pb_line_break_holder] -->.dtc-flag{<!-- [et_pb_line_break_holder] -->    display:flex;flex-direction:column;align-items:center;gap:4px;<!-- [et_pb_line_break_holder] -->    background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);<!-- [et_pb_line_break_holder] -->    border-radius:10px;padding:8px 10px;<!-- [et_pb_line_break_holder] -->    transition:background .2s,transform .2s;cursor:default;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-flag:hover{background:rgba(255,255,255,.22);transform:translateY(-3px);}<!-- [et_pb_line_break_holder] -->.dtc-flag-emoji{font-size:22px;line-height:1;}<!-- [et_pb_line_break_holder] -->.dtc-flag-name{font-size:9px;font-weight:700;color:rgba(255,255,255,.75);text-transform:uppercase;letter-spacing:.5px;}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* CTAs *\/<!-- [et_pb_line_break_holder] -->.dtc-ctas{display:flex;flex-wrap:wrap;gap:12px;}<!-- [et_pb_line_break_holder] -->.dtc-btn{<!-- [et_pb_line_break_holder] -->    font-family:'Montserrat',sans-serif;font-size:14px;font-weight:700;<!-- [et_pb_line_break_holder] -->    padding:13px 28px;border-radius:30px;border:none;cursor:pointer;<!-- [et_pb_line_break_holder] -->    text-decoration:none;display:inline-block;text-align:center;<!-- [et_pb_line_break_holder] -->    transition:all .25s ease;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-btn-primary{<!-- [et_pb_line_break_holder] -->    background:#ffeca7;color:#5e5ed7;<!-- [et_pb_line_break_holder] -->    box-shadow:0 4px 18px rgba(255,236,167,.3);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-btn-primary:hover{background:#ffdb7a;transform:translateY(-2px);box-shadow:0 8px 28px rgba(255,236,167,.45);}<!-- [et_pb_line_break_holder] -->.dtc-btn-outline{<!-- [et_pb_line_break_holder] -->    background:rgba(255,255,255,.15);color:#fff;<!-- [et_pb_line_break_holder] -->    border:2px solid rgba(255,255,255,.5);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-btn-outline:hover{background:rgba(255,255,255,.25);border-color:#fff;transform:translateY(-2px);}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* Troph\u00e9e illustratif \u00e0 droite *\/<!-- [et_pb_line_break_holder] -->.dtc-trophy-card{<!-- [et_pb_line_break_holder] -->    background:rgba(255,255,255,.12);<!-- [et_pb_line_break_holder] -->    border:1px solid rgba(255,255,255,.2);<!-- [et_pb_line_break_holder] -->    border-radius:20px;padding:24px 28px;<!-- [et_pb_line_break_holder] -->    text-align:center;min-width:180px;<!-- [et_pb_line_break_holder] -->    backdrop-filter:blur(4px);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-trophy-emoji{font-size:52px;line-height:1;display:block;margin-bottom:10px;}<!-- [et_pb_line_break_holder] -->.dtc-trophy-label{<!-- [et_pb_line_break_holder] -->    font-family:'Montserrat',sans-serif;font-size:13px;font-weight:800;<!-- [et_pb_line_break_holder] -->    color:#ffeca7;text-transform:uppercase;letter-spacing:1px;<!-- [et_pb_line_break_holder] -->    display:block;margin-bottom:4px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-trophy-sub{font-size:12px;color:rgba(255,255,255,.7);}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* Compteur de votes *\/<!-- [et_pb_line_break_holder] -->.dtc-vote-counter{<!-- [et_pb_line_break_holder] -->    background:rgba(255,236,167,.15);<!-- [et_pb_line_break_holder] -->    border:1px solid rgba(255,236,167,.3);<!-- [et_pb_line_break_holder] -->    border-radius:14px;padding:14px 20px;<!-- [et_pb_line_break_holder] -->    display:flex;align-items:center;gap:10px;<!-- [et_pb_line_break_holder] -->    min-width:180px;justify-content:center;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-vote-counter-num{<!-- [et_pb_line_break_holder] -->    font-family:'Montserrat',sans-serif;font-size:28px;font-weight:900;<!-- [et_pb_line_break_holder] -->    color:#ffeca7;line-height:1;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-vote-counter-txt{font-size:12px;color:rgba(255,255,255,.75);line-height:1.4;}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 COURBE \u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->.dtc-curve{<!-- [et_pb_line_break_holder] -->    height:70px;background:#fff;<!-- [et_pb_line_break_holder] -->    border-radius:50% 50% 0 0;<!-- [et_pb_line_break_holder] -->    margin-top:-2px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 BANDE INFO \u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->.dtc-infoband{<!-- [et_pb_line_break_holder] -->    background:#fff;<!-- [et_pb_line_break_holder] -->    padding:0 24px 48px;<!-- [et_pb_line_break_holder] -->    margin-top:-2px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-infoband-inner{<!-- [et_pb_line_break_holder] -->    max-width:1080px;margin:0 auto;<!-- [et_pb_line_break_holder] -->    display:grid;<!-- [et_pb_line_break_holder] -->    grid-template-columns:repeat(auto-fit,minmax(200px,1fr));<!-- [et_pb_line_break_holder] -->    gap:20px;<!-- [et_pb_line_break_holder] -->    margin-top:-34px;<!-- [et_pb_line_break_holder] -->    position:relative;z-index:5;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-infocard{<!-- [et_pb_line_break_holder] -->    background:#fff;<!-- [et_pb_line_break_holder] -->    border-radius:18px;<!-- [et_pb_line_break_holder] -->    padding:22px 20px;<!-- [et_pb_line_break_holder] -->    box-shadow:0 4px 24px rgba(94,94,215,.12);<!-- [et_pb_line_break_holder] -->    display:flex;align-items:flex-start;gap:14px;<!-- [et_pb_line_break_holder] -->    transition:transform .25s,box-shadow .25s;<!-- [et_pb_line_break_holder] -->    border:1px solid rgba(94,94,215,.08);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-infocard:hover{transform:translateY(-4px);box-shadow:0 10px 36px rgba(94,94,215,.18);}<!-- [et_pb_line_break_holder] -->.dtc-infocard-icon{<!-- [et_pb_line_break_holder] -->    width:46px;height:46px;border-radius:13px;<!-- [et_pb_line_break_holder] -->    display:flex;align-items:center;justify-content:center;<!-- [et_pb_line_break_holder] -->    font-size:22px;flex-shrink:0;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-ic-blue{background:#e2e2f9;}<!-- [et_pb_line_break_holder] -->.dtc-ic-mint{background:#d9f4f5;}<!-- [et_pb_line_break_holder] -->.dtc-ic-yellow{background:#fff8d6;}<!-- [et_pb_line_break_holder] -->.dtc-ic-pink{background:#fde0e8;}<!-- [et_pb_line_break_holder] -->.dtc-infocard-body{}<!-- [et_pb_line_break_holder] -->.dtc-infocard-label{<!-- [et_pb_line_break_holder] -->    font-size:11px;font-weight:700;text-transform:uppercase;<!-- [et_pb_line_break_holder] -->    letter-spacing:1px;color:#94a3b8;margin-bottom:4px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-infocard-value{<!-- [et_pb_line_break_holder] -->    font-family:'Montserrat',sans-serif;font-size:15px;font-weight:900;<!-- [et_pb_line_break_holder] -->    color:#1a1a2e;line-height:1.3;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 EXPLICATION CONCOURS PHOTO \u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->.dtc-explain{<!-- [et_pb_line_break_holder] -->    background:linear-gradient(135deg,#f0f0ff 0%,#e8f4f5 100%);<!-- [et_pb_line_break_holder] -->    padding:52px 24px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-explain-inner{max-width:1080px;margin:0 auto;}<!-- [et_pb_line_break_holder] -->.dtc-explain-title{<!-- [et_pb_line_break_holder] -->    font-family:'Montserrat',sans-serif;font-size:clamp(20px,3vw,30px);font-weight:900;<!-- [et_pb_line_break_holder] -->    color:#1a1a2e;text-align:center;margin-bottom:8px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-explain-title .dtc-hl{<!-- [et_pb_line_break_holder] -->    display:inline-block;background:#ffb600;color:#fff;<!-- [et_pb_line_break_holder] -->    border-radius:30px;padding:4px 18px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-explain-desc{<!-- [et_pb_line_break_holder] -->    text-align:center;font-size:15px;color:#64748b;<!-- [et_pb_line_break_holder] -->    max-width:680px;margin:0 auto 40px;line-height:1.7;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-steps{<!-- [et_pb_line_break_holder] -->    display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));<!-- [et_pb_line_break_holder] -->    gap:20px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-step{<!-- [et_pb_line_break_holder] -->    background:#fff;border-radius:18px;padding:26px 22px;<!-- [et_pb_line_break_holder] -->    position:relative;overflow:hidden;<!-- [et_pb_line_break_holder] -->    box-shadow:0 3px 16px rgba(94,94,215,.09);<!-- [et_pb_line_break_holder] -->    border:1px solid rgba(94,94,215,.07);<!-- [et_pb_line_break_holder] -->    transition:transform .25s,box-shadow .25s;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-step:hover{transform:translateY(-5px);box-shadow:0 10px 32px rgba(94,94,215,.16);}<!-- [et_pb_line_break_holder] -->.dtc-step-num{<!-- [et_pb_line_break_holder] -->    font-family:'Montserrat',sans-serif;<!-- [et_pb_line_break_holder] -->    font-size:48px;font-weight:900;<!-- [et_pb_line_break_holder] -->    color:rgba(94,94,215,.08);<!-- [et_pb_line_break_holder] -->    position:absolute;top:-6px;right:14px;<!-- [et_pb_line_break_holder] -->    line-height:1;pointer-events:none;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-step-icon{<!-- [et_pb_line_break_holder] -->    width:52px;height:52px;border-radius:14px;<!-- [et_pb_line_break_holder] -->    display:flex;align-items:center;justify-content:center;<!-- [et_pb_line_break_holder] -->    font-size:24px;margin-bottom:14px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-step h3{<!-- [et_pb_line_break_holder] -->    font-family:'Montserrat',sans-serif;font-size:16px;font-weight:900;<!-- [et_pb_line_break_holder] -->    color:#1a1a2e;margin-bottom:8px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-step p{font-size:13px;color:#64748b;line-height:1.65;}<!-- [et_pb_line_break_holder] -->.dtc-step-badge{<!-- [et_pb_line_break_holder] -->    display:inline-block;margin-top:12px;<!-- [et_pb_line_break_holder] -->    font-family:'Montserrat',sans-serif;font-size:11px;font-weight:800;<!-- [et_pb_line_break_holder] -->    padding:5px 14px;border-radius:20px;letter-spacing:.5px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 R\u00c8GLES RAPIDES \u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->.dtc-rules{<!-- [et_pb_line_break_holder] -->    background:#1a1a2e;<!-- [et_pb_line_break_holder] -->    padding:40px 24px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-rules-inner{<!-- [et_pb_line_break_holder] -->    max-width:1080px;margin:0 auto;<!-- [et_pb_line_break_holder] -->    display:flex;flex-wrap:wrap;align-items:center;gap:32px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-rules-title{<!-- [et_pb_line_break_holder] -->    font-family:'Montserrat',sans-serif;font-size:18px;font-weight:900;<!-- [et_pb_line_break_holder] -->    color:#ffeca7;flex:0 0 auto;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-rules-list{<!-- [et_pb_line_break_holder] -->    display:flex;flex-wrap:wrap;gap:10px;flex:1;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-rule-chip{<!-- [et_pb_line_break_holder] -->    display:flex;align-items:center;gap:7px;<!-- [et_pb_line_break_holder] -->    background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);<!-- [et_pb_line_break_holder] -->    border-radius:30px;padding:8px 16px;<!-- [et_pb_line_break_holder] -->    font-size:13px;color:rgba(255,255,255,.85);font-weight:500;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.dtc-rule-chip span{font-size:16px;}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 RESPONSIVE \u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->@media(max-width:680px){<!-- [et_pb_line_break_holder] -->    .dtc-hero{padding:40px 16px 70px;}<!-- [et_pb_line_break_holder] -->    .dtc-hero-right{width:100%;}<!-- [et_pb_line_break_holder] -->    .dtc-trophy-card,.dtc-vote-counter{min-width:auto;flex:1;}<!-- [et_pb_line_break_holder] -->    .dtc-hero-right{flex-direction:row;justify-content:center;}<!-- [et_pb_line_break_holder] -->    .dtc-infoband-inner{grid-template-columns:1fr 1fr;}<!-- [et_pb_line_break_holder] -->    .dtc-steps{grid-template-columns:1fr;}<!-- [et_pb_line_break_holder] -->    .dtc-rules-inner{flex-direction:column;align-items:flex-start;gap:16px;}<!-- [et_pb_line_break_holder] -->    .dtc-explain{padding:36px 16px;}<!-- [et_pb_line_break_holder] -->    .dtc-rules{padding:30px 16px;}<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media(max-width:420px){<!-- [et_pb_line_break_holder] -->    .dtc-infoband-inner{grid-template-columns:1fr;}<!-- [et_pb_line_break_holder] -->    .dtc-flags .dtc-flag-name{display:none;}<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"dtc-header-wrap\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- \u2550\u2550 HERO \u2550\u2550 --><!-- [et_pb_line_break_holder] -->    <\/p>\n<section class=\"dtc-hero\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"dtc-hero-inner\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"dtc-hero-left\"><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-pill\">\ud83d\udcf8 Publikumspreis 2026<\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/p>\n<h1 class=\"dtc-hero-title\"><!-- [et_pb_line_break_holder] -->                    Fotowettbewerb<!\u2013- [et_pb_br_holder] -\u2013><!-- [et_pb_line_break_holder] -->                    <span class=\"dtc-accent\">TOP CULTURE<\/span><!-- [et_pb_line_break_holder] -->                <\/h1>\n<p><!-- [et_pb_line_break_holder] -->                <pee class=\"dtc-hero-sub\">Stimmen Sie f\u00fcr Ihre Lieblingsresidenzen ab!<\/pee><!-- [et_pb_line_break_holder] -->                <pee class=\"dtc-hero-desc\"><!-- [et_pb_line_break_holder] -->                    Jeder Teilnehmer kann seine sch\u00f6nsten Fotos der Ausgabe 2026 einreichen.<!\u2013- [et_pb_br_holder] -\u2013><!-- [et_pb_line_break_holder] -->                    <strong>Jeder stimmt ab. Nur ein gro\u00dfer Gewinner. Ein Abonnement f\u00fcr das Programm seiner Wahl!<\/strong><!-- [et_pb_line_break_holder] -->                <\/pee><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-flags\"><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-flag\"><span class=\"dtc-flag-emoji\">\ud83c\uddeb\ud83c\uddf7<\/span><span class=\"dtc-flag-name\">Frankreich<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-flag\"><span class=\"dtc-flag-emoji\">\ud83c\uddee\ud83c\uddf9<\/span><span class=\"dtc-flag-name\">Italien<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-flag\"><span class=\"dtc-flag-emoji\">\ud83c\uddea\ud83c\uddf8<\/span><span class=\"dtc-flag-name\">Spanien<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-flag\"><span class=\"dtc-flag-emoji\">\ud83c\udde9\ud83c\uddea<\/span><span class=\"dtc-flag-name\">Deutschland<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-flag\"><span class=\"dtc-flag-emoji\">\ud83c\udde7\ud83c\uddea<\/span><span class=\"dtc-flag-name\">Belgien<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-flag\"><span class=\"dtc-flag-emoji\">\ud83c\udde8\ud83c\udded<\/span><span class=\"dtc-flag-name\">Schweiz<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-flag\"><span class=\"dtc-flag-emoji\">\ud83c\uddf1\ud83c\uddfa<\/span><span class=\"dtc-flag-name\">Luxem.<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-ctas\"><!-- [et_pb_line_break_holder] -->                    <a href=\"#dtc-app\" class=\"dtc-btn dtc-btn-primary\">\u2764\ufe0f Jetzt abstimmen<\/a><!-- [et_pb_line_break_holder] -->                    <a href=\"#dtc-app\" class=\"dtc-btn dtc-btn-outline\" onclick=\"document.querySelector('.dtc-tab:last-child')&#038;&#038;document.querySelector('.dtc-tab:last-child').click();return true;\">\ud83d\udce4 Mein Foto einreichen<\/a><!-- [et_pb_line_break_holder] -->                <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"dtc-hero-right\"><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-trophy-card\"><!-- [et_pb_line_break_holder] -->                    <span class=\"dtc-trophy-emoji\">\ud83c\udfc6<\/span><!-- [et_pb_line_break_holder] -->                    <span class=\"dtc-trophy-label\">Publikumspreis<\/span><!-- [et_pb_line_break_holder] -->                    <span class=\"dtc-trophy-sub\">Abonnement f\u00fcr das Programm seiner Wahl<\/span><!-- [et_pb_line_break_holder] -->                <\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-vote-counter\"><!-- [et_pb_line_break_holder] -->                    <span class=\"dtc-vote-counter-num\">\u2764\ufe0f<\/span><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-vote-counter-txt\"><!-- [et_pb_line_break_holder] -->                        <strong style=\"color:#fff;font-size:13px;display:block;\">Kostenlose Abstimmung<\/strong><!-- [et_pb_line_break_holder] -->                        1 Stimme \/ Tag \/ E-Mail<!-- [et_pb_line_break_holder] -->                    <\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/section>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- \u2550\u2550 COURBE \u2550\u2550 --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"dtc-curve\"><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- \u2550\u2550 BANDE INFO \u2550\u2550 --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"dtc-infoband\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"dtc-infoband-inner\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"dtc-infocard\"><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-infocard-icon dtc-ic-yellow\">\ud83d\udcc5<\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-infocard-body\"><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-infocard-label\">Abstimmungsdaten<\/div>\n<p><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-infocard-value\">22. Juni \u2014 17. Juli 2026<\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"dtc-infocard\"><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-infocard-icon dtc-ic-blue\">\ud83d\uddf3\ufe0f<\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-infocard-body\"><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-infocard-label\">H\u00e4ufigkeit<\/div>\n<p><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-infocard-value\">1 kostenlose Stimme pro Tag<\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"dtc-infocard\"><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-infocard-icon dtc-ic-pink\">\ud83c\udf81<\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-infocard-body\"><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-infocard-label\">Belohnung f\u00fcr W\u00e4hler<\/div>\n<p><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-infocard-value\">10\u20ac Gutschein geschenkt<\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"dtc-infocard\"><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-infocard-icon dtc-ic-mint\">\ud83c\udf0d<\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-infocard-body\"><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-infocard-label\">Teilnehmende L\u00e4nder<\/div>\n<p><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-infocard-value\">7 L\u00e4nder, 1 einziger gro\u00dfer Gewinner<\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- \u2550\u2550 COMMENT \u00c7A MARCHE \u2550\u2550 --><!-- [et_pb_line_break_holder] -->    <\/p>\n<section class=\"dtc-explain\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"dtc-explain-inner\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<h2 class=\"dtc-explain-title\">Wie nimmt man am <span class=\"dtc-hl\">Fotowettbewerb<\/span> teil?<\/h2>\n<p><!-- [et_pb_line_break_holder] -->            <pee class=\"dtc-explain-desc\">Zwei M\u00f6glichkeiten, sich zu beteiligen: Reichen Sie die Fotos Ihrer Residenz ein oder stimmen Sie f\u00fcr Ihre Favoriten ab. Und erhalten Sie Ihren Rabattgutschein!<\/pee><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"dtc-steps\"><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-step\"><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-step-num\">1<\/div>\n<p><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-step-icon\" style=\"background:#e2e2f9;\">\ud83d\udce4<\/div>\n<p><!-- [et_pb_line_break_holder] -->                    <\/p>\n<h3>Reichen Sie Ihr Foto ein<\/h3>\n<p><!-- [et_pb_line_break_holder] -->                    <pee>Laden Sie ein oder mehrere Fotos Ihrer Aktivit\u00e4ten hoch, f\u00fcgen Sie einen Kommentar hinzu \u2014 die \u00dcbersetzung auf FR\/EN\/IT erfolgt automatisch.<\/pee><!-- [et_pb_line_break_holder] -->                    <span class=\"dtc-step-badge\" style=\"background:#e2e2f9;color:#5e5ed7;\">Alle Teilnehmer<\/span><!-- [et_pb_line_break_holder] -->                <\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-step\"><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-step-num\">2<\/div>\n<p><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-step-icon\" style=\"background:#fde0e8;\">\u2764\ufe0f<\/div>\n<p><!-- [et_pb_line_break_holder] -->                    <\/p>\n<h3>Stimmen Sie t\u00e4glich ab<\/h3>\n<p><!-- [et_pb_line_break_holder] -->                    <pee>Durchst\u00f6bern Sie die Galerie, stimmen Sie mit Ihrer E-Mail f\u00fcr Ihr Lieblingsfoto ab. Eine Stimme pro Tag, jeden Morgen erneuerbar.<\/pee><!-- [et_pb_line_break_holder] -->                    <span class=\"dtc-step-badge\" style=\"background:#fde0e8;color:#e73469;\">Jeder stimmt ab<\/span><!-- [et_pb_line_break_holder] -->                <\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-step\"><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-step-num\">3<\/div>\n<p><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-step-icon\" style=\"background:#fff8d6;\">\ud83c\udf81<\/div>\n<p><!-- [et_pb_line_break_holder] -->                    <\/p>\n<h3>Erhalten Sie Ihren Gutschein<\/h3>\n<p><!-- [et_pb_line_break_holder] -->                    <pee>Nach Ihrer Abstimmung erhalten Sie eine E-Mail mit einem Gutschein <strong>10\u20ac Rabatt<\/strong> auf den DYNSEO-Katalog.<\/pee><!-- [et_pb_line_break_holder] -->                    <span class=\"dtc-step-badge\" style=\"background:#fff8d6;color:#8b7000;\">Automatisch &#038; sofort<\/span><!-- [et_pb_line_break_holder] -->                <\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-step\"><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-step-num\">4<\/div>\n<p><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"dtc-step-icon\" style=\"background:#d9f4f5;\">\ud83c\udfc6<\/div>\n<p><!-- [et_pb_line_break_holder] -->                    <\/p>\n<h3>Die Ergebnisse am 17. Juli<\/h3>\n<p><!-- [et_pb_line_break_holder] -->                    <pee>Die endg\u00fcltige Rangliste wird ver\u00f6ffentlicht. Die Residenz mit den meisten Stimmen gewinnt den Publikumspreis \u2014 <strong>ein Jahresabonnement f\u00fcr das DYNSEO-Programm ihrer Wahl<\/strong>.<\/pee><!-- [et_pb_line_break_holder] -->                    <span class=\"dtc-step-badge\" style=\"background:#d9f4f5;color:#2a7577;\">17. Juli 2026 um 14 Uhr<\/span><!-- [et_pb_line_break_holder] -->                <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/section>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- \u2550\u2550 R\u00c8GLES \u2550\u2550 --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"dtc-rules\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"dtc-rules-inner\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"dtc-rules-title\">\ud83d\udccb Die Regeln<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"dtc-rules-list\"><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-rule-chip\"><span>\ud83d\udcf8<\/span> Jeder Teilnehmer kann seine Fotos einreichen<\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-rule-chip\"><span>\ud83d\uddf3\ufe0f<\/span> 1 Stimme pro E-Mail pro Tag<\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-rule-chip\"><span>\ud83c\udf0d<\/span> Kommentar wird in FR, EN und IT angezeigt<\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-rule-chip\"><span>\u2705<\/span> Fotos werden vor Ver\u00f6ffentlichung validiert<\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-rule-chip\"><span>\ud83c\udfc6<\/span> 1 einziger Gewinner \u2014 Abonnement f\u00fcr das Programm seiner Wahl<\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"dtc-rule-chip\"><span>\ud83c\udf81<\/span> 10\u20ac Gutschein f\u00fcr jeden W\u00e4hler<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- END HEADER FOTOWETTBEWERB TOP CULTURE -->[\/et_pb_code][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.27.6&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.27.6&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220;][et_pb_code _builder_version=&#8220;4.27.6&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220;]    <div id=\"dtc-app\" data-rest=\"https:\/\/www.dynseo.com\/de\/wp-json\/dynseo\/v1\/tc-photo\" data-nonce=\"76d86981c9\" data-view=\"all\"><\/div>\n    <script>\n    (function(){\n        const REST   = \"https:\\\/\\\/www.dynseo.com\\\/de\\\/wp-json\\\/dynseo\\\/v1\\\/tc-photo\";\n        const NONCE  = \"76d86981c9\";\n        const VIEW   = \"all\";\n        const OPEN   = false;\n        const APP    = document.getElementById('dtc-app');\n\n        const FORCED = \"\";\n        const LANG   = FORCED || (['fr','en','it'].includes((navigator.language||'').substring(0,2)) ? (navigator.language||'').substring(0,2) : 'fr');\n        const I18N = {\n            fr: {\n                tab_vote:'\ud83d\uddf3 Voter pour une photo', tab_submit:'\ud83d\udce4 Soumettre votre photo',\n                name_ph:'Nom de votre r\u00e9sidence *', country_ph:'Pays *', email_ph:'Email *',\n                comment_ph:'D\u00e9crivez votre photo en quelques mots\u2026',\n                translate_btn:'\ud83c\udf10 Traduire automatiquement', translating:'Traduction en cours\u2026',\n                submit_btn:'\ud83d\udce4 Soumettre la photo', submitting:'Envoi\u2026',\n                vote_btn:'\u2764\ufe0f Voter', voting:'Envoi du vote\u2026',\n                email_vote_ph:'Votre email pour recevoir votre bon de r\u00e9duction',\n                votes_label:'\u2764\ufe0f', \n                your_country:'Votre pays',\n                photo_label:'Choisir une photo (max 8 Mo)',\n                comment_fr_label:'Commentaire en fran\u00e7ais',\n                comment_en_label:'Commentaire en anglais',\n                comment_it_label:'Commentario in italiano',\n                caption_hint:'\u270d\ufe0f \u00c9crivez votre commentaire dans une seule langue, puis cliquez sur \u00ab Traduire automatiquement \u00bb en bas pour remplir les autres.',\n                already_voted:\"Vous avez d\u00e9j\u00e0 vot\u00e9 aujourd\\'hui ! Revenez demain \ud83d\ude0a\",\n                closed:'Le concours est actuellement ferm\u00e9.',\n                all_countries:'Tous les pays',\n                no_photos:'Aucune photo pour le moment. Soyez le premier \u00e0 soumettre la v\u00f4tre !',\n                filter_label:'Filtrer par pays :',\n                shares_label:'\u2197\ufe0f',\n                share_label:'Partager :',\n                share_copied:'Lien copi\u00e9 dans le presse-papier !',\n                share_text:\"D\u00e9couvrez cette photo du concours TOP CULTURE de @Dynseo !\",\n                comments_label:'\ud83d\udcac',\n                comment_show:'Voir les commentaires',\n                comment_hide:'Masquer les commentaires',\n                comment_name_ph:'Votre nom',\n                comment_text_ph:'Votre commentaire\u2026',\n                comment_send:'Envoyer',\n                comment_empty:'Soyez le premier \u00e0 commenter !',\n            },\n            en: {\n                tab_vote:'\ud83d\uddf3 Vote for a photo', tab_submit:'\ud83d\udce4 Submit your photo',\n                name_ph:'Your residence name *', country_ph:'Country *', email_ph:'Email *',\n                comment_ph:'Describe your photo in a few words\u2026',\n                translate_btn:'\ud83c\udf10 Auto-translate', translating:'Translating\u2026',\n                submit_btn:'\ud83d\udce4 Submit photo', submitting:'Sending\u2026',\n                vote_btn:'\u2764\ufe0f Vote', \n                voting:'Voting\u2026',\n                email_vote_ph:'Your email to receive your discount code',\n                votes_label:'\u2764\ufe0f', \n                your_country:'Your country',\n                photo_label:'Choose a photo (max 8 MB)',\n                comment_fr_label:'Comment in French',\n                comment_en_label:'Comment in English',\n                comment_it_label:'Comment in Italian',\n                caption_hint:'\u270d\ufe0f Write your caption in just one language, then click \u201cAuto-translate\u201d below to fill in the others.',\n                already_voted:'You already voted today! Come back tomorrow \ud83d\ude0a',\n                closed:'The contest is currently closed.',\n                all_countries:'All countries',\n                no_photos:'No photos yet. Be the first to submit yours!',\n                filter_label:'Filter by country:',\n                shares_label:'\u2197\ufe0f',\n                share_label:'Share:',\n                share_copied:'Link copied to clipboard!',\n                share_text:\"Check out this photo from @Dynseo TOP CULTURE contest!\",\n                comments_label:'\ud83d\udcac',\n                comment_show:'View comments',\n                comment_hide:'Hide comments',\n                comment_name_ph:'Your name',\n                comment_text_ph:'Your comment\u2026',\n                comment_send:'Send',\n                comment_empty:'Be the first to comment!',\n            },\n            it: {\n                tab_vote:'\ud83d\uddf3 Vota una foto', tab_submit:'\ud83d\udce4 Invia la tua foto',\n                name_ph:'Nome della tua struttura *', country_ph:'Paese *', email_ph:'Email *',\n                comment_ph:'Descrivi la tua foto in poche parole\u2026',\n                translate_btn:'\ud83c\udf10 Traduzione automatica', translating:'Traduzione\u2026',\n                submit_btn:'\ud83d\udce4 Invia la foto', submitting:'Invio\u2026',\n                vote_btn:'\u2764\ufe0f Vota', \n                voting:'Invio voto\u2026',\n                email_vote_ph:'La tua email per ricevere il codice sconto',\n                votes_label:'\u2764\ufe0f', \n                your_country:'Il tuo paese',\n                photo_label:'Scegli una foto (max 8 MB)',\n                comment_fr_label:'Commento in francese',\n                comment_en_label:'Commento in inglese',\n                comment_it_label:'Commento in italiano',\n                caption_hint:'\u270d\ufe0f Scrivi la didascalia in una sola lingua, poi clicca su \u201cTraduzione automatica\u201d in basso per compilare le altre.',\n                already_voted:\"Hai gi\u00e0 votato oggi! Torna domani \ud83d\ude0a\",\n                closed:'Il concorso \u00e8 attualmente chiuso.',\n                all_countries:'Tutti i paesi',\n                no_photos:'Nessuna foto per ora. Sii il primo a inviare la tua!',\n                filter_label:'Filtra per paese:',\n                shares_label:'\u2197\ufe0f',\n                share_label:'Condividi:',\n                share_copied:'Link copiato negli appunti!',\n                share_text:\"Guarda questa foto del concorso TOP CULTURE di @Dynseo!\",\n                comments_label:'\ud83d\udcac',\n                comment_show:'Vedi i commenti',\n                comment_hide:'Nascondi i commenti',\n                comment_name_ph:'Il tuo nome',\n                comment_text_ph:'Il tuo commento\u2026',\n                comment_send:'Invia',\n                comment_empty:'Sii il primo a commentare!',\n            },\n        };\n        const T = I18N[LANG] || I18N.fr;\n\n        const COUNTRIES = [\n            {v:'fr',f:'\ud83c\uddeb\ud83c\uddf7',l:{fr:'France',en:'France',it:'Francia'}},\n            {v:'be',f:'\ud83c\udde7\ud83c\uddea',l:{fr:'Belgique',en:'Belgium',it:'Belgio'}},\n            {v:'ch',f:'\ud83c\udde8\ud83c\udded',l:{fr:'Suisse',en:'Switzerland',it:'Svizzera'}},\n            {v:'it',f:'\ud83c\uddee\ud83c\uddf9',l:{fr:'Italie',en:'Italy',it:'Italia'}},\n            {v:'es',f:'\ud83c\uddea\ud83c\uddf8',l:{fr:'Espagne',en:'Spain',it:'Spagna'}},\n            {v:'pt',f:'\ud83c\uddf5\ud83c\uddf9',l:{fr:'Portugal',en:'Portugal',it:'Portogallo'}},\n            {v:'de',f:'\ud83c\udde9\ud83c\uddea',l:{fr:'Allemagne',en:'Germany',it:'Germania'}},\n            {v:'nl',f:'\ud83c\uddf3\ud83c\uddf1',l:{fr:'Pays-Bas',en:'Netherlands',it:'Paesi Bassi'}},\n            {v:'lu',f:'\ud83c\uddf1\ud83c\uddfa',l:{fr:'Luxembourg',en:'Luxembourg',it:'Lussemburgo'}},\n            {v:'ca',f:'\ud83c\udde8\ud83c\udde6',l:{fr:'Canada',en:'Canada',it:'Canada'}},\n            {v:'ma',f:'\ud83c\uddf2\ud83c\udde6',l:{fr:'Maroc',en:'Morocco',it:'Marocco'}},\n            {v:'sn',f:'\ud83c\uddf8\ud83c\uddf3',l:{fr:'S\u00e9n\u00e9gal',en:'Senegal',it:'Senegal'}},\n            {v:'other',f:'\ud83c\udf0d',l:{fr:'Autre',en:'Other',it:'Altro'}},\n        ];\n        function cName(c){ return (c.l[LANG]||c.l.fr); }\n        function escapeHtml(s){ return (s||'').replace(\/[&<>\"']\/g, m=>({'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[m])); }\n\n        let tab = (VIEW==='submit') ? 'submit' : 'vote';\n        let gallery = [], filterCountry='';\n        let photoFile=null, photoData=null, photoMime=null;\n        let translating=false, submitting=false;\n        let form={ residence:'', country:'', email:'', comment_fr:'', comment_en:'', comment_it:'' };\n\n        function css(){ \n            return `<style>\n        @import url('https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@700;800;900&family=Poppins:wght@400;500;600&display=swap');\n        #dtc-app *{box-sizing:border-box;}\n        #dtc-app{font-family:'Poppins',sans-serif;}\n        .dtc-wrap{max-width:1100px;margin:0 auto;padding:32px 20px 48px;}\n        .dtc-tabs{display:flex;gap:6px;margin-bottom:32px;background:#f0f0fb;border-radius:50px;padding:5px;width:fit-content;}\n        .dtc-tab{padding:11px 28px;cursor:pointer;font-family:'Montserrat',sans-serif;font-size:13px;font-weight:800;color:#888;border-radius:50px;transition:all .25s;border:none;background:transparent;letter-spacing:.3px;}\n        .dtc-tab.active{background:#5e5ed7;color:#fff;box-shadow:0 4px 14px rgba(94,94,215,.35);}\n        .dtc-tab:hover:not(.active){background:#e2e2f9;color:#5e5ed7;}\n        .dtc-filter{display:flex;align-items:center;gap:12px;margin-bottom:28px;flex-wrap:wrap;}\n        .dtc-filter label{font-family:'Montserrat',sans-serif;font-weight:800;color:#1a1a2e;font-size:13px;text-transform:uppercase;letter-spacing:.8px;}\n        .dtc-filter-pills{display:flex;flex-wrap:wrap;gap:8px;}\n        .dtc-pill-btn{padding:7px 16px;border-radius:50px;border:1.5px solid #e2e2f9;background:#fff;font-size:12px;font-weight:700;color:#888;cursor:pointer;transition:all .2s;font-family:'Poppins',sans-serif;}\n        .dtc-pill-btn.active{background:#5e5ed7;border-color:#5e5ed7;color:#fff;box-shadow:0 3px 10px rgba(94,94,215,.25);}\n        .dtc-pill-btn:hover:not(.active){background:#e2e2f9;border-color:#c5c5f0;color:#5e5ed7;}\n        .dtc-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;}\n        \n        .dtc-card{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 4px 20px rgba(94,94,215,.09);transition:transform .25s,box-shadow .25s;border:1px solid rgba(94,94,215,.07);}\n        .dtc-card:hover{transform:translateY(-6px);box-shadow:0 14px 40px rgba(94,94,215,.17);}\n        .dtc-card-img-wrap{position:relative;overflow:hidden;}\n        .dtc-card img{width:100%;height:210px;object-fit:cover;display:block;transition:transform .4s ease;}\n        .dtc-card:hover img{transform:scale(1.04);}\n        .dtc-card-rank{position:absolute;top:10px;left:10px;background:rgba(26,26,46,.72);color:#ffeca7;font-family:'Montserrat',sans-serif;font-size:12px;font-weight:900;padding:4px 11px;border-radius:20px;}\n        .dtc-card-flag{position:absolute;top:10px;right:10px;font-size:22px;background:rgba(255,255,255,.92);border-radius:8px;padding:2px 6px;line-height:1.4;}\n        .dtc-card-body{padding:18px;}\n        .dtc-card h3{margin:0 0 6px;font-family:'Montserrat',sans-serif;font-size:15px;font-weight:900;color:#1a1a2e;line-height:1.3;}\n        .dtc-card p{margin:0 0 12px;font-size:13px;color:#64748b;line-height:1.6;}\n        \n        \/*voting*\/\n        .dtc-vote-zone{background:#f8f8ff;border-radius:14px;padding:14px;}\n        .dtc-vote-top{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap;}\n        .dtc-vote-bubble{\n            \/*border:2px solid #c1cbdb;*\/\n            color: black;\n            \/*border-radius:50px;*\/\n            \/*padding:6px 14px;*\/\n            padding:2% 4%;\n            display:inline-flex;\n            align-items:center;\n            gap:6px;\n        }\n        .dtc-vote-bubble-num{\n            font: 900 clamp(16px, 1.4vw, 22px) 'Montserrat', sans-serif;\n            }\n        .dtc-vote-bubble-lbl{\n            font-size:16px;\n            }\n        .dtc-vote-row{display:flex;gap:8px;align-items:stretch;}\n        .dtc-vote-input{flex:1;padding:9px 13px;border:1.5px solid #dde;border-radius:10px;font-size:13px;outline:none;font-family:'Poppins',sans-serif;transition:border .2s;min-width:0;}\n        .dtc-vote-input:focus{border-color:#5e5ed7;}\n        .dtc-btn{padding:9px 18px;border:none;border-radius:10px;font-size:13px;font-family:'Montserrat',sans-serif;font-weight:800;cursor:pointer;transition:all .2s;}\n        .dtc-btn-vote{background:linear-gradient(135deg,#e73469,#ff6b95);color:#fff;white-space:nowrap;}\n        .dtc-btn-vote:hover{opacity:.88;transform:translateY(-1px);box-shadow:0 4px 14px rgba(231,52,105,.3);}\n        .dtc-btn-vote:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none;}\n        .dtc-promo-box{background:linear-gradient(135deg,#fff8d6,#fffbef);border:2px dashed #ffb600;border-radius:14px;padding:18px;text-align:center;margin-top:12px;}\n        .dtc-promo-code{font-family:'Montserrat',sans-serif;font-size:24px;font-weight:900;color:#5e5ed7;letter-spacing:4px;}\n        .dtc-empty{text-align:center;padding:70px 20px;}\n        .dtc-empty-icon{font-size:56px;margin-bottom:16px;display:block;}\n        .dtc-empty-title{font-family:'Montserrat',sans-serif;font-size:18px;font-weight:900;color:#1a1a2e;margin-bottom:8px;}\n        .dtc-empty-sub{font-size:14px;color:#94a3b8;margin-bottom:24px;}\n        .dtc-empty-btn{background:#5e5ed7;color:#fff;border:none;padding:12px 28px;border-radius:30px;font-family:'Montserrat',sans-serif;font-size:14px;font-weight:800;cursor:pointer;}\n        .dtc-form-wrap{max-width:660px;margin:0 auto;}\n        .dtc-form-header{background:linear-gradient(135deg,#5e5ed7,#a9e2e4);border-radius:20px 20px 0 0;padding:28px 32px;}\n        .dtc-form-header h2{font-family:'Montserrat',sans-serif;font-size:20px;font-weight:900;color:#fff;margin:0 0 4px;}\n        .dtc-form-header p{font-size:13px;color:rgba(255,255,255,.8);margin:0;}\n        .dtc-form{background:#fff;border-radius:0 0 20px 20px;padding:32px;box-shadow:0 8px 32px rgba(94,94,215,.12);}\n        .dtc-field{margin-bottom:18px;}\n        .dtc-field label{display:block;font-size:12px;font-weight:700;color:#64748b;margin-bottom:6px;text-transform:uppercase;letter-spacing:.6px;}\n        .dtc-field input,.dtc-field select,.dtc-field textarea{width:100%;padding:11px 15px;border:1.5px solid #e2e8f0;border-radius:10px;font-size:14px;font-family:'Poppins',sans-serif;outline:none;transition:border .2s,box-shadow .2s;background:#fff;}\n        .dtc-field input:focus,.dtc-field select:focus,.dtc-field textarea:focus{border-color:#5e5ed7;box-shadow:0 0 0 3px rgba(94,94,215,.1);}\n        .dtc-field textarea{min-height:90px;resize:vertical;}\n        .dtc-photo-zone{border:2px dashed #c5c5f0;border-radius:12px;padding:28px;text-align:center;cursor:pointer;transition:all .2s;background:#fafaff;}\n        .dtc-photo-zone:hover{border-color:#5e5ed7;background:#f0f0ff;}\n        .dtc-photo-zone-icon{font-size:36px;margin-bottom:8px;}\n        .dtc-photo-zone-txt{font-size:13px;color:#94a3b8;}\n        .dtc-photo-preview{width:100%;height:200px;object-fit:cover;border-radius:10px;margin-top:12px;display:none;}\n        .dtc-btn-translate{background:#f0f0ff;color:#5e5ed7;border:1.5px solid #c5c5f0;width:100%;margin-bottom:4px;padding:11px;border-radius:10px;font-size:13px;font-family:'Montserrat',sans-serif;font-weight:800;}\n        .dtc-btn-translate:hover{background:#5e5ed7;color:#fff;border-color:#5e5ed7;}\n        .dtc-btn-submit{background:linear-gradient(135deg,#5e5ed7,#a9e2e4);color:#fff;width:100%;padding:15px;font-size:15px;border-radius:30px;margin-top:12px;letter-spacing:.3px;}\n        .dtc-btn-submit:hover{opacity:.9;transform:translateY(-2px);box-shadow:0 6px 20px rgba(94,94,215,.35);}\n        .dtc-btn-submit:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none;}\n        .dtc-alert{padding:14px 18px;border-radius:12px;margin-bottom:18px;font-size:14px;}\n        .dtc-alert-success{background:#e8fff3;color:#0a6e36;border-left:4px solid #28a745;}\n        .dtc-alert-error{background:#fff0f0;color:#a00;border-left:4px solid #dc3545;}\n\n        \/* sharing *\/\n        .dtc-share-bubble{\n            \/*border:2px solid #c1cbdb;*\/\n            color: black;\n            \/*border-radius:50px;*\/\n            padding:2% 4%;\n            display:inline-flex;\n            align-items:center;\n            gap:6px;\n        }\n        .dtc-share-bubble-num{\n            font: 900 clamp(16px, 1.4vw, 22px) 'Montserrat', sans-serif;         \n        }\n        .dtc-share-bubble-lbl{\n            font-size:16px;\n            }\n        .dtc-share-row{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap;}\n        .dtc-share-label{font-size:12px;color:#94a3b8;font-weight:700;}\n        .dtc-share-btn{width:34px;height:34px;border:none;border-radius:50%;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:transform .15s,opacity .15s;padding:0;}\n        .dtc-share-btn:hover{transform:translateY(-2px);opacity:.9;}\n        .dtc-share-btn svg{width:16px;height:16px;fill:#fff;}\n        .dtc-sh-fb{background:#1877f2;}\n        .dtc-sh-ig{background:linear-gradient(45deg,#f09433,#dc2743,#bc1888);}\n        .dtc-sh-tw{background:#000;}\n        .dtc-sh-li{background:#0a66c2;}\n        .dtc-sh-link{background:#5e5ed7;}\n\n        \/* comments *\/\n        .dtc-comment-bubble{\n            \/*border:2px solid #c1cbdb;*\/\n            color: black;\n            \/*border-radius:50px;*\/\n            padding:2% 4%;\n            display:inline-flex;\n            align-items:center;\n            gap:6px;\n        }\n        .dtc-comment-bubble-num{\n            font: 900 clamp(16px, 1.4vw, 22px) 'Montserrat', sans-serif;     \n        }\n        .dtc-comment-bubble-lbl{\n            font-size:16px;\n            }\n        .dtc-comments-toggle{margin-top:12px;font-family:'Montserrat',sans-serif;font-size:12px;font-weight:800;color:#5e5ed7;cursor:pointer;user-select:none;display:inline-flex;align-items:center;gap:6px;}\n        .dtc-comments-toggle:hover{text-decoration:underline;}\n        .dtc-comments{margin-top:10px;background:#fff;border:1px solid #ececfa;border-radius:12px;padding:12px;}\n        .dtc-comments-list{display:flex;flex-direction:column;gap:8px;max-height:220px;overflow-y:auto;margin-bottom:10px;}\n        .dtc-comment-item{background:#f8f8ff;border-radius:10px;padding:8px 12px;}\n        .dtc-comment-author{font-family:'Montserrat',sans-serif;font-size:12px;font-weight:800;color:#1a1a2e;}\n        .dtc-comment-body{font-size:13px;color:#555;line-height:1.5;margin-top:2px;word-break:break-word;}\n        .dtc-comment-empty{font-size:13px;color:#aaa;text-align:center;padding:10px;}\n        .dtc-comment-form{display:flex;flex-direction:column;gap:8px;}\n        .dtc-comment-name,.dtc-comment-text{width:100%;padding:8px 12px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;font-family:'Poppins',sans-serif;outline:none;}\n        .dtc-comment-name:focus,.dtc-comment-text:focus{border-color:#5e5ed7;}\n        .dtc-comment-text{min-height:60px;resize:vertical;}\n        .dtc-comment-send{align-self:flex-end;background:#5e5ed7;color:#fff;border:none;border-radius:8px;padding:8px 18px;font-family:'Montserrat',sans-serif;font-weight:800;font-size:12px;cursor:pointer;}\n        .dtc-comment-send:hover{opacity:.9;}\n\n        @media(max-width:640px){\n            .dtc-gallery{grid-template-columns:1fr;}\n            .dtc-tabs{width:100%;}\n            .dtc-tab{flex:1;text-align:center;padding:10px 8px;font-size:11px;}\n            .dtc-form-header,.dtc-form{padding:20px;}\n            .dtc-wrap{padding:20px 14px 36px;}\n        }\n        <\/style>`; }\n\n        function render(){\n            let html = css();\n            html += `<div class=\"dtc-wrap\">`;\n            if (!OPEN){ html += `<div class=\"dtc-alert dtc-alert-error\">${T.closed}<\/div><\/div>`; APP.innerHTML=html; return; }\n            if(VIEW==='all'){\n                html += `<div class=\"dtc-tabs\">`;\n                html += `<div class=\"dtc-tab${tab==='vote'?' active':''}\" onclick=\"dtcSetTab('vote')\">${T.tab_vote}<\/div>`;\n                html += `<div class=\"dtc-tab${tab==='submit'?' active':''}\" onclick=\"dtcSetTab('submit')\">${T.tab_submit}<\/div>`;\n                html += `<\/div>`;\n            }\n            if(tab==='vote' && VIEW!=='submit') html += renderGallery();\n            if(tab==='submit' && VIEW!=='vote') html += renderForm();\n            html += `<\/div>`;\n            APP.innerHTML = html;\n            if(tab==='submit') bindFormEvents();\n        }\n\n        function renderGallery(){\n            const allCountriesUsed = [...new Set(gallery.map(p=>p.country))];\n            const countryPills = allCountriesUsed.map(cv=>{\n                const co = COUNTRIES.find(c=>c.v===cv);\n                return `<button class=\"dtc-pill-btn${filterCountry===cv?' active':''}\" onclick=\"dtcFilter('${cv}')\">${co?co.f:''} ${co?cName(co):cv}<\/button>`;\n            }).join('');\n            let html = `<div class=\"dtc-filter\">\n                <label>${T.filter_label}<\/label>\n                <div class=\"dtc-filter-pills\">\n                    <button class=\"dtc-pill-btn${!filterCountry?' active':''}\" onclick=\"dtcFilter('')\">${T.all_countries}<\/button>\n                    ${countryPills}\n                <\/div>\n            <\/div>`;\n            const filtered = filterCountry ? gallery.filter(p=>p.country===filterCountry) : gallery;\n            if(!filtered.length){\n                return html+`<div class=\"dtc-empty\">\n                    <span class=\"dtc-empty-icon\">\ud83d\udcf8<\/span>\n                    <div class=\"dtc-empty-title\">${T.no_photos}<\/div>\n                    <div class=\"dtc-empty-sub\">${LANG==='fr'?'Les photos appara\u00eetront ici apr\u00e8s validation.':LANG==='it'?'Le foto appariranno qui dopo la convalida.':'Photos will appear here after validation.'}<\/div>\n                    <button class=\"dtc-empty-btn\" onclick=\"dtcSetTab('submit')\">\ud83d\udce4 ${T.tab_submit}<\/button>\n                <\/div>`; }\n            html += `<div class=\"dtc-gallery\">`;\n            filtered.forEach((p,idx)=>{\n                const comment = LANG==='en'?(p.comment_en||p.comment_fr): LANG==='it'?(p.comment_it||p.comment_fr):p.comment_fr;\n                const flag = COUNTRIES.find(c=>c.v===p.country);\n                const rank = idx+1;\n                const medal = rank===1?'\ud83e\udd47':rank===2?'\ud83e\udd48':rank===3?'\ud83e\udd49':'#'+rank;\n                html += `<div class=\"dtc-card\">\n                    <div class=\"dtc-card-img-wrap\">\n                        <img decoding=\"async\" src=\"${p.photo_url}\" alt=\"${escapeHtml(p.residence)}\" loading=\"lazy\">\n                        <div class=\"dtc-card-rank\">${medal}<\/div>\n                        <div class=\"dtc-card-flag\">${flag?flag.f:'\ud83c\udf0d'}<\/div>\n                    <\/div>\n                    <div class=\"dtc-card-body\">\n                        <h3>${escapeHtml(p.residence)}<\/h3>\n                        <p>${escapeHtml(comment)}<\/p>\n                        \n                        <div class=\"dtc-vote-zone\">\n                            <div class=\"dtc-vote-top\">\n                                <div class=\"dtc-vote-bubble\">\n                                    <span class=\"dtc-vote-bubble-num\">${p.vote_count}<\/span>\n                                    <span class=\"dtc-vote-bubble-lbl\">${T.votes_label}<\/span>\n                                <\/div>\n                                <div class=\"dtc-share-bubble\">\n                                    <span class=\"dtc-share-bubble-num\" id=\"share-num-${p.id}\">${p.share_count||0}<\/span>\n                                    <span class=\"dtc-share-bubble-lbl\">${T.shares_label}<\/span>\n                                <\/div>\n                                <div class=\"dtc-comment-bubble\">\n                                    <span class=\"dtc-comment-bubble-num\" id=\"cbub-${p.id}\">${p.comment_count||0}<\/span>\n                                    <span class=\"dtc-comment-bubble-lbl\">${T.comments_label}<\/span>\n                                <\/div>\n                            <\/div>\n                            <div class=\"dtc-vote-row\">\n                                <input class=\"dtc-vote-input\" type=\"email\" id=\"ve-${p.id}\" placeholder=\"${T.email_vote_ph}\">\n                                <button class=\"dtc-btn dtc-btn-vote\" onclick=\"dtcVote(${p.id})\">${T.vote_btn}<\/button>\n                            <\/div>\n                            <div id=\"vote-msg-${p.id}\"><\/div>\n                            <div class=\"dtc-share-row\">\n                                <span class=\"dtc-share-label\">${T.share_label}<\/span>\n                                <button class=\"dtc-share-btn dtc-sh-fb\" onclick=\"dtcShare('facebook',${p.id})\" aria-label=\"Facebook\"><svg viewBox=\"0 0 24 24\"><path d=\"M22 12a10 10 0 10-11.6 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.2c-1.2 0-1.6.8-1.6 1.6V12h2.7l-.4 2.9h-2.3v7A10 10 0 0022 12z\"\/><\/svg><\/button>\n                                <button class=\"dtc-share-btn dtc-sh-tw\" onclick=\"dtcShare('twitter',${p.id})\" aria-label=\"X\"><svg viewBox=\"0 0 24 24\"><path d=\"M18.9 2H22l-7.6 8.7L23 22h-6.8l-5.3-7-6.1 7H1.7l8.1-9.3L1 2h7l4.8 6.4L18.9 2zm-2.4 18h1.9L7.6 4H5.6l10.9 16z\"\/><\/svg><\/button>\n                                <button class=\"dtc-share-btn dtc-sh-li\" onclick=\"dtcShare('linkedin',${p.id})\" aria-label=\"LinkedIn\"><svg viewBox=\"0 0 24 24\"><path d=\"M19 3a2 2 0 012 2v14a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h14zM8.3 18.3V10H5.7v8.3h2.6zM7 8.8a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm11.3 9.5v-4.6c0-2.4-1.3-3.5-3-3.5a2.6 2.6 0 00-2.4 1.3V10H10.3c0 .7 0 8.3 0 8.3h2.6v-4.6c0-.3 0-.5.1-.7.2-.5.6-1 1.4-1 1 0 1.4.7 1.4 1.8v4.5h2.5z\"\/><\/svg><\/button>\n                                <button class=\"dtc-share-btn dtc-sh-link\" onclick=\"dtcShare('copy',${p.id})\" aria-label=\"Copy Link\"><svg viewBox=\"0 0 24 24\"><path d=\"M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92-1.31-2.92-2.92-2.92z\"\/><\/svg><\/button>\n                            <\/div>\n                            <div class=\"dtc-comments-toggle\" id=\"ctoggle-${p.id}\" onclick=\"dtcToggleComments(${p.id})\">\ud83d\udcac <span class=\"ctoggle-label\">${T.comment_show}<\/span> (<span id=\"cnum-${p.id}\">${p.comment_count||0}<\/span>)<\/div>\n                            <div class=\"dtc-comments\" id=\"comments-${p.id}\" style=\"display:none;\">\n                                <div class=\"dtc-comments-list\" id=\"clist-${p.id}\"><\/div>\n                                <div class=\"dtc-comment-form\">\n                                    <input class=\"dtc-comment-name\" id=\"cname-${p.id}\" type=\"text\" maxlength=\"120\" placeholder=\"${T.comment_name_ph}\">\n                                    <textarea class=\"dtc-comment-text\" id=\"ctext-${p.id}\" maxlength=\"1000\" placeholder=\"${T.comment_text_ph}\"><\/textarea>\n                                    <button class=\"dtc-comment-send\" onclick=\"dtcPostComment(${p.id})\">${T.comment_send}<\/button>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>`;\n            });\n            html += `<\/div>`;\n            return html;\n        }\n\n        function renderForm(){\n            const copts = COUNTRIES.map(c=>`<option value=\"${c.v}\"${form.country===c.v?' selected':''}>${c.f} ${cName(c)}<\/option>`).join('');\n            return `<div class=\"dtc-form-wrap\">\n                <div class=\"dtc-form-header\">\n                    <h2>\ud83d\udcf8 ${T.tab_submit}<\/h2>\n                    <p>${LANG==='fr'?'Partagez vos photos et faites voter la communaut\u00e9 !':LANG==='it'?'Condividi le tue foto e fai votare la community!':'Share your photos and let the community vote!'}<\/p>\n                <\/div>\n                <div class=\"dtc-form\">\n                    <div id=\"submit-alert\"><\/div>\n                    <div class=\"dtc-field\"><label>${T.name_ph}<\/label>\n                        <input type=\"text\" id=\"f-residence\" value=\"${escapeHtml(form.residence)}\" placeholder=\"${LANG==='fr'?'Ex : R\u00e9sidence Les Lilas, Paris':LANG==='it'?'Es: Residenza Le Rose, Milano':'E.g. Sunrise Care Home, London'}\"><\/div>\n                    <div class=\"dtc-field\"><label>${T.country_ph}<\/label>\n                        <select id=\"f-country\"><option value=\"\">${T.country_ph}<\/option>${copts}<\/select><\/div>\n                    <div class=\"dtc-field\"><label>${T.email_ph}<\/label>\n                        <input type=\"email\" id=\"f-email\" value=\"${escapeHtml(form.email)}\" placeholder=\"contact@maresidence.fr\"><\/div>\n                    <div class=\"dtc-field\"><label>${T.photo_label}<\/label>\n                        <div class=\"dtc-photo-zone\" onclick=\"document.getElementById('f-photo').click()\">\n                            <div class=\"dtc-photo-zone-icon\">\ud83d\uddbc\ufe0f<\/div>\n                            <div class=\"dtc-photo-zone-txt\">${LANG==='fr'?'Cliquer pour choisir une photo (JPG\/PNG, max 8 Mo)':LANG==='it'?'Clicca per scegliere una foto (JPG\/PNG, max 8 MB)':'Click to choose a photo (JPG\/PNG, max 8 MB)'}<\/div>\n                        <\/div>\n                        <input type=\"file\" id=\"f-photo\" accept=\"image\/*\" style=\"display:none;\">\n                        <img id=\"f-preview\" class=\"dtc-photo-preview\">\n                    <\/div>\n                    <p style=\"font-size:13px;color:#5e5ed7;background:#f0f0ff;border-radius:10px;padding:10px 14px;margin:0 0 14px;line-height:1.5;\">${T.caption_hint}<\/p>\n                    <div class=\"dtc-field\"><label>${T.comment_fr_label}<\/label>\n                        <textarea id=\"f-comment-fr\" placeholder=\"D\u00e9crivez votre photo en quelques mots...\">${escapeHtml(form.comment_fr)}<\/textarea><\/div>\n                    <div class=\"dtc-field\"><label>${T.comment_en_label}<\/label>\n                        <textarea id=\"f-comment-en\" placeholder=\"Describe your photo in a few words...\">${escapeHtml(form.comment_en)}<\/textarea><\/div>\n                    <div class=\"dtc-field\"><label>${T.comment_it_label}<\/label>\n                        <textarea id=\"f-comment-it\" placeholder=\"Descrivi la tua foto in poche parole...\">${escapeHtml(form.comment_it)}<\/textarea><\/div>\n                    <button class=\"dtc-btn dtc-btn-translate\" id=\"btn-translate\" onclick=\"dtcTranslate()\">${translating?T.translating:T.translate_btn}<\/button>\n                    <button class=\"dtc-btn dtc-btn-submit\" id=\"btn-submit\" onclick=\"dtcSubmit()\">${submitting?T.submitting:T.submit_btn}<\/button>\n                <\/div>\n            <\/div>`;\n        }\n\n        function bindFormEvents(){\n            const photo = document.getElementById('f-photo');\n            if(photo) photo.onchange = function(){\n                const file = this.files[0]; if(!file) return;\n                photoFile = file; photoMime = file.type;\n                const reader = new FileReader();\n                reader.onload = e => {\n                    photoData = e.target.result;\n                    const prev = document.getElementById('f-preview');\n                    if(prev){ prev.src=photoData; prev.style.display='block'; }\n                };\n                reader.readAsDataURL(file);\n            };\n            if(photoData){\n                const prev = document.getElementById('f-preview');\n                if(prev){ prev.src = photoData; prev.style.display = 'block'; }\n            }\n        }\n\n        window.dtcSetTab = t => { tab=t; render(); };\n        window.dtcFilter = v => { filterCountry=v; render(); };\n\n        window.dtcTranslate = async function(){\n            form.residence = document.getElementById('f-residence')?.value?.trim()||'';\n            form.country = document.getElementById('f-country')?.value||'';\n            form.email = document.getElementById('f-email')?.value?.trim()||'';\n            form.comment_fr = document.getElementById('f-comment-fr')?.value?.trim()||'';\n            form.comment_en = document.getElementById('f-comment-en')?.value?.trim()||'';\n            form.comment_it = document.getElementById('f-comment-it')?.value?.trim()||'';\n            let from='', txt='';\n            if(form.comment_fr){ from='fr'; txt=form.comment_fr; }\n            else if(form.comment_en){ from='en'; txt=form.comment_en; }\n            else if(form.comment_it){ from='it'; txt=form.comment_it; }\n            if(!txt) return;\n            translating=true; render();\n            try {\n                const r = await fetch(REST+'\/translate',{method:'POST',headers:{'Content-Type':'application\/json'},body:JSON.stringify({text:txt,from:from})});\n                const d = await r.json();\n                form.comment_fr = d.fr || form.comment_fr || txt;\n                form.comment_en = d.en || form.comment_en || txt;\n                form.comment_it = d.it || form.comment_it || txt;\n            } catch(e){}\n            translating=false; render();\n        };\n\n        window.dtcSubmit = async function(){\n            form.residence = document.getElementById('f-residence')?.value?.trim()||'';\n            form.country   = document.getElementById('f-country')?.value||'';\n            form.email     = document.getElementById('f-email')?.value?.trim()||'';\n            form.comment_fr= document.getElementById('f-comment-fr')?.value?.trim()||'';\n            form.comment_en= document.getElementById('f-comment-en')?.value?.trim()||'';\n            form.comment_it= document.getElementById('f-comment-it')?.value?.trim()||'';\n            const alert = document.getElementById('submit-alert');\n            const hasCaption = form.comment_fr || form.comment_en || form.comment_it;\n            if(!form.residence||!form.country||!form.email||!hasCaption||!photoData){\n                const errMsg = LANG==='en'?'\u26a0\ufe0f Please fill in all required fields, add a caption in at least one language, and choose a photo.'\n                    : LANG==='it'?'\u26a0\ufe0f Compila tutti i campi obbligatori, aggiungi una didascalia in almeno una lingua e scegli una foto.'\n                    : '\u26a0\ufe0f Veuillez remplir tous les champs obligatoires, ajouter un commentaire dans au moins une langue et choisir une photo.';\n                alert.innerHTML=`<div class=\"dtc-alert dtc-alert-error\">${errMsg}<\/div>`; return;\n            }\n            submitting=true; render();\n            try {\n                const r = await fetch(REST+'\/submit',{method:'POST',headers:{'Content-Type':'application\/json'},\n                    body:JSON.stringify({...form,lang:LANG,photo_data:photoData,photo_mime:photoMime})});\n                const d = await r.json();\n                if(d.success){\n                    form={residence:'',country:'',email:'',comment_fr:'',comment_en:'',comment_it:''}; photoData=null;\n                    submitting=false;\n                    APP.innerHTML=css()+`<div class=\"dtc-wrap\"><div class=\"dtc-alert dtc-alert-success\" style=\"font-size:16px;\">\u2705 ${d.message}<\/div><\/div>`;\n                    return;\n                } else {\n                    submitting=false; render();\n                    document.getElementById('submit-alert').innerHTML=`<div class=\"dtc-alert dtc-alert-error\">\u26a0\ufe0f ${d.message||'Erreur'}<\/div>`;\n                }\n            } catch(e){ submitting=false; render(); }\n        };\n\n        window.dtcVote = async function(id, residence){\n            const emailEl = document.getElementById('ve-'+id);\n            const msgEl   = document.getElementById('vote-msg-'+id);\n            const email   = emailEl?.value?.trim();\n            if(!email||!email.includes('@')){ if(msgEl) msgEl.innerHTML=`<div class=\"dtc-alert dtc-alert-error\" style=\"margin-top:8px;\">\u26a0\ufe0f Email requis<\/div>`; return; }\n            if(msgEl) msgEl.innerHTML=`<div style=\"color:#aaa;font-size:13px;margin-top:6px;\">\u23f3 ${T.voting}<\/div>`;\n            try {\n                const r = await fetch(REST+'\/vote',{method:'POST',headers:{'Content-Type':'application\/json'},\n                    body:JSON.stringify({submission_id:id,voter_email:email,voter_country:'',voter_lang:LANG})});\n                const d = await r.json();\n                if(d.success){\n                    const p = gallery.find(x=>x.id==id); if(p) p.vote_count++;\n                    if(msgEl) msgEl.innerHTML=`<div class=\"dtc-promo-box\"><p style=\"margin:0 0 4px;font-size:13px;color:#555;\">\ud83c\udf89 ${d.message}<\/p><\/div>`;\n                    if(emailEl) emailEl.disabled=true;\n                    document.querySelectorAll('.dtc-btn-vote').forEach(b=>b.disabled=true);\n                } else {\n                    if(msgEl) msgEl.innerHTML=`<div class=\"dtc-alert dtc-alert-error\" style=\"margin-top:8px;\">${d.message||T.already_voted}<\/div>`;\n                }\n            } catch(e){ if(msgEl) msgEl.innerHTML=`<div class=\"dtc-alert dtc-alert-error\" style=\"margin-top:8px;\">Erreur r\u00e9seau.<\/div>`; }\n        };\n\n        window.dtcShare = async function(platform, id){\n            const shareUrl = location.origin + location.pathname + '?tcphoto=' + id;\n            const text = T.share_text || '';\n            let win = '';\n            if(platform==='facebook')\n                win = 'https:\/\/www.facebook.com\/sharer\/sharer.php?u='+encodeURIComponent(shareUrl)\n                    + '&quote='+encodeURIComponent(text);\n\n            else if(platform==='twitter')\n                win = 'https:\/\/twitter.com\/intent\/tweet?url='+encodeURIComponent(shareUrl)\n                    + '&text='+encodeURIComponent(text);\n\n            else if(platform==='linkedin')\n                win = 'https:\/\/www.linkedin.com\/shareArticle?mini=true'\n                    + '&url='+encodeURIComponent(shareUrl)\n                    + '&title='+encodeURIComponent('TOP CULTURE Photo Contest')\n                    + '&summary='+encodeURIComponent(text);\n\n            if(platform==='copy'){\n                try { await navigator.clipboard.writeText(shareUrl); alert(T.share_copied||''); } catch(e){}\n            } else if(win){\n                window.open(win,'_blank','width=600,height=520,noopener');\n            }\n\n            try {\n                const r = await fetch(REST+'\/share',{method:'POST',headers:{'Content-Type':'application\/json'},body:JSON.stringify({submission_id:id})});\n                const d = await r.json();\n                if(d.success){\n                    const p = gallery.find(x=>x.id==id); if(p) p.share_count = d.share_count;\n                    const el = document.getElementById('share-num-'+id); if(el) el.textContent = d.share_count;\n                }\n            } catch(e){}\n        };\n\n        function renderComments(id, arr){\n            const list = document.getElementById('clist-'+id);\n            if(!list) return;\n            if(!arr || !arr.length){ list.innerHTML = `<div class=\"dtc-comment-empty\">${T.comment_empty}<\/div>`; return; }\n            list.innerHTML = arr.map(c=>`<div class=\"dtc-comment-item\">\n                <div class=\"dtc-comment-author\">${escapeHtml(c.author_name)}<\/div>\n                <div class=\"dtc-comment-body\">${escapeHtml(c.comment_text)}<\/div>\n            <\/div>`).join('');\n        }\n\n        window.dtcToggleComments = async function(id){\n            const box = document.getElementById('comments-'+id);\n            const tg  = document.getElementById('ctoggle-'+id);\n            if(!box) return;\n            const open = box.style.display !== 'none';\n            if(open){\n                box.style.display='none';\n                if(tg){ const lbl=tg.querySelector('.ctoggle-label'); if(lbl) lbl.textContent=T.comment_show; }\n                return;\n            }\n            box.style.display='block';\n            if(tg){ const lbl=tg.querySelector('.ctoggle-label'); if(lbl) lbl.textContent=T.comment_hide; }\n            if(box.dataset.loaded) return;\n            box.dataset.loaded='1';\n            const list = document.getElementById('clist-'+id);\n            if(list) list.innerHTML = `<div class=\"dtc-comment-empty\">\u2026<\/div>`;\n            try {\n                const r = await fetch(REST+'\/comments?submission_id='+id);\n                const d = await r.json();\n                renderComments(id, d);\n            } catch(e){ if(list) list.innerHTML=''; }\n        };\n\n        window.dtcPostComment = async function(id){\n            const nameEl = document.getElementById('cname-'+id);\n            const textEl = document.getElementById('ctext-'+id);\n            const name = nameEl?.value?.trim();\n            const text = textEl?.value?.trim();\n            if(!name || !text) return;\n            try {\n                const r = await fetch(REST+'\/comment',{method:'POST',headers:{'Content-Type':'application\/json'},body:JSON.stringify({submission_id:id,author_name:name,comment_text:text})});\n                const d = await r.json();\n                if(d.success){\n                    if(textEl) textEl.value='';\n                    const cb=document.getElementById('cbub-'+id); if(cb) cb.textContent=d.comment_count;\n                    const cn=document.getElementById('cnum-'+id); if(cn) cn.textContent=d.comment_count;\n                    const p = gallery.find(x=>x.id==id); if(p) p.comment_count = d.comment_count;\n                    const list = document.getElementById('clist-'+id);\n                    if(list){\n                        const empty = list.querySelector('.dtc-comment-empty'); if(empty) list.innerHTML='';\n                        const item = document.createElement('div');\n                        item.className='dtc-comment-item';\n                        item.innerHTML = `<div class=\"dtc-comment-author\">${escapeHtml(d.comment.author_name)}<\/div><div class=\"dtc-comment-body\">${escapeHtml(d.comment.comment_text)}<\/div>`;\n                        list.insertBefore(item, list.firstChild);\n                    }\n                }\n            } catch(e){}\n        };\n\n        async function loadGallery(){\n            try {\n                const url = filterCountry ? REST+'\/gallery?country='+filterCountry : REST+'\/gallery';\n                const r = await fetch(url);\n                gallery = await r.json();\n            } catch(e){ gallery=[]; }\n            render();\n        }\n        loadGallery();\n    })();\n    <\/script>\n    [\/et_pb_code][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.27.6&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.27.6&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220;][et_pb_code _builder_version=&#8220;4.27.6&#8243; _module_preset=&#8220;default&#8220; hover_enabled=&#8220;0&#8243; global_colors_info=&#8220;{}&#8220; sticky_enabled=&#8220;0&#8243;]    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@700;800;900&family=Poppins:wght@400;500;600&display=swap\" rel=\"stylesheet\">\n    <div id=\"dtc-ranking-widget\" data-rest=\"https:\/\/www.dynseo.com\/de\/wp-json\/dynseo\/v1\/tc-photo\"><\/div>\n    <script>\n    (function(){\n        const W    = document.getElementById('dtc-ranking-widget');\n        const REST = W.dataset.rest;\n        const FORCED = \"fr\";\n        const LANG   = FORCED || (['fr','en','it'].includes((navigator.language||'').substring(0,2)) ? (navigator.language||'').substring(0,2) : 'fr');\n\n        const T = {\n            fr: { title:'\ud83c\udfc6 Classement des photos', participant:'Participant', country:'Pays', votes:'Votes', empty_title:'Le classement arrive bient\u00f4t !', empty_sub:'Les votes s\\'ouvrent d\u00e8s que les premi\u00e8res photos sont soumises et valid\u00e9es. Soyez le premier \u00e0 participer !', loading:'Chargement\u2026', error:'Erreur de chargement.' },\n            en: { title:'\ud83c\udfc6 Photo rankings', participant:'Participant', country:'Country', votes:'Votes', empty_title:'Rankings coming soon!', empty_sub:'Votes open as soon as the first photos are submitted and validated. Be the first to take part!', loading:'Loading\u2026', error:'Loading error.' },\n            it: { title:'\ud83c\udfc6 Classifica delle foto', participant:'Partecipante', country:'Paese', votes:'Voti', empty_title:'La classifica arriva presto!', empty_sub:'Le votazioni si aprono non appena le prime foto vengono inviate e validate. Sii il primo a partecipare!', loading:'Caricamento\u2026', error:'Errore di caricamento.' },\n        };\n        const t = T[LANG] || T.fr;\n\n        const FLAGS = {fr:'\ud83c\uddeb\ud83c\uddf7',be:'\ud83c\udde7\ud83c\uddea',ch:'\ud83c\udde8\ud83c\udded',it:'\ud83c\uddee\ud83c\uddf9',es:'\ud83c\uddea\ud83c\uddf8',pt:'\ud83c\uddf5\ud83c\uddf9',de:'\ud83c\udde9\ud83c\uddea',nl:'\ud83c\uddf3\ud83c\uddf1',lu:'\ud83c\uddf1\ud83c\uddfa',ca:'\ud83c\udde8\ud83c\udde6',ma:'\ud83c\uddf2\ud83c\udde6',sn:'\ud83c\uddf8\ud83c\uddf3'};\n\n        function renderEmpty(){\n            return `<style>\n            .dtc-rank-wrap{font-family:'Poppins',sans-serif;max-width:800px;margin:0 auto;padding:20px 0;}\n            .dtc-rank-header{background:linear-gradient(135deg,#5e5ed7,#a9e2e4);border-radius:20px 20px 0 0;padding:24px 32px;display:flex;align-items:center;gap:14px;}\n            .dtc-rank-header-title{font-family:'Montserrat',sans-serif;font-size:20px;font-weight:900;color:#fff;margin:0;}\n            .dtc-rank-empty{background:#fff;border-radius:0 0 20px 20px;box-shadow:0 8px 32px rgba(94,94,215,.1);padding:60px 32px;text-align:center;}\n            .dtc-rank-empty-icon{font-size:60px;display:block;margin-bottom:20px;}\n            .dtc-rank-empty-title{font-family:'Montserrat',sans-serif;font-size:20px;font-weight:900;color:#1a1a2e;margin-bottom:10px;}\n            .dtc-rank-empty-sub{font-size:14px;color:#94a3b8;max-width:420px;margin:0 auto 32px;line-height:1.7;}\n            .dtc-rank-empty-rows{display:flex;flex-direction:column;gap:10px;max-width:480px;margin:0 auto;}\n            .dtc-rank-empty-row{background:#f8f8ff;border-radius:12px;padding:14px 18px;display:flex;align-items:center;gap:14px;border:1px solid rgba(94,94,215,.07);}\n            .dtc-rank-empty-medal{font-size:24px;width:36px;text-align:center;flex-shrink:0;}\n            .dtc-rank-empty-bar{flex:1;height:12px;background:#e8e8f5;border-radius:6px;overflow:hidden;}\n            .dtc-rank-empty-fill{height:100%;background:linear-gradient(90deg,#d0d0f0,#e8e8fa);border-radius:6px;}\n            .dtc-rank-empty-num{font-family:'Montserrat',sans-serif;font-size:13px;font-weight:900;color:#c5c5e8;min-width:28px;text-align:right;}\n            <\/style>\n            <div class=\"dtc-rank-wrap\">\n                <div class=\"dtc-rank-header\"><h2 class=\"dtc-rank-header-title\">${t.title}<\/h2><\/div>\n                <div class=\"dtc-rank-empty\">\n                    <span class=\"dtc-rank-empty-icon\">\ud83c\udfc6<\/span>\n                    <div class=\"dtc-rank-empty-title\">${t.empty_title}<\/div>\n                    <p class=\"dtc-rank-empty-sub\">${t.empty_sub}<\/p>\n                    <div class=\"dtc-rank-empty-rows\">\n                        <div class=\"dtc-rank-empty-row\"><div class=\"dtc-rank-empty-medal\">\ud83e\udd47<\/div><div class=\"dtc-rank-empty-bar\"><div class=\"dtc-rank-empty-fill\" style=\"width:90%\"><\/div><\/div><div class=\"dtc-rank-empty-num\">\u2014<\/div><\/div>\n                        <div class=\"dtc-rank-empty-row\"><div class=\"dtc-rank-empty-medal\">\ud83e\udd48<\/div><div class=\"dtc-rank-empty-bar\"><div class=\"dtc-rank-empty-fill\" style=\"width:65%\"><\/div><\/div><div class=\"dtc-rank-empty-num\">\u2014<\/div><\/div>\n                        <div class=\"dtc-rank-empty-row\"><div class=\"dtc-rank-empty-medal\">\ud83e\udd49<\/div><div class=\"dtc-rank-empty-bar\"><div class=\"dtc-rank-empty-fill\" style=\"width:45%\"><\/div><\/div><div class=\"dtc-rank-empty-num\">\u2014<\/div><\/div>\n                        <div class=\"dtc-rank-empty-row\"><div class=\"dtc-rank-empty-medal\" style=\"color:#c5c5e8;font-size:16px;font-weight:900;font-family:'Montserrat',sans-serif;\">4<\/div><div class=\"dtc-rank-empty-bar\"><div class=\"dtc-rank-empty-fill\" style=\"width:28%\"><\/div><\/div><div class=\"dtc-rank-empty-num\">\u2014<\/div><\/div>\n                        <div class=\"dtc-rank-empty-row\"><div class=\"dtc-rank-empty-medal\" style=\"color:#c5c5e8;font-size:16px;font-weight:900;font-family:'Montserrat',sans-serif;\">5<\/div><div class=\"dtc-rank-empty-bar\"><div class=\"dtc-rank-empty-fill\" style=\"width:14%\"><\/div><\/div><div class=\"dtc-rank-empty-num\">\u2014<\/div><\/div>\n                    <\/div>\n                <\/div>\n            <\/div>`;\n        }\n\n        function renderRanking(sorted){\n            const max = sorted[0].vote_count || 1;\n            return `<style>\n            .dtc-rank-wrap{font-family:'Poppins',sans-serif;max-width:800px;margin:0 auto;padding:20px 0;}\n            .dtc-rank-header{background:linear-gradient(135deg,#5e5ed7,#a9e2e4);border-radius:20px 20px 0 0;padding:24px 32px;}\n            .dtc-rank-header-title{font-family:'Montserrat',sans-serif;font-size:20px;font-weight:900;color:#fff;margin:0;}\n            .dtc-rank-table{background:#fff;border-radius:0 0 20px 20px;box-shadow:0 8px 32px rgba(94,94,215,.1);overflow:hidden;}\n            .dtc-rank-row{display:grid;grid-template-columns:56px 1fr 60px 80px 140px;align-items:center;padding:14px 20px;border-bottom:1px solid rgba(94,94,215,.06);transition:background .15s;}\n            .dtc-rank-row:last-child{border-bottom:none;}\n            .dtc-rank-row:hover{background:#fafaff;}\n            .dtc-rank-thead{background:#f4f4fd;font-family:'Montserrat',sans-serif;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:#94a3b8;}\n            .dtc-rank-thead .dtc-rank-row{padding:10px 20px;}\n            .dtc-rank-medal{font-size:22px;text-align:center;}\n            .dtc-rank-num{font-family:'Montserrat',sans-serif;font-size:14px;font-weight:900;color:#c5c5e8;text-align:center;}\n            .dtc-rank-name{font-family:'Montserrat',sans-serif;font-size:14px;font-weight:800;color:#1a1a2e;}\n            .dtc-rank-flag{font-size:22px;text-align:center;}\n            .dtc-rank-count{font-family:'Montserrat',sans-serif;font-size:18px;font-weight:900;color:#5e5ed7;text-align:center;}\n            .dtc-rank-bar-wrap{padding-right:8px;}\n            .dtc-rank-bar{background:#e8e8f5;border-radius:6px;height:10px;overflow:hidden;}\n            .dtc-rank-bar-fill{height:100%;background:linear-gradient(90deg,#5e5ed7,#a9e2e4);border-radius:6px;transition:width .4s ease;}\n            @media(max-width:540px){\n                .dtc-rank-row{grid-template-columns:44px 1fr 44px 60px;}\n                .dtc-rank-bar-wrap{display:none;}\n                .dtc-rank-thead .dtc-rank-bar-wrap{display:none;}\n            }\n            <\/style>\n            <div class=\"dtc-rank-wrap\">\n                <div class=\"dtc-rank-header\"><h2 class=\"dtc-rank-header-title\">${t.title}<\/h2><\/div>\n                <div class=\"dtc-rank-table\">\n                    <div class=\"dtc-rank-thead\">\n                        <div class=\"dtc-rank-row\">\n                            <div>#<\/div>\n                            <div>${t.participant}<\/div>\n                            <div style=\"text-align:center;\">${t.country}<\/div>\n                            <div style=\"text-align:center;\">${t.votes}<\/div>\n                            <div class=\"dtc-rank-bar-wrap\"><\/div>\n                        <\/div>\n                    <\/div>\n                    ${sorted.map((p,i)=>{\n                        const medal = i===0?'\ud83e\udd47':i===1?'\ud83e\udd48':i===2?'\ud83e\udd49':'';\n                        const num   = medal ? `<div class=\"dtc-rank-medal\">${medal}<\/div>` : `<div class=\"dtc-rank-num\">${i+1}<\/div>`;\n                        const flag  = FLAGS[p.country] || '\ud83c\udf0d';\n                        const pct   = Math.round(p.vote_count\/max*100);\n                        return `<div class=\"dtc-rank-row\">\n                            ${num}\n                            <div class=\"dtc-rank-name\">${p.residence}<\/div>\n                            <div class=\"dtc-rank-flag\">${flag}<\/div>\n                            <div class=\"dtc-rank-count\">${p.vote_count}<\/div>\n                            <div class=\"dtc-rank-bar-wrap\"><div class=\"dtc-rank-bar\"><div class=\"dtc-rank-bar-fill\" style=\"width:${pct}%\"><\/div><\/div><\/div>\n                        <\/div>`;\n                    }).join('')}\n                <\/div>\n            <\/div>`;\n        }\n\n        W.innerHTML = renderEmpty();\n\n        fetch(REST+'\/gallery')\n            .then(r=>r.json())\n            .then(data=>{\n                const approved = data.filter(p=>parseInt(p.vote_count)>=0);\n                if(!approved.length){ return; }\n                const sorted = approved.sort((a,b)=>b.vote_count-a.vote_count).slice(0,10);\n                W.innerHTML = renderRanking(sorted);\n            })\n            .catch(()=>{ W.innerHTML = `<p style=\"color:#aaa;text-align:center;padding:40px;\">${t.error}<\/p>`; });\n    })();\n    <\/script>\n    [\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n<p>[et_pb_code]<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Was ist der Fotowettbewerb TOP CULTURE?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Es handelt sich um den Publikumspreis 2026, bei dem Teilnehmer ihre sch\u00f6nsten Fotos der Ausgabe 2026 einreichen k\u00f6nnen. Jeder kann abstimmen, und es gibt nur einen gro\u00dfen Gewinner, der ein Abonnement f\u00fcr das Programm seiner Wahl erh\u00e4lt.\"}},{\"@type\":\"Question\",\"name\":\"Welche L\u00e4nder nehmen am Wettbewerb teil?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Insgesamt 7 L\u00e4nder nehmen teil: Frankreich, Italien, Spanien, Deutschland, Belgien, Schweiz und Luxemburg. Am Ende wird es nur einen einzigen gro\u00dfen Gewinner geben.\"}},{\"@type\":\"Question\",\"name\":\"Wie kann ich ein Foto einreichen?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Sie laden ein oder mehrere Fotos Ihrer Aktivit\u00e4ten hoch und f\u00fcgen einen Kommentar hinzu. Die \u00dcbersetzung des Kommentars ins Franz\u00f6sische, Englische und Italienische erfolgt automatisch.\"}},{\"@type\":\"Question\",\"name\":\"Wie oft kann ich abstimmen und was gewinne ich dadurch?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Sie k\u00f6nnen 1 kostenlose Stimme pro Tag und pro E-Mail-Adresse abgeben, die jeden Morgen erneuert wird. Nach Ihrer Abstimmung erhalten Sie automatisch und sofort per E-Mail einen 10\u20ac-Rabattgutschein f\u00fcr den DYNSEO-Katalog.\"}},{\"@type\":\"Question\",\"name\":\"Wann finden die Abstimmung und die Ergebnisverk\u00fcndung statt?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Die Abstimmung l\u00e4uft vom 22. Juni bis 17. Juli 2026. Die endg\u00fcltige Rangliste wird am 17. Juli 2026 um 14 Uhr ver\u00f6ffentlicht, wobei die Residenz mit den meisten Stimmen den Publikumspreis gewinnt.\"}},{\"@type\":\"Question\",\"name\":\"Was gewinnt die Residenz mit den meisten Stimmen?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Die Residenz mit den meisten Stimmen gewinnt den Publikumspreis: ein Jahresabonnement f\u00fcr das DYNSEO-Programm ihrer Wahl. Es gibt nur einen einzigen gro\u00dfen Gewinner unter allen teilnehmenden L\u00e4ndern.\"}}]}<\/script>[\/et_pb_code]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>    <div id=\"dtc-app\" data-rest=\"https:\/\/www.dynseo.com\/de\/wp-json\/dynseo\/v1\/tc-photo\" data-nonce=\"76d86981c9\" data-view=\"all\"><\/div>\n    <script>\n    (function(){\n        const REST   = \"https:\\\/\\\/www.dynseo.com\\\/de\\\/wp-json\\\/dynseo\\\/v1\\\/tc-photo\";\n        const NONCE  = \"76d86981c9\";\n        const VIEW   = \"all\";\n        const OPEN   = false;\n        const APP    = document.getElementById('dtc-app');\n\n        const FORCED = \"\";\n        const LANG   = FORCED || (['fr','en','it'].includes((navigator.language||'').substring(0,2)) ? (navigator.language||'').substring(0,2) : 'fr');\n        const I18N = {\n            fr: {\n                tab_vote:'\ud83d\uddf3 Voter pour une photo', tab_submit:'\ud83d\udce4 Soumettre votre photo',\n                name_ph:'Nom de votre r\u00e9sidence *', country_ph:'Pays *', email_ph:'Email *',\n                comment_ph:'D\u00e9crivez votre photo en quelques mots\u2026',\n                translate_btn:'\ud83c\udf10 Traduire automatiquement', translating:'Traduction en cours\u2026',\n                submit_btn:'\ud83d\udce4 Soumettre la photo', submitting:'Envoi\u2026',\n                vote_btn:'\u2764\ufe0f Voter', voting:'Envoi du vote\u2026',\n                email_vote_ph:'Votre email pour recevoir votre bon de r\u00e9duction',\n                votes_label:'\u2764\ufe0f', \n                your_country:'Votre pays',\n                photo_label:'Choisir une photo (max 8 Mo)',\n                comment_fr_label:'Commentaire en fran\u00e7ais',\n                comment_en_label:'Commentaire en anglais',\n                comment_it_label:'Commentario in italiano',\n                caption_hint:'\u270d\ufe0f \u00c9crivez votre commentaire dans une seule langue, puis cliquez sur \u00ab Traduire automatiquement \u00bb en bas pour remplir les autres.',\n                already_voted:\"Vous avez d\u00e9j\u00e0 vot\u00e9 aujourd\\'hui ! Revenez demain \ud83d\ude0a\",\n                closed:'Le concours est actuellement ferm\u00e9.',\n                all_countries:'Tous les pays',\n                no_photos:'Aucune photo pour le moment. Soyez le premier \u00e0 soumettre la v\u00f4tre !',\n                filter_label:'Filtrer par pays :',\n                shares_label:'\u2197\ufe0f',\n                share_label:'Partager :',\n                share_copied:'Lien copi\u00e9 dans le presse-papier !',\n                share_text:\"D\u00e9couvrez cette photo du concours TOP CULTURE de @Dynseo !\",\n                comments_label:'\ud83d\udcac',\n                comment_show:'Voir les commentaires',\n                comment_hide:'Masquer les commentaires',\n                comment_name_ph:'Votre nom',\n                comment_text_ph:'Votre commentaire\u2026',\n                comment_send:'Envoyer',\n                comment_empty:'Soyez le premier \u00e0 commenter !',\n            },\n            en: {\n                tab_vote:'\ud83d\uddf3 Vote for a photo', tab_submit:'\ud83d\udce4 Submit your photo',\n                name_ph:'Your residence name *', country_ph:'Country *', email_ph:'Email *',\n                comment_ph:'Describe your photo in a few words\u2026',\n                translate_btn:'\ud83c\udf10 Auto-translate', translating:'Translating\u2026',\n                submit_btn:'\ud83d\udce4 Submit photo', submitting:'Sending\u2026',\n                vote_btn:'\u2764\ufe0f Vote', \n                voting:'Voting\u2026',\n                email_vote_ph:'Your email to receive your discount code',\n                votes_label:'\u2764\ufe0f', \n                your_country:'Your country',\n                photo_label:'Choose a photo (max 8 MB)',\n                comment_fr_label:'Comment in French',\n                comment_en_label:'Comment in English',\n                comment_it_label:'Comment in Italian',\n                caption_hint:'\u270d\ufe0f Write your caption in just one language, then click \u201cAuto-translate\u201d below to fill in the others.',\n                already_voted:'You already voted today! Come back tomorrow \ud83d\ude0a',\n                closed:'The contest is currently closed.',\n                all_countries:'All countries',\n                no_photos:'No photos yet. Be the first to submit yours!',\n                filter_label:'Filter by country:',\n                shares_label:'\u2197\ufe0f',\n                share_label:'Share:',\n                share_copied:'Link copied to clipboard!',\n                share_text:\"Check out this photo from @Dynseo TOP CULTURE contest!\",\n                comments_label:'\ud83d\udcac',\n                comment_show:'View comments',\n                comment_hide:'Hide comments',\n                comment_name_ph:'Your name',\n                comment_text_ph:'Your comment\u2026',\n                comment_send:'Send',\n                comment_empty:'Be the first to comment!',\n            },\n            it: {\n                tab_vote:'\ud83d\uddf3 Vota una foto', tab_submit:'\ud83d\udce4 Invia la tua foto',\n                name_ph:'Nome della tua struttura *', country_ph:'Paese *', email_ph:'Email *',\n                comment_ph:'Descrivi la tua foto in poche parole\u2026',\n                translate_btn:'\ud83c\udf10 Traduzione automatica', translating:'Traduzione\u2026',\n                submit_btn:'\ud83d\udce4 Invia la foto', submitting:'Invio\u2026',\n                vote_btn:'\u2764\ufe0f Vota', \n                voting:'Invio voto\u2026',\n                email_vote_ph:'La tua email per ricevere il codice sconto',\n                votes_label:'\u2764\ufe0f', \n                your_country:'Il tuo paese',\n                photo_label:'Scegli una foto (max 8 MB)',\n                comment_fr_label:'Commento in francese',\n                comment_en_label:'Commento in inglese',\n                comment_it_label:'Commento in italiano',\n                caption_hint:'\u270d\ufe0f Scrivi la didascalia in una sola lingua, poi clicca su \u201cTraduzione automatica\u201d in basso per compilare le altre.',\n                already_voted:\"Hai gi\u00e0 votato oggi! Torna domani \ud83d\ude0a\",\n                closed:'Il concorso \u00e8 attualmente chiuso.',\n                all_countries:'Tutti i paesi',\n                no_photos:'Nessuna foto per ora. Sii il primo a inviare la tua!',\n                filter_label:'Filtra per paese:',\n                shares_label:'\u2197\ufe0f',\n                share_label:'Condividi:',\n                share_copied:'Link copiato negli appunti!',\n                share_text:\"Guarda questa foto del concorso TOP CULTURE di @Dynseo!\",\n                comments_label:'\ud83d\udcac',\n                comment_show:'Vedi i commenti',\n                comment_hide:'Nascondi i commenti',\n                comment_name_ph:'Il tuo nome',\n                comment_text_ph:'Il tuo commento\u2026',\n                comment_send:'Invia',\n                comment_empty:'Sii il primo a commentare!',\n            },\n        };\n        const T = I18N[LANG] || I18N.fr;\n\n        const COUNTRIES = [\n            {v:'fr',f:'\ud83c\uddeb\ud83c\uddf7',l:{fr:'France',en:'France',it:'Francia'}},\n            {v:'be',f:'\ud83c\udde7\ud83c\uddea',l:{fr:'Belgique',en:'Belgium',it:'Belgio'}},\n            {v:'ch',f:'\ud83c\udde8\ud83c\udded',l:{fr:'Suisse',en:'Switzerland',it:'Svizzera'}},\n            {v:'it',f:'\ud83c\uddee\ud83c\uddf9',l:{fr:'Italie',en:'Italy',it:'Italia'}},\n            {v:'es',f:'\ud83c\uddea\ud83c\uddf8',l:{fr:'Espagne',en:'Spain',it:'Spagna'}},\n            {v:'pt',f:'\ud83c\uddf5\ud83c\uddf9',l:{fr:'Portugal',en:'Portugal',it:'Portogallo'}},\n            {v:'de',f:'\ud83c\udde9\ud83c\uddea',l:{fr:'Allemagne',en:'Germany',it:'Germania'}},\n            {v:'nl',f:'\ud83c\uddf3\ud83c\uddf1',l:{fr:'Pays-Bas',en:'Netherlands',it:'Paesi Bassi'}},\n            {v:'lu',f:'\ud83c\uddf1\ud83c\uddfa',l:{fr:'Luxembourg',en:'Luxembourg',it:'Lussemburgo'}},\n            {v:'ca',f:'\ud83c\udde8\ud83c\udde6',l:{fr:'Canada',en:'Canada',it:'Canada'}},\n            {v:'ma',f:'\ud83c\uddf2\ud83c\udde6',l:{fr:'Maroc',en:'Morocco',it:'Marocco'}},\n            {v:'sn',f:'\ud83c\uddf8\ud83c\uddf3',l:{fr:'S\u00e9n\u00e9gal',en:'Senegal',it:'Senegal'}},\n            {v:'other',f:'\ud83c\udf0d',l:{fr:'Autre',en:'Other',it:'Altro'}},\n        ];\n        function cName(c){ return (c.l[LANG]||c.l.fr); }\n        function escapeHtml(s){ return (s||'').replace(\/[&<>\"']\/g, m=>({'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[m])); }\n\n        let tab = (VIEW==='submit') ? 'submit' : 'vote';\n        let gallery = [], filterCountry='';\n        let photoFile=null, photoData=null, photoMime=null;\n        let translating=false, submitting=false;\n        let form={ residence:'', country:'', email:'', comment_fr:'', comment_en:'', comment_it:'' };\n\n        function css(){ \n            return `<style>\n        @import url('https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@700;800;900&family=Poppins:wght@400;500;600&display=swap');\n        #dtc-app *{box-sizing:border-box;}\n        #dtc-app{font-family:'Poppins',sans-serif;}\n        .dtc-wrap{max-width:1100px;margin:0 auto;padding:32px 20px 48px;}\n        .dtc-tabs{display:flex;gap:6px;margin-bottom:32px;background:#f0f0fb;border-radius:50px;padding:5px;width:fit-content;}\n        .dtc-tab{padding:11px 28px;cursor:pointer;font-family:'Montserrat',sans-serif;font-size:13px;font-weight:800;color:#888;border-radius:50px;transition:all .25s;border:none;background:transparent;letter-spacing:.3px;}\n        .dtc-tab.active{background:#5e5ed7;color:#fff;box-shadow:0 4px 14px rgba(94,94,215,.35);}\n        .dtc-tab:hover:not(.active){background:#e2e2f9;color:#5e5ed7;}\n        .dtc-filter{display:flex;align-items:center;gap:12px;margin-bottom:28px;flex-wrap:wrap;}\n        .dtc-filter label{font-family:'Montserrat',sans-serif;font-weight:800;color:#1a1a2e;font-size:13px;text-transform:uppercase;letter-spacing:.8px;}\n        .dtc-filter-pills{display:flex;flex-wrap:wrap;gap:8px;}\n        .dtc-pill-btn{padding:7px 16px;border-radius:50px;border:1.5px solid #e2e2f9;background:#fff;font-size:12px;font-weight:700;color:#888;cursor:pointer;transition:all .2s;font-family:'Poppins',sans-serif;}\n        .dtc-pill-btn.active{background:#5e5ed7;border-color:#5e5ed7;color:#fff;box-shadow:0 3px 10px rgba(94,94,215,.25);}\n        .dtc-pill-btn:hover:not(.active){background:#e2e2f9;border-color:#c5c5f0;color:#5e5ed7;}\n        .dtc-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;}\n        \n        .dtc-card{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 4px 20px rgba(94,94,215,.09);transition:transform .25s,box-shadow .25s;border:1px solid rgba(94,94,215,.07);}\n        .dtc-card:hover{transform:translateY(-6px);box-shadow:0 14px 40px rgba(94,94,215,.17);}\n        .dtc-card-img-wrap{position:relative;overflow:hidden;}\n        .dtc-card img{width:100%;height:210px;object-fit:cover;display:block;transition:transform .4s ease;}\n        .dtc-card:hover img{transform:scale(1.04);}\n        .dtc-card-rank{position:absolute;top:10px;left:10px;background:rgba(26,26,46,.72);color:#ffeca7;font-family:'Montserrat',sans-serif;font-size:12px;font-weight:900;padding:4px 11px;border-radius:20px;}\n        .dtc-card-flag{position:absolute;top:10px;right:10px;font-size:22px;background:rgba(255,255,255,.92);border-radius:8px;padding:2px 6px;line-height:1.4;}\n        .dtc-card-body{padding:18px;}\n        .dtc-card h3{margin:0 0 6px;font-family:'Montserrat',sans-serif;font-size:15px;font-weight:900;color:#1a1a2e;line-height:1.3;}\n        .dtc-card p{margin:0 0 12px;font-size:13px;color:#64748b;line-height:1.6;}\n        \n        \/*voting*\/\n        .dtc-vote-zone{background:#f8f8ff;border-radius:14px;padding:14px;}\n        .dtc-vote-top{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap;}\n        .dtc-vote-bubble{\n            \/*border:2px solid #c1cbdb;*\/\n            color: black;\n            \/*border-radius:50px;*\/\n            \/*padding:6px 14px;*\/\n            padding:2% 4%;\n            display:inline-flex;\n            align-items:center;\n            gap:6px;\n        }\n        .dtc-vote-bubble-num{\n            font: 900 clamp(16px, 1.4vw, 22px) 'Montserrat', sans-serif;\n            }\n        .dtc-vote-bubble-lbl{\n            font-size:16px;\n            }\n        .dtc-vote-row{display:flex;gap:8px;align-items:stretch;}\n        .dtc-vote-input{flex:1;padding:9px 13px;border:1.5px solid #dde;border-radius:10px;font-size:13px;outline:none;font-family:'Poppins',sans-serif;transition:border .2s;min-width:0;}\n        .dtc-vote-input:focus{border-color:#5e5ed7;}\n        .dtc-btn{padding:9px 18px;border:none;border-radius:10px;font-size:13px;font-family:'Montserrat',sans-serif;font-weight:800;cursor:pointer;transition:all .2s;}\n        .dtc-btn-vote{background:linear-gradient(135deg,#e73469,#ff6b95);color:#fff;white-space:nowrap;}\n        .dtc-btn-vote:hover{opacity:.88;transform:translateY(-1px);box-shadow:0 4px 14px rgba(231,52,105,.3);}\n        .dtc-btn-vote:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none;}\n        .dtc-promo-box{background:linear-gradient(135deg,#fff8d6,#fffbef);border:2px dashed #ffb600;border-radius:14px;padding:18px;text-align:center;margin-top:12px;}\n        .dtc-promo-code{font-family:'Montserrat',sans-serif;font-size:24px;font-weight:900;color:#5e5ed7;letter-spacing:4px;}\n        .dtc-empty{text-align:center;padding:70px 20px;}\n        .dtc-empty-icon{font-size:56px;margin-bottom:16px;display:block;}\n        .dtc-empty-title{font-family:'Montserrat',sans-serif;font-size:18px;font-weight:900;color:#1a1a2e;margin-bottom:8px;}\n        .dtc-empty-sub{font-size:14px;color:#94a3b8;margin-bottom:24px;}\n        .dtc-empty-btn{background:#5e5ed7;color:#fff;border:none;padding:12px 28px;border-radius:30px;font-family:'Montserrat',sans-serif;font-size:14px;font-weight:800;cursor:pointer;}\n        .dtc-form-wrap{max-width:660px;margin:0 auto;}\n        .dtc-form-header{background:linear-gradient(135deg,#5e5ed7,#a9e2e4);border-radius:20px 20px 0 0;padding:28px 32px;}\n        .dtc-form-header h2{font-family:'Montserrat',sans-serif;font-size:20px;font-weight:900;color:#fff;margin:0 0 4px;}\n        .dtc-form-header p{font-size:13px;color:rgba(255,255,255,.8);margin:0;}\n        .dtc-form{background:#fff;border-radius:0 0 20px 20px;padding:32px;box-shadow:0 8px 32px rgba(94,94,215,.12);}\n        .dtc-field{margin-bottom:18px;}\n        .dtc-field label{display:block;font-size:12px;font-weight:700;color:#64748b;margin-bottom:6px;text-transform:uppercase;letter-spacing:.6px;}\n        .dtc-field input,.dtc-field select,.dtc-field textarea{width:100%;padding:11px 15px;border:1.5px solid #e2e8f0;border-radius:10px;font-size:14px;font-family:'Poppins',sans-serif;outline:none;transition:border .2s,box-shadow .2s;background:#fff;}\n        .dtc-field input:focus,.dtc-field select:focus,.dtc-field textarea:focus{border-color:#5e5ed7;box-shadow:0 0 0 3px rgba(94,94,215,.1);}\n        .dtc-field textarea{min-height:90px;resize:vertical;}\n        .dtc-photo-zone{border:2px dashed #c5c5f0;border-radius:12px;padding:28px;text-align:center;cursor:pointer;transition:all .2s;background:#fafaff;}\n        .dtc-photo-zone:hover{border-color:#5e5ed7;background:#f0f0ff;}\n        .dtc-photo-zone-icon{font-size:36px;margin-bottom:8px;}\n        .dtc-photo-zone-txt{font-size:13px;color:#94a3b8;}\n        .dtc-photo-preview{width:100%;height:200px;object-fit:cover;border-radius:10px;margin-top:12px;display:none;}\n        .dtc-btn-translate{background:#f0f0ff;color:#5e5ed7;border:1.5px solid #c5c5f0;width:100%;margin-bottom:4px;padding:11px;border-radius:10px;font-size:13px;font-family:'Montserrat',sans-serif;font-weight:800;}\n        .dtc-btn-translate:hover{background:#5e5ed7;color:#fff;border-color:#5e5ed7;}\n        .dtc-btn-submit{background:linear-gradient(135deg,#5e5ed7,#a9e2e4);color:#fff;width:100%;padding:15px;font-size:15px;border-radius:30px;margin-top:12px;letter-spacing:.3px;}\n        .dtc-btn-submit:hover{opacity:.9;transform:translateY(-2px);box-shadow:0 6px 20px rgba(94,94,215,.35);}\n        .dtc-btn-submit:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none;}\n        .dtc-alert{padding:14px 18px;border-radius:12px;margin-bottom:18px;font-size:14px;}\n        .dtc-alert-success{background:#e8fff3;color:#0a6e36;border-left:4px solid #28a745;}\n        .dtc-alert-error{background:#fff0f0;color:#a00;border-left:4px solid #dc3545;}\n\n        \/* sharing *\/\n        .dtc-share-bubble{\n            \/*border:2px solid #c1cbdb;*\/\n            color: black;\n            \/*border-radius:50px;*\/\n            padding:2% 4%;\n            display:inline-flex;\n            align-items:center;\n            gap:6px;\n        }\n        .dtc-share-bubble-num{\n            font: 900 clamp(16px, 1.4vw, 22px) 'Montserrat', sans-serif;         \n        }\n        .dtc-share-bubble-lbl{\n            font-size:16px;\n            }\n        .dtc-share-row{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap;}\n        .dtc-share-label{font-size:12px;color:#94a3b8;font-weight:700;}\n        .dtc-share-btn{width:34px;height:34px;border:none;border-radius:50%;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:transform .15s,opacity .15s;padding:0;}\n        .dtc-share-btn:hover{transform:translateY(-2px);opacity:.9;}\n        .dtc-share-btn svg{width:16px;height:16px;fill:#fff;}\n        .dtc-sh-fb{background:#1877f2;}\n        .dtc-sh-ig{background:linear-gradient(45deg,#f09433,#dc2743,#bc1888);}\n        .dtc-sh-tw{background:#000;}\n        .dtc-sh-li{background:#0a66c2;}\n        .dtc-sh-link{background:#5e5ed7;}\n\n        \/* comments *\/\n        .dtc-comment-bubble{\n            \/*border:2px solid #c1cbdb;*\/\n            color: black;\n            \/*border-radius:50px;*\/\n            padding:2% 4%;\n            display:inline-flex;\n            align-items:center;\n            gap:6px;\n        }\n        .dtc-comment-bubble-num{\n            font: 900 clamp(16px, 1.4vw, 22px) 'Montserrat', sans-serif;     \n        }\n        .dtc-comment-bubble-lbl{\n            font-size:16px;\n            }\n        .dtc-comments-toggle{margin-top:12px;font-family:'Montserrat',sans-serif;font-size:12px;font-weight:800;color:#5e5ed7;cursor:pointer;user-select:none;display:inline-flex;align-items:center;gap:6px;}\n        .dtc-comments-toggle:hover{text-decoration:underline;}\n        .dtc-comments{margin-top:10px;background:#fff;border:1px solid #ececfa;border-radius:12px;padding:12px;}\n        .dtc-comments-list{display:flex;flex-direction:column;gap:8px;max-height:220px;overflow-y:auto;margin-bottom:10px;}\n        .dtc-comment-item{background:#f8f8ff;border-radius:10px;padding:8px 12px;}\n        .dtc-comment-author{font-family:'Montserrat',sans-serif;font-size:12px;font-weight:800;color:#1a1a2e;}\n        .dtc-comment-body{font-size:13px;color:#555;line-height:1.5;margin-top:2px;word-break:break-word;}\n        .dtc-comment-empty{font-size:13px;color:#aaa;text-align:center;padding:10px;}\n        .dtc-comment-form{display:flex;flex-direction:column;gap:8px;}\n        .dtc-comment-name,.dtc-comment-text{width:100%;padding:8px 12px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;font-family:'Poppins',sans-serif;outline:none;}\n        .dtc-comment-name:focus,.dtc-comment-text:focus{border-color:#5e5ed7;}\n        .dtc-comment-text{min-height:60px;resize:vertical;}\n        .dtc-comment-send{align-self:flex-end;background:#5e5ed7;color:#fff;border:none;border-radius:8px;padding:8px 18px;font-family:'Montserrat',sans-serif;font-weight:800;font-size:12px;cursor:pointer;}\n        .dtc-comment-send:hover{opacity:.9;}\n\n        @media(max-width:640px){\n            .dtc-gallery{grid-template-columns:1fr;}\n            .dtc-tabs{width:100%;}\n            .dtc-tab{flex:1;text-align:center;padding:10px 8px;font-size:11px;}\n            .dtc-form-header,.dtc-form{padding:20px;}\n            .dtc-wrap{padding:20px 14px 36px;}\n        }\n        <\/style>`; }\n\n        function render(){\n            let html = css();\n            html += `<div class=\"dtc-wrap\">`;\n            if (!OPEN){ html += `<div class=\"dtc-alert dtc-alert-error\">${T.closed}<\/div><\/div>`; APP.innerHTML=html; return; }\n            if(VIEW==='all'){\n                html += `<div class=\"dtc-tabs\">`;\n                html += `<div class=\"dtc-tab${tab==='vote'?' active':''}\" onclick=\"dtcSetTab('vote')\">${T.tab_vote}<\/div>`;\n                html += `<div class=\"dtc-tab${tab==='submit'?' active':''}\" onclick=\"dtcSetTab('submit')\">${T.tab_submit}<\/div>`;\n                html += `<\/div>`;\n            }\n            if(tab==='vote' && VIEW!=='submit') html += renderGallery();\n            if(tab==='submit' && VIEW!=='vote') html += renderForm();\n            html += `<\/div>`;\n            APP.innerHTML = html;\n            if(tab==='submit') bindFormEvents();\n        }\n\n        function renderGallery(){\n            const allCountriesUsed = [...new Set(gallery.map(p=>p.country))];\n            const countryPills = allCountriesUsed.map(cv=>{\n                const co = COUNTRIES.find(c=>c.v===cv);\n                return `<button class=\"dtc-pill-btn${filterCountry===cv?' active':''}\" onclick=\"dtcFilter('${cv}')\">${co?co.f:''} ${co?cName(co):cv}<\/button>`;\n            }).join('');\n            let html = `<div class=\"dtc-filter\">\n                <label>${T.filter_label}<\/label>\n                <div class=\"dtc-filter-pills\">\n                    <button class=\"dtc-pill-btn${!filterCountry?' active':''}\" onclick=\"dtcFilter('')\">${T.all_countries}<\/button>\n                    ${countryPills}\n                <\/div>\n            <\/div>`;\n            const filtered = filterCountry ? gallery.filter(p=>p.country===filterCountry) : gallery;\n            if(!filtered.length){\n                return html+`<div class=\"dtc-empty\">\n                    <span class=\"dtc-empty-icon\">\ud83d\udcf8<\/span>\n                    <div class=\"dtc-empty-title\">${T.no_photos}<\/div>\n                    <div class=\"dtc-empty-sub\">${LANG==='fr'?'Les photos appara\u00eetront ici apr\u00e8s validation.':LANG==='it'?'Le foto appariranno qui dopo la convalida.':'Photos will appear here after validation.'}<\/div>\n                    <button class=\"dtc-empty-btn\" onclick=\"dtcSetTab('submit')\">\ud83d\udce4 ${T.tab_submit}<\/button>\n                <\/div>`; }\n            html += `<div class=\"dtc-gallery\">`;\n            filtered.forEach((p,idx)=>{\n                const comment = LANG==='en'?(p.comment_en||p.comment_fr): LANG==='it'?(p.comment_it||p.comment_fr):p.comment_fr;\n                const flag = COUNTRIES.find(c=>c.v===p.country);\n                const rank = idx+1;\n                const medal = rank===1?'\ud83e\udd47':rank===2?'\ud83e\udd48':rank===3?'\ud83e\udd49':'#'+rank;\n                html += `<div class=\"dtc-card\">\n                    <div class=\"dtc-card-img-wrap\">\n                        <img decoding=\"async\" src=\"${p.photo_url}\" alt=\"${escapeHtml(p.residence)}\" loading=\"lazy\">\n                        <div class=\"dtc-card-rank\">${medal}<\/div>\n                        <div class=\"dtc-card-flag\">${flag?flag.f:'\ud83c\udf0d'}<\/div>\n                    <\/div>\n                    <div class=\"dtc-card-body\">\n                        <h3>${escapeHtml(p.residence)}<\/h3>\n                        <p>${escapeHtml(comment)}<\/p>\n                        \n                        <div class=\"dtc-vote-zone\">\n                            <div class=\"dtc-vote-top\">\n                                <div class=\"dtc-vote-bubble\">\n                                    <span class=\"dtc-vote-bubble-num\">${p.vote_count}<\/span>\n                                    <span class=\"dtc-vote-bubble-lbl\">${T.votes_label}<\/span>\n                                <\/div>\n                                <div class=\"dtc-share-bubble\">\n                                    <span class=\"dtc-share-bubble-num\" id=\"share-num-${p.id}\">${p.share_count||0}<\/span>\n                                    <span class=\"dtc-share-bubble-lbl\">${T.shares_label}<\/span>\n                                <\/div>\n                                <div class=\"dtc-comment-bubble\">\n                                    <span class=\"dtc-comment-bubble-num\" id=\"cbub-${p.id}\">${p.comment_count||0}<\/span>\n                                    <span class=\"dtc-comment-bubble-lbl\">${T.comments_label}<\/span>\n                                <\/div>\n                            <\/div>\n                            <div class=\"dtc-vote-row\">\n                                <input class=\"dtc-vote-input\" type=\"email\" id=\"ve-${p.id}\" placeholder=\"${T.email_vote_ph}\">\n                                <button class=\"dtc-btn dtc-btn-vote\" onclick=\"dtcVote(${p.id})\">${T.vote_btn}<\/button>\n                            <\/div>\n                            <div id=\"vote-msg-${p.id}\"><\/div>\n                            <div class=\"dtc-share-row\">\n                                <span class=\"dtc-share-label\">${T.share_label}<\/span>\n                                <button class=\"dtc-share-btn dtc-sh-fb\" onclick=\"dtcShare('facebook',${p.id})\" aria-label=\"Facebook\"><svg viewBox=\"0 0 24 24\"><path d=\"M22 12a10 10 0 10-11.6 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.2c-1.2 0-1.6.8-1.6 1.6V12h2.7l-.4 2.9h-2.3v7A10 10 0 0022 12z\"\/><\/svg><\/button>\n                                <button class=\"dtc-share-btn dtc-sh-tw\" onclick=\"dtcShare('twitter',${p.id})\" aria-label=\"X\"><svg viewBox=\"0 0 24 24\"><path d=\"M18.9 2H22l-7.6 8.7L23 22h-6.8l-5.3-7-6.1 7H1.7l8.1-9.3L1 2h7l4.8 6.4L18.9 2zm-2.4 18h1.9L7.6 4H5.6l10.9 16z\"\/><\/svg><\/button>\n                                <button class=\"dtc-share-btn dtc-sh-li\" onclick=\"dtcShare('linkedin',${p.id})\" aria-label=\"LinkedIn\"><svg viewBox=\"0 0 24 24\"><path d=\"M19 3a2 2 0 012 2v14a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h14zM8.3 18.3V10H5.7v8.3h2.6zM7 8.8a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm11.3 9.5v-4.6c0-2.4-1.3-3.5-3-3.5a2.6 2.6 0 00-2.4 1.3V10H10.3c0 .7 0 8.3 0 8.3h2.6v-4.6c0-.3 0-.5.1-.7.2-.5.6-1 1.4-1 1 0 1.4.7 1.4 1.8v4.5h2.5z\"\/><\/svg><\/button>\n                                <button class=\"dtc-share-btn dtc-sh-link\" onclick=\"dtcShare('copy',${p.id})\" aria-label=\"Copy Link\"><svg viewBox=\"0 0 24 24\"><path d=\"M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92-1.31-2.92-2.92-2.92z\"\/><\/svg><\/button>\n                            <\/div>\n                            <div class=\"dtc-comments-toggle\" id=\"ctoggle-${p.id}\" onclick=\"dtcToggleComments(${p.id})\">\ud83d\udcac <span class=\"ctoggle-label\">${T.comment_show}<\/span> (<span id=\"cnum-${p.id}\">${p.comment_count||0}<\/span>)<\/div>\n                            <div class=\"dtc-comments\" id=\"comments-${p.id}\" style=\"display:none;\">\n                                <div class=\"dtc-comments-list\" id=\"clist-${p.id}\"><\/div>\n                                <div class=\"dtc-comment-form\">\n                                    <input class=\"dtc-comment-name\" id=\"cname-${p.id}\" type=\"text\" maxlength=\"120\" placeholder=\"${T.comment_name_ph}\">\n                                    <textarea class=\"dtc-comment-text\" id=\"ctext-${p.id}\" maxlength=\"1000\" placeholder=\"${T.comment_text_ph}\"><\/textarea>\n                                    <button class=\"dtc-comment-send\" onclick=\"dtcPostComment(${p.id})\">${T.comment_send}<\/button>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>`;\n            });\n            html += `<\/div>`;\n            return html;\n        }\n\n        function renderForm(){\n            const copts = COUNTRIES.map(c=>`<option value=\"${c.v}\"${form.country===c.v?' selected':''}>${c.f} ${cName(c)}<\/option>`).join('');\n            return `<div class=\"dtc-form-wrap\">\n                <div class=\"dtc-form-header\">\n                    <h2>\ud83d\udcf8 ${T.tab_submit}<\/h2>\n                    <p>${LANG==='fr'?'Partagez vos photos et faites voter la communaut\u00e9 !':LANG==='it'?'Condividi le tue foto e fai votare la community!':'Share your photos and let the community vote!'}<\/p>\n                <\/div>\n                <div class=\"dtc-form\">\n                    <div id=\"submit-alert\"><\/div>\n                    <div class=\"dtc-field\"><label>${T.name_ph}<\/label>\n                        <input type=\"text\" id=\"f-residence\" value=\"${escapeHtml(form.residence)}\" placeholder=\"${LANG==='fr'?'Ex : R\u00e9sidence Les Lilas, Paris':LANG==='it'?'Es: Residenza Le Rose, Milano':'E.g. Sunrise Care Home, London'}\"><\/div>\n                    <div class=\"dtc-field\"><label>${T.country_ph}<\/label>\n                        <select id=\"f-country\"><option value=\"\">${T.country_ph}<\/option>${copts}<\/select><\/div>\n                    <div class=\"dtc-field\"><label>${T.email_ph}<\/label>\n                        <input type=\"email\" id=\"f-email\" value=\"${escapeHtml(form.email)}\" placeholder=\"contact@maresidence.fr\"><\/div>\n                    <div class=\"dtc-field\"><label>${T.photo_label}<\/label>\n                        <div class=\"dtc-photo-zone\" onclick=\"document.getElementById('f-photo').click()\">\n                            <div class=\"dtc-photo-zone-icon\">\ud83d\uddbc\ufe0f<\/div>\n                            <div class=\"dtc-photo-zone-txt\">${LANG==='fr'?'Cliquer pour choisir une photo (JPG\/PNG, max 8 Mo)':LANG==='it'?'Clicca per scegliere una foto (JPG\/PNG, max 8 MB)':'Click to choose a photo (JPG\/PNG, max 8 MB)'}<\/div>\n                        <\/div>\n                        <input type=\"file\" id=\"f-photo\" accept=\"image\/*\" style=\"display:none;\">\n                        <img id=\"f-preview\" class=\"dtc-photo-preview\">\n                    <\/div>\n                    <p style=\"font-size:13px;color:#5e5ed7;background:#f0f0ff;border-radius:10px;padding:10px 14px;margin:0 0 14px;line-height:1.5;\">${T.caption_hint}<\/p>\n                    <div class=\"dtc-field\"><label>${T.comment_fr_label}<\/label>\n                        <textarea id=\"f-comment-fr\" placeholder=\"D\u00e9crivez votre photo en quelques mots...\">${escapeHtml(form.comment_fr)}<\/textarea><\/div>\n                    <div class=\"dtc-field\"><label>${T.comment_en_label}<\/label>\n                        <textarea id=\"f-comment-en\" placeholder=\"Describe your photo in a few words...\">${escapeHtml(form.comment_en)}<\/textarea><\/div>\n                    <div class=\"dtc-field\"><label>${T.comment_it_label}<\/label>\n                        <textarea id=\"f-comment-it\" placeholder=\"Descrivi la tua foto in poche parole...\">${escapeHtml(form.comment_it)}<\/textarea><\/div>\n                    <button class=\"dtc-btn dtc-btn-translate\" id=\"btn-translate\" onclick=\"dtcTranslate()\">${translating?T.translating:T.translate_btn}<\/button>\n                    <button class=\"dtc-btn dtc-btn-submit\" id=\"btn-submit\" onclick=\"dtcSubmit()\">${submitting?T.submitting:T.submit_btn}<\/button>\n                <\/div>\n            <\/div>`;\n        }\n\n        function bindFormEvents(){\n            const photo = document.getElementById('f-photo');\n            if(photo) photo.onchange = function(){\n                const file = this.files[0]; if(!file) return;\n                photoFile = file; photoMime = file.type;\n                const reader = new FileReader();\n                reader.onload = e => {\n                    photoData = e.target.result;\n                    const prev = document.getElementById('f-preview');\n                    if(prev){ prev.src=photoData; prev.style.display='block'; }\n                };\n                reader.readAsDataURL(file);\n            };\n            if(photoData){\n                const prev = document.getElementById('f-preview');\n                if(prev){ prev.src = photoData; prev.style.display = 'block'; }\n            }\n        }\n\n        window.dtcSetTab = t => { tab=t; render(); };\n        window.dtcFilter = v => { filterCountry=v; render(); };\n\n        window.dtcTranslate = async function(){\n            form.residence = document.getElementById('f-residence')?.value?.trim()||'';\n            form.country = document.getElementById('f-country')?.value||'';\n            form.email = document.getElementById('f-email')?.value?.trim()||'';\n            form.comment_fr = document.getElementById('f-comment-fr')?.value?.trim()||'';\n            form.comment_en = document.getElementById('f-comment-en')?.value?.trim()||'';\n            form.comment_it = document.getElementById('f-comment-it')?.value?.trim()||'';\n            let from='', txt='';\n            if(form.comment_fr){ from='fr'; txt=form.comment_fr; }\n            else if(form.comment_en){ from='en'; txt=form.comment_en; }\n            else if(form.comment_it){ from='it'; txt=form.comment_it; }\n            if(!txt) return;\n            translating=true; render();\n            try {\n                const r = await fetch(REST+'\/translate',{method:'POST',headers:{'Content-Type':'application\/json'},body:JSON.stringify({text:txt,from:from})});\n                const d = await r.json();\n                form.comment_fr = d.fr || form.comment_fr || txt;\n                form.comment_en = d.en || form.comment_en || txt;\n                form.comment_it = d.it || form.comment_it || txt;\n            } catch(e){}\n            translating=false; render();\n        };\n\n        window.dtcSubmit = async function(){\n            form.residence = document.getElementById('f-residence')?.value?.trim()||'';\n            form.country   = document.getElementById('f-country')?.value||'';\n            form.email     = document.getElementById('f-email')?.value?.trim()||'';\n            form.comment_fr= document.getElementById('f-comment-fr')?.value?.trim()||'';\n            form.comment_en= document.getElementById('f-comment-en')?.value?.trim()||'';\n            form.comment_it= document.getElementById('f-comment-it')?.value?.trim()||'';\n            const alert = document.getElementById('submit-alert');\n            const hasCaption = form.comment_fr || form.comment_en || form.comment_it;\n            if(!form.residence||!form.country||!form.email||!hasCaption||!photoData){\n                const errMsg = LANG==='en'?'\u26a0\ufe0f Please fill in all required fields, add a caption in at least one language, and choose a photo.'\n                    : LANG==='it'?'\u26a0\ufe0f Compila tutti i campi obbligatori, aggiungi una didascalia in almeno una lingua e scegli una foto.'\n                    : '\u26a0\ufe0f Veuillez remplir tous les champs obligatoires, ajouter un commentaire dans au moins une langue et choisir une photo.';\n                alert.innerHTML=`<div class=\"dtc-alert dtc-alert-error\">${errMsg}<\/div>`; return;\n            }\n            submitting=true; render();\n            try {\n                const r = await fetch(REST+'\/submit',{method:'POST',headers:{'Content-Type':'application\/json'},\n                    body:JSON.stringify({...form,lang:LANG,photo_data:photoData,photo_mime:photoMime})});\n                const d = await r.json();\n                if(d.success){\n                    form={residence:'',country:'',email:'',comment_fr:'',comment_en:'',comment_it:''}; photoData=null;\n                    submitting=false;\n                    APP.innerHTML=css()+`<div class=\"dtc-wrap\"><div class=\"dtc-alert dtc-alert-success\" style=\"font-size:16px;\">\u2705 ${d.message}<\/div><\/div>`;\n                    return;\n                } else {\n                    submitting=false; render();\n                    document.getElementById('submit-alert').innerHTML=`<div class=\"dtc-alert dtc-alert-error\">\u26a0\ufe0f ${d.message||'Erreur'}<\/div>`;\n                }\n            } catch(e){ submitting=false; render(); }\n        };\n\n        window.dtcVote = async function(id, residence){\n            const emailEl = document.getElementById('ve-'+id);\n            const msgEl   = document.getElementById('vote-msg-'+id);\n            const email   = emailEl?.value?.trim();\n            if(!email||!email.includes('@')){ if(msgEl) msgEl.innerHTML=`<div class=\"dtc-alert dtc-alert-error\" style=\"margin-top:8px;\">\u26a0\ufe0f Email requis<\/div>`; return; }\n            if(msgEl) msgEl.innerHTML=`<div style=\"color:#aaa;font-size:13px;margin-top:6px;\">\u23f3 ${T.voting}<\/div>`;\n            try {\n                const r = await fetch(REST+'\/vote',{method:'POST',headers:{'Content-Type':'application\/json'},\n                    body:JSON.stringify({submission_id:id,voter_email:email,voter_country:'',voter_lang:LANG})});\n                const d = await r.json();\n                if(d.success){\n                    const p = gallery.find(x=>x.id==id); if(p) p.vote_count++;\n                    if(msgEl) msgEl.innerHTML=`<div class=\"dtc-promo-box\"><p style=\"margin:0 0 4px;font-size:13px;color:#555;\">\ud83c\udf89 ${d.message}<\/p><\/div>`;\n                    if(emailEl) emailEl.disabled=true;\n                    document.querySelectorAll('.dtc-btn-vote').forEach(b=>b.disabled=true);\n                } else {\n                    if(msgEl) msgEl.innerHTML=`<div class=\"dtc-alert dtc-alert-error\" style=\"margin-top:8px;\">${d.message||T.already_voted}<\/div>`;\n                }\n            } catch(e){ if(msgEl) msgEl.innerHTML=`<div class=\"dtc-alert dtc-alert-error\" style=\"margin-top:8px;\">Erreur r\u00e9seau.<\/div>`; }\n        };\n\n        window.dtcShare = async function(platform, id){\n            const shareUrl = location.origin + location.pathname + '?tcphoto=' + id;\n            const text = T.share_text || '';\n            let win = '';\n            if(platform==='facebook')\n                win = 'https:\/\/www.facebook.com\/sharer\/sharer.php?u='+encodeURIComponent(shareUrl)\n                    + '&quote='+encodeURIComponent(text);\n\n            else if(platform==='twitter')\n                win = 'https:\/\/twitter.com\/intent\/tweet?url='+encodeURIComponent(shareUrl)\n                    + '&text='+encodeURIComponent(text);\n\n            else if(platform==='linkedin')\n                win = 'https:\/\/www.linkedin.com\/shareArticle?mini=true'\n                    + '&url='+encodeURIComponent(shareUrl)\n                    + '&title='+encodeURIComponent('TOP CULTURE Photo Contest')\n                    + '&summary='+encodeURIComponent(text);\n\n            if(platform==='copy'){\n                try { await navigator.clipboard.writeText(shareUrl); alert(T.share_copied||''); } catch(e){}\n            } else if(win){\n                window.open(win,'_blank','width=600,height=520,noopener');\n            }\n\n            try {\n                const r = await fetch(REST+'\/share',{method:'POST',headers:{'Content-Type':'application\/json'},body:JSON.stringify({submission_id:id})});\n                const d = await r.json();\n                if(d.success){\n                    const p = gallery.find(x=>x.id==id); if(p) p.share_count = d.share_count;\n                    const el = document.getElementById('share-num-'+id); if(el) el.textContent = d.share_count;\n                }\n            } catch(e){}\n        };\n\n        function renderComments(id, arr){\n            const list = document.getElementById('clist-'+id);\n            if(!list) return;\n            if(!arr || !arr.length){ list.innerHTML = `<div class=\"dtc-comment-empty\">${T.comment_empty}<\/div>`; return; }\n            list.innerHTML = arr.map(c=>`<div class=\"dtc-comment-item\">\n                <div class=\"dtc-comment-author\">${escapeHtml(c.author_name)}<\/div>\n                <div class=\"dtc-comment-body\">${escapeHtml(c.comment_text)}<\/div>\n            <\/div>`).join('');\n        }\n\n        window.dtcToggleComments = async function(id){\n            const box = document.getElementById('comments-'+id);\n            const tg  = document.getElementById('ctoggle-'+id);\n            if(!box) return;\n            const open = box.style.display !== 'none';\n            if(open){\n                box.style.display='none';\n                if(tg){ const lbl=tg.querySelector('.ctoggle-label'); if(lbl) lbl.textContent=T.comment_show; }\n                return;\n            }\n            box.style.display='block';\n            if(tg){ const lbl=tg.querySelector('.ctoggle-label'); if(lbl) lbl.textContent=T.comment_hide; }\n            if(box.dataset.loaded) return;\n            box.dataset.loaded='1';\n            const list = document.getElementById('clist-'+id);\n            if(list) list.innerHTML = `<div class=\"dtc-comment-empty\">\u2026<\/div>`;\n            try {\n                const r = await fetch(REST+'\/comments?submission_id='+id);\n                const d = await r.json();\n                renderComments(id, d);\n            } catch(e){ if(list) list.innerHTML=''; }\n        };\n\n        window.dtcPostComment = async function(id){\n            const nameEl = document.getElementById('cname-'+id);\n            const textEl = document.getElementById('ctext-'+id);\n            const name = nameEl?.value?.trim();\n            const text = textEl?.value?.trim();\n            if(!name || !text) return;\n            try {\n                const r = await fetch(REST+'\/comment',{method:'POST',headers:{'Content-Type':'application\/json'},body:JSON.stringify({submission_id:id,author_name:name,comment_text:text})});\n                const d = await r.json();\n                if(d.success){\n                    if(textEl) textEl.value='';\n                    const cb=document.getElementById('cbub-'+id); if(cb) cb.textContent=d.comment_count;\n                    const cn=document.getElementById('cnum-'+id); if(cn) cn.textContent=d.comment_count;\n                    const p = gallery.find(x=>x.id==id); if(p) p.comment_count = d.comment_count;\n                    const list = document.getElementById('clist-'+id);\n                    if(list){\n                        const empty = list.querySelector('.dtc-comment-empty'); if(empty) list.innerHTML='';\n                        const item = document.createElement('div');\n                        item.className='dtc-comment-item';\n                        item.innerHTML = `<div class=\"dtc-comment-author\">${escapeHtml(d.comment.author_name)}<\/div><div class=\"dtc-comment-body\">${escapeHtml(d.comment.comment_text)}<\/div>`;\n                        list.insertBefore(item, list.firstChild);\n                    }\n                }\n            } catch(e){}\n        };\n\n        async function loadGallery(){\n            try {\n                const url = filterCountry ? REST+'\/gallery?country='+filterCountry : REST+'\/gallery';\n                const r = await fetch(url);\n                gallery = await r.json();\n            } catch(e){ gallery=[]; }\n            render();\n        }\n        loadGallery();\n    })();\n    <\/script>\n        <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@700;800;900&family=Poppins:wght@400;500;600&display=swap\" rel=\"stylesheet\">\n    <div id=\"dtc-ranking-widget\" data-rest=\"https:\/\/www.dynseo.com\/de\/wp-json\/dynseo\/v1\/tc-photo\"><\/div>\n    <script>\n    (function(){\n        const W    = document.getElementById('dtc-ranking-widget');\n        const REST = W.dataset.rest;\n        const FORCED = \"fr\";\n        const LANG   = FORCED || (['fr','en','it'].includes((navigator.language||'').substring(0,2)) ? (navigator.language||'').substring(0,2) : 'fr');\n\n        const T = {\n            fr: { title:'\ud83c\udfc6 Classement des photos', participant:'Participant', country:'Pays', votes:'Votes', empty_title:'Le classement arrive bient\u00f4t !', empty_sub:'Les votes s\\'ouvrent d\u00e8s que les premi\u00e8res photos sont soumises et valid\u00e9es. Soyez le premier \u00e0 participer !', loading:'Chargement\u2026', error:'Erreur de chargement.' },\n            en: { title:'\ud83c\udfc6 Photo rankings', participant:'Participant', country:'Country', votes:'Votes', empty_title:'Rankings coming soon!', empty_sub:'Votes open as soon as the first photos are submitted and validated. Be the first to take part!', loading:'Loading\u2026', error:'Loading error.' },\n            it: { title:'\ud83c\udfc6 Classifica delle foto', participant:'Partecipante', country:'Paese', votes:'Voti', empty_title:'La classifica arriva presto!', empty_sub:'Le votazioni si aprono non appena le prime foto vengono inviate e validate. Sii il primo a partecipare!', loading:'Caricamento\u2026', error:'Errore di caricamento.' },\n        };\n        const t = T[LANG] || T.fr;\n\n        const FLAGS = {fr:'\ud83c\uddeb\ud83c\uddf7',be:'\ud83c\udde7\ud83c\uddea',ch:'\ud83c\udde8\ud83c\udded',it:'\ud83c\uddee\ud83c\uddf9',es:'\ud83c\uddea\ud83c\uddf8',pt:'\ud83c\uddf5\ud83c\uddf9',de:'\ud83c\udde9\ud83c\uddea',nl:'\ud83c\uddf3\ud83c\uddf1',lu:'\ud83c\uddf1\ud83c\uddfa',ca:'\ud83c\udde8\ud83c\udde6',ma:'\ud83c\uddf2\ud83c\udde6',sn:'\ud83c\uddf8\ud83c\uddf3'};\n\n        function renderEmpty(){\n            return `<style>\n            .dtc-rank-wrap{font-family:'Poppins',sans-serif;max-width:800px;margin:0 auto;padding:20px 0;}\n            .dtc-rank-header{background:linear-gradient(135deg,#5e5ed7,#a9e2e4);border-radius:20px 20px 0 0;padding:24px 32px;display:flex;align-items:center;gap:14px;}\n            .dtc-rank-header-title{font-family:'Montserrat',sans-serif;font-size:20px;font-weight:900;color:#fff;margin:0;}\n            .dtc-rank-empty{background:#fff;border-radius:0 0 20px 20px;box-shadow:0 8px 32px rgba(94,94,215,.1);padding:60px 32px;text-align:center;}\n            .dtc-rank-empty-icon{font-size:60px;display:block;margin-bottom:20px;}\n            .dtc-rank-empty-title{font-family:'Montserrat',sans-serif;font-size:20px;font-weight:900;color:#1a1a2e;margin-bottom:10px;}\n            .dtc-rank-empty-sub{font-size:14px;color:#94a3b8;max-width:420px;margin:0 auto 32px;line-height:1.7;}\n            .dtc-rank-empty-rows{display:flex;flex-direction:column;gap:10px;max-width:480px;margin:0 auto;}\n            .dtc-rank-empty-row{background:#f8f8ff;border-radius:12px;padding:14px 18px;display:flex;align-items:center;gap:14px;border:1px solid rgba(94,94,215,.07);}\n            .dtc-rank-empty-medal{font-size:24px;width:36px;text-align:center;flex-shrink:0;}\n            .dtc-rank-empty-bar{flex:1;height:12px;background:#e8e8f5;border-radius:6px;overflow:hidden;}\n            .dtc-rank-empty-fill{height:100%;background:linear-gradient(90deg,#d0d0f0,#e8e8fa);border-radius:6px;}\n            .dtc-rank-empty-num{font-family:'Montserrat',sans-serif;font-size:13px;font-weight:900;color:#c5c5e8;min-width:28px;text-align:right;}\n            <\/style>\n            <div class=\"dtc-rank-wrap\">\n                <div class=\"dtc-rank-header\"><h2 class=\"dtc-rank-header-title\">${t.title}<\/h2><\/div>\n                <div class=\"dtc-rank-empty\">\n                    <span class=\"dtc-rank-empty-icon\">\ud83c\udfc6<\/span>\n                    <div class=\"dtc-rank-empty-title\">${t.empty_title}<\/div>\n                    <p class=\"dtc-rank-empty-sub\">${t.empty_sub}<\/p>\n                    <div class=\"dtc-rank-empty-rows\">\n                        <div class=\"dtc-rank-empty-row\"><div class=\"dtc-rank-empty-medal\">\ud83e\udd47<\/div><div class=\"dtc-rank-empty-bar\"><div class=\"dtc-rank-empty-fill\" style=\"width:90%\"><\/div><\/div><div class=\"dtc-rank-empty-num\">\u2014<\/div><\/div>\n                        <div class=\"dtc-rank-empty-row\"><div class=\"dtc-rank-empty-medal\">\ud83e\udd48<\/div><div class=\"dtc-rank-empty-bar\"><div class=\"dtc-rank-empty-fill\" style=\"width:65%\"><\/div><\/div><div class=\"dtc-rank-empty-num\">\u2014<\/div><\/div>\n                        <div class=\"dtc-rank-empty-row\"><div class=\"dtc-rank-empty-medal\">\ud83e\udd49<\/div><div class=\"dtc-rank-empty-bar\"><div class=\"dtc-rank-empty-fill\" style=\"width:45%\"><\/div><\/div><div class=\"dtc-rank-empty-num\">\u2014<\/div><\/div>\n                        <div class=\"dtc-rank-empty-row\"><div class=\"dtc-rank-empty-medal\" style=\"color:#c5c5e8;font-size:16px;font-weight:900;font-family:'Montserrat',sans-serif;\">4<\/div><div class=\"dtc-rank-empty-bar\"><div class=\"dtc-rank-empty-fill\" style=\"width:28%\"><\/div><\/div><div class=\"dtc-rank-empty-num\">\u2014<\/div><\/div>\n                        <div class=\"dtc-rank-empty-row\"><div class=\"dtc-rank-empty-medal\" style=\"color:#c5c5e8;font-size:16px;font-weight:900;font-family:'Montserrat',sans-serif;\">5<\/div><div class=\"dtc-rank-empty-bar\"><div class=\"dtc-rank-empty-fill\" style=\"width:14%\"><\/div><\/div><div class=\"dtc-rank-empty-num\">\u2014<\/div><\/div>\n                    <\/div>\n                <\/div>\n            <\/div>`;\n        }\n\n        function renderRanking(sorted){\n            const max = sorted[0].vote_count || 1;\n            return `<style>\n            .dtc-rank-wrap{font-family:'Poppins',sans-serif;max-width:800px;margin:0 auto;padding:20px 0;}\n            .dtc-rank-header{background:linear-gradient(135deg,#5e5ed7,#a9e2e4);border-radius:20px 20px 0 0;padding:24px 32px;}\n            .dtc-rank-header-title{font-family:'Montserrat',sans-serif;font-size:20px;font-weight:900;color:#fff;margin:0;}\n            .dtc-rank-table{background:#fff;border-radius:0 0 20px 20px;box-shadow:0 8px 32px rgba(94,94,215,.1);overflow:hidden;}\n            .dtc-rank-row{display:grid;grid-template-columns:56px 1fr 60px 80px 140px;align-items:center;padding:14px 20px;border-bottom:1px solid rgba(94,94,215,.06);transition:background .15s;}\n            .dtc-rank-row:last-child{border-bottom:none;}\n            .dtc-rank-row:hover{background:#fafaff;}\n            .dtc-rank-thead{background:#f4f4fd;font-family:'Montserrat',sans-serif;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:#94a3b8;}\n            .dtc-rank-thead .dtc-rank-row{padding:10px 20px;}\n            .dtc-rank-medal{font-size:22px;text-align:center;}\n            .dtc-rank-num{font-family:'Montserrat',sans-serif;font-size:14px;font-weight:900;color:#c5c5e8;text-align:center;}\n            .dtc-rank-name{font-family:'Montserrat',sans-serif;font-size:14px;font-weight:800;color:#1a1a2e;}\n            .dtc-rank-flag{font-size:22px;text-align:center;}\n            .dtc-rank-count{font-family:'Montserrat',sans-serif;font-size:18px;font-weight:900;color:#5e5ed7;text-align:center;}\n            .dtc-rank-bar-wrap{padding-right:8px;}\n            .dtc-rank-bar{background:#e8e8f5;border-radius:6px;height:10px;overflow:hidden;}\n            .dtc-rank-bar-fill{height:100%;background:linear-gradient(90deg,#5e5ed7,#a9e2e4);border-radius:6px;transition:width .4s ease;}\n            @media(max-width:540px){\n                .dtc-rank-row{grid-template-columns:44px 1fr 44px 60px;}\n                .dtc-rank-bar-wrap{display:none;}\n                .dtc-rank-thead .dtc-rank-bar-wrap{display:none;}\n            }\n            <\/style>\n            <div class=\"dtc-rank-wrap\">\n                <div class=\"dtc-rank-header\"><h2 class=\"dtc-rank-header-title\">${t.title}<\/h2><\/div>\n                <div class=\"dtc-rank-table\">\n                    <div class=\"dtc-rank-thead\">\n                        <div class=\"dtc-rank-row\">\n                            <div>#<\/div>\n                            <div>${t.participant}<\/div>\n                            <div style=\"text-align:center;\">${t.country}<\/div>\n                            <div style=\"text-align:center;\">${t.votes}<\/div>\n                            <div class=\"dtc-rank-bar-wrap\"><\/div>\n                        <\/div>\n                    <\/div>\n                    ${sorted.map((p,i)=>{\n                        const medal = i===0?'\ud83e\udd47':i===1?'\ud83e\udd48':i===2?'\ud83e\udd49':'';\n                        const num   = medal ? `<div class=\"dtc-rank-medal\">${medal}<\/div>` : `<div class=\"dtc-rank-num\">${i+1}<\/div>`;\n                        const flag  = FLAGS[p.country] || '\ud83c\udf0d';\n                        const pct   = Math.round(p.vote_count\/max*100);\n                        return `<div class=\"dtc-rank-row\">\n                            ${num}\n                            <div class=\"dtc-rank-name\">${p.residence}<\/div>\n                            <div class=\"dtc-rank-flag\">${flag}<\/div>\n                            <div class=\"dtc-rank-count\">${p.vote_count}<\/div>\n                            <div class=\"dtc-rank-bar-wrap\"><div class=\"dtc-rank-bar\"><div class=\"dtc-rank-bar-fill\" style=\"width:${pct}%\"><\/div><\/div><\/div>\n                        <\/div>`;\n                    }).join('')}\n                <\/div>\n            <\/div>`;\n        }\n\n        W.innerHTML = renderEmpty();\n\n        fetch(REST+'\/gallery')\n            .then(r=>r.json())\n            .then(data=>{\n                const approved = data.filter(p=>parseInt(p.vote_count)>=0);\n                if(!approved.length){ return; }\n                const sorted = approved.sort((a,b)=>b.vote_count-a.vote_count).slice(0,10);\n                W.innerHTML = renderRanking(sorted);\n            })\n            .catch(()=>{ W.innerHTML = `<p style=\"color:#aaa;text-align:center;padding:40px;\">${t.error}<\/p>`; });\n    })();\n    <\/script>\n    <\/p>\n","protected":false},"author":4,"featured_media":376183,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-698419","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Herzpreis - TOPCULTURE - DYNSEO - Lern-App und Memory-Spiele<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dynseo.com\/de\/herzpreis-topculture\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Herzpreis - TOPCULTURE - DYNSEO - Lern-App und Memory-Spiele\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dynseo.com\/de\/herzpreis-topculture\/\" \/>\n<meta property=\"og:site_name\" content=\"DYNSEO - Lern-App und Memory-Spiele\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dynseo.com\/wp-content\/uploads\/2024\/07\/Article-pour-jeux-de-memoire-et-services-educatifs-sur-tablette-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data1\" content=\"2\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dynseo.com\\\/de\\\/herzpreis-topculture\\\/\",\"url\":\"https:\\\/\\\/www.dynseo.com\\\/de\\\/herzpreis-topculture\\\/\",\"name\":\"Herzpreis - TOPCULTURE - DYNSEO - Lern-App und Memory-Spiele\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dynseo.com\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dynseo.com\\\/de\\\/herzpreis-topculture\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dynseo.com\\\/de\\\/herzpreis-topculture\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dynseo.com\\\/wp-content\\\/uploads\\\/2024\\\/07\\\/Article-pour-jeux-de-memoire-et-services-educatifs-sur-tablette-1.png\",\"datePublished\":\"2026-06-01T11:57:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dynseo.com\\\/de\\\/herzpreis-topculture\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dynseo.com\\\/de\\\/herzpreis-topculture\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.dynseo.com\\\/de\\\/herzpreis-topculture\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dynseo.com\\\/wp-content\\\/uploads\\\/2024\\\/07\\\/Article-pour-jeux-de-memoire-et-services-educatifs-sur-tablette-1.png\",\"contentUrl\":\"https:\\\/\\\/www.dynseo.com\\\/wp-content\\\/uploads\\\/2024\\\/07\\\/Article-pour-jeux-de-memoire-et-services-educatifs-sur-tablette-1.png\",\"width\":2000,\"height\":1500,\"caption\":\"Pflegen Sie Ihre geistige Beweglichkeit durch unsere Aktivit\u00e4ten, die Sie bereichern werden.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dynseo.com\\\/de\\\/herzpreis-topculture\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dynseo.com\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Prix coup de coeur &#8211; TOPCULTURE\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dynseo.com\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/www.dynseo.com\\\/de\\\/\",\"name\":\"Jeux de m\u00e9moire et stimulation cognitive\",\"description\":\"Entra\u00eenez votre m\u00e9moire et votre cerveau avec DYNSEO\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.dynseo.com\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dynseo.com\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.dynseo.com\\\/de\\\/#organization\",\"name\":\"DYNSEO\",\"url\":\"https:\\\/\\\/www.dynseo.com\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.dynseo.com\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.dynseo.com\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/logo-dynseo-new.png\",\"contentUrl\":\"https:\\\/\\\/www.dynseo.com\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/logo-dynseo-new.png\",\"width\":5073,\"height\":1397,\"caption\":\"DYNSEO\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dynseo.com\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Herzpreis - TOPCULTURE - DYNSEO - Lern-App und Memory-Spiele","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dynseo.com\/de\/herzpreis-topculture\/","og_locale":"de_DE","og_type":"article","og_title":"Herzpreis - TOPCULTURE - DYNSEO - Lern-App und Memory-Spiele","og_url":"https:\/\/www.dynseo.com\/de\/herzpreis-topculture\/","og_site_name":"DYNSEO - Lern-App und Memory-Spiele","og_image":[{"width":2000,"height":1500,"url":"https:\/\/www.dynseo.com\/wp-content\/uploads\/2024\/07\/Article-pour-jeux-de-memoire-et-services-educatifs-sur-tablette-1.png","type":"image\/png"}],"twitter_misc":{"Gesch\u00e4tzte Lesezeit":"2\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.dynseo.com\/de\/herzpreis-topculture\/","url":"https:\/\/www.dynseo.com\/de\/herzpreis-topculture\/","name":"Herzpreis - TOPCULTURE - DYNSEO - Lern-App und Memory-Spiele","isPartOf":{"@id":"https:\/\/www.dynseo.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dynseo.com\/de\/herzpreis-topculture\/#primaryimage"},"image":{"@id":"https:\/\/www.dynseo.com\/de\/herzpreis-topculture\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dynseo.com\/wp-content\/uploads\/2024\/07\/Article-pour-jeux-de-memoire-et-services-educatifs-sur-tablette-1.png","datePublished":"2026-06-01T11:57:12+00:00","breadcrumb":{"@id":"https:\/\/www.dynseo.com\/de\/herzpreis-topculture\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dynseo.com\/de\/herzpreis-topculture\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.dynseo.com\/de\/herzpreis-topculture\/#primaryimage","url":"https:\/\/www.dynseo.com\/wp-content\/uploads\/2024\/07\/Article-pour-jeux-de-memoire-et-services-educatifs-sur-tablette-1.png","contentUrl":"https:\/\/www.dynseo.com\/wp-content\/uploads\/2024\/07\/Article-pour-jeux-de-memoire-et-services-educatifs-sur-tablette-1.png","width":2000,"height":1500,"caption":"Pflegen Sie Ihre geistige Beweglichkeit durch unsere Aktivit\u00e4ten, die Sie bereichern werden."},{"@type":"BreadcrumbList","@id":"https:\/\/www.dynseo.com\/de\/herzpreis-topculture\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dynseo.com\/de\/"},{"@type":"ListItem","position":2,"name":"Prix coup de coeur &#8211; TOPCULTURE"}]},{"@type":"WebSite","@id":"https:\/\/www.dynseo.com\/de\/#website","url":"https:\/\/www.dynseo.com\/de\/","name":"Jeux de m\u00e9moire et stimulation cognitive","description":"Entra\u00eenez votre m\u00e9moire et votre cerveau avec DYNSEO","publisher":{"@id":"https:\/\/www.dynseo.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dynseo.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.dynseo.com\/de\/#organization","name":"DYNSEO","url":"https:\/\/www.dynseo.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.dynseo.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/www.dynseo.com\/wp-content\/uploads\/2022\/05\/logo-dynseo-new.png","contentUrl":"https:\/\/www.dynseo.com\/wp-content\/uploads\/2022\/05\/logo-dynseo-new.png","width":5073,"height":1397,"caption":"DYNSEO"},"image":{"@id":"https:\/\/www.dynseo.com\/de\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.dynseo.com\/de\/wp-json\/wp\/v2\/pages\/698419","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dynseo.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.dynseo.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.dynseo.com\/de\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dynseo.com\/de\/wp-json\/wp\/v2\/comments?post=698419"}],"version-history":[{"count":0,"href":"https:\/\/www.dynseo.com\/de\/wp-json\/wp\/v2\/pages\/698419\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dynseo.com\/de\/wp-json\/wp\/v2\/media\/376183"}],"wp:attachment":[{"href":"https:\/\/www.dynseo.com\/de\/wp-json\/wp\/v2\/media?parent=698419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}