1 2<!DOCTYPE html> 3<html lang="fr"> 4 <head> 5 <title>Calendrier fiscal 2026</title> 6 <meta name="theme-color" content=""> 7 <meta name="msapplication-navbutton-color" content=""> 8 <!-- METATAGS --> 9 <!-- rebirth / basic --> 10<!--[if IE]> 11<meta http-equiv="X-UA-Compatible" content="IE=edge"> 12<![endif]--> 13<meta charset="utf-8"> 14<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 15 16 17 <meta property="og:title" content="Calendrier fiscal 2026"> 18 <meta property="og:url" content="https://www.tschanz.fr/pages/calendrier-fiscal-2026.html"> 19 <meta property="og:type" content="website"> 20 <meta property="og:site_name" content="Cabinet TSCHANZ Experts-Comptables"> 21 <meta property="og:locale" content="fr_FR"> 22 23<link rel="alternate" href="https://www.tschanz.fr/de/pages/fake.html" hreflang="de"> 24<link rel="alternate" href="https://www.tschanz.fr/en/pages/fake.html" hreflang="en"> 25<link rel="alternate" href="https://www.tschanz.fr/pages/calendrier-fiscal-2026.html" hreflang="fr"> 26 27 28<link href="//www.tschanz.fr/fr/themes/designlines/60240291dd4339d72c88595f.css?v=c1805c24752d4bfe322decf5d4bfcd00" rel="stylesheet"> 29 30 31<link rel="canonical" href="https://www.tschanz.fr/pages/calendrier-fiscal-2026.html"> 32 33 <meta name="google-site-verification" content="Zy27ADGvKudVkMxCDHVTnlBoJAzdhAGsGuGy0nBWKkc"> 34<meta name="generator" content="e-monsite (e-monsite.com)"> 35<meta name="robots" content="max-image-preview:large, max-snippet:-1, max-video-preview:-1"> 36 37 38 39<link href="https://fonts.googleapis.com/css?family=Passion%20One:300,400,700%7COverpass:300,400,700&display=swap" rel="stylesheet"> 40 41 42 <link rel="preconnect" href="https://fonts.googleapis.com"> 43 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"> 44 <link href="https://fonts.googleapis.com/css?family=Roboto:300,300italic,400,400italic,700,700italic%7COverpass:300,300italic,400,400italic,700,700italic&display=swap" rel="stylesheet"> 45 46<link rel="preload" href="/themes/combined.css?v=28_1642769533_629" as="style"> 47<link href="/themes/combined.css?v=28_1642769533_629" rel="stylesheet"> 48 49 50 51<link rel="preload" href="/medias/static/themes/bootstrap_v4/js/jquery-3.6.3.min.js?v=26012023" as="script">
52<script src="/medias/static/themes/bootstrap_v4/js/jquery-3.6.3.min.js?v=26012023"></script>
52 53 54<link rel="preload" href="/medias/static/themes/bootstrap_v4/js/popper.min.js?v=31012023" as="script">
55<script src="/medias/static/themes/bootstrap_v4/js/popper.min.js?v=31012023"></script>
55 56 57<link rel="preload" href="/medias/static/themes/bootstrap_v4/js/bootstrap.min.js?v=31012023" as="script">
58<script src="/medias/static/themes/bootstrap_v4/js/bootstrap.min.js?v=31012023"></script>
58 59 60<link rel="preload" href="/themes/combined.js?v=28_1642769533_629&lang=fr" as="script">
61<script src="/themes/combined.js?v=28_1642769533_629&lang=fr"></script>
61 62
63<script type="application/ld+json"> 64 { 65 "@context" : "https://schema.org/", 66 "@type" : "WebSite", 67 "name" : "Cabinet TSCHANZ Experts-Comptables", 68 "url" : "https://www.tschanz.fr/" 69 } 70</script>
70 71 72 73 74 75 <!-- //METATAGS --> 76
76<script src="//www.tschanz.fr/medias/static/js/rgpd-cookies/jquery.rgpd-cookies.js?v=2505"></script>
76 77
77<script> 78 $(document).ready(function() { 79 $.RGPDCookies({ 80 theme: 'bootstrap_v4', 81 site: 'www.tschanz.fr', 82 privacy_policy_link: '/about/privacypolicy/', 83 cookies: [{"id":null,"favicon_url":"https:\/\/ssl.gstatic.com\/analytics\/20210414-01\/app\/static\/analytics_standard_icon.png","enabled":true,"model":"google_analytics","title":"Google Analytics","short_description":"Permet d'analyser les statistiques de consultation de notre site","long_description":"Indispensable pour piloter notre site internet, il permet de mesurer des indicateurs comme l\u2019affluence, les produits les plus consult\u00e9s, ou encore la r\u00e9partition g\u00e9ographique des visiteurs.","privacy_policy_url":"https:\/\/support.google.com\/analytics\/answer\/6004245?hl=fr","slug":"google-analytics"},{"id":null,"favicon_url":"","enabled":true,"model":"addthis","title":"AddThis","short_description":"Partage social","long_description":"Nous utilisons cet outil afin de vous proposer des liens de partage vers des plateformes tiers comme Twitter, Facebook, etc.","privacy_policy_url":"https:\/\/www.oracle.com\/legal\/privacy\/addthis-privacy-policy.html","slug":"addthis"}], 84 auto_open: false, 85 modal_title: 'Gestion\u0020des\u0020cookies', 86 modal_description: 'd\u00E9pose\u0020des\u0020cookies\u0020pour\u0020am\u00E9liorer\u0020votre\u0020exp\u00E9rience\u0020de\u0020navigation,\nmesurer\u0020l\u0027audience\u0020du\u0020site\u0020internet,\u0020afficher\u0020des\u0020publicit\u00E9s\u0020personnalis\u00E9es,\nr\u00E9aliser\u0020des\u0020campagnes\u0020cibl\u00E9es\u0020et\u0020personnaliser\u0020l\u0027interface\u0020du\u0020site.', 87 privacy_policy_label: 'Consulter\u0020la\u0020politique\u0020de\u0020confidentialit\u00E9', 88 check_all_label: 'Tout\u0020cocher', 89 refuse_button: 'Refuser', 90 settings_button: 'Param\u00E9trer', 91 accept_button: 'Accepter', 92 callback: function() { 93 // website google analytics case (with gtag), consent "on the fly" 94 if ('gtag' in window && typeof window.gtag === 'function') { 95 if (window.jsCookie.get('rgpd-cookie-google-analytics') === undefined 96 || window.jsCookie.get('rgpd-cookie-google-analytics') === '0') { 97 gtag('consent', 'update', { 98 'ad_storage': 'denied', 99 'analytics_storage': 'denied' 100 }); 101 } else { 102 gtag('consent', 'update', { 103 'ad_storage': 'granted', 104 'analytics_storage': 'granted' 105 }); 106 } 107 } 108 } 109 }); 110 }); 111 </script>
vendor: 72 bytes, lines 111-112
111 112 <script async src="https://www.googletagmanager.com/gtag/js?id=
112G-4VN4372P6E
vendor: 12 bytes, line 112
112"></script>
113<script> 114 window.dataLayer = window.dataLayer || []; 115 function gtag(){dataLayer.push(arguments);} 116 117 gtag('consent', 'default', { 118 'ad_storage': 'denied', 119 'analytics_storage': 'denied' 120 }); 121 122 gtag('js', new Date()); 123 gtag('config', 'G-4VN4372P6E'); 124</script>
124 125 126 127 <!-- Global site tag (gtag.js) -->
vendor: 72 bytes, lines 127-128
127 128 <script async src="https://www.googletagmanager.com/gtag/js?id=
128UA-19095692-1
vendor: 20 bytes, lines 128-129
128"></script> 129
129<script> 130 window.dataLayer = window.dataLayer || []; 131 function gtag(){dataLayer.push(arguments);} 132 133gtag('consent', 'default', { 134 'ad_storage': 'denied', 135 'analytics_storage': 'denied' 136 }); 137 gtag('set', 'allow_ad_personalization_signals', false); 138 gtag('js', new Date()); 139 gtag('config', 'UA-19095692-1'); 140 </script>
140 141 142 </head> 143 <body id="pages_calendrier-fiscal-2026" data-template="accueil"> 144 145 146 147 148 <!-- BRAND TOP --> 149 150 <!-- NAVBAR --> 151 <nav class="navbar navbar-expand-lg container contains-brand" id="navbar" data-animation="sliding"> 152 <a aria-label="brand" class="navbar-brand d-inline-flex align-items-center d-lg-none" href="https://www.tschanz.fr/"> 153 <img src="https://www.tschanz.fr/medias/site/logos/logo-sans-adresse.jpg?v=1" alt="Cabinet TSCHANZ Experts-Comptables" class="img-fluid brand-logo mr-2 d-inline-block"> 154 <span class="brand-titles d-lg-flex flex-column align-items-start"> 155 <span class="brand-title d-none">Cabinet TSCHANZ Experts-Comptables</span> 156 <span class="brand-subtitle d-none">Annemasse Divonne</span> 157 </span> 158 </a> 159 <button id="buttonBurgerMenu" title="BurgerMenu" class="navbar-toggler collapsed" type="button" data-toggle="collapse" data-target="#menu"> 160 <span></span> 161 <span></span> 162 <span></span> 163 <span></span> 164 </button> 165 <div class="collapse navbar-collapse flex-lg-grow-0 mx-lg-auto invisible" id="menu"> 166 <ul class="navbar-nav navbar-menu nav-left nav-all-left"> 167 <li class="nav-item" data-index="1"> 168 <a class="nav-link" href="https://www.tschanz.fr/"> 169 Accueil 170 </a> 171 </li> 172 <li class="nav-item" data-index="2"> 173 <a class="nav-link" href="https://www.tschanz.fr/blog/"> 174 Blog 175 </a> 176 </li> 177 <li class="nav-item" data-index="3"> 178 <a class="nav-link" href="https://www.tschanz.fr/contact/"> 179 Contact 180 </a> 181 </li> 182 </ul> 183 184 <a class="navbar-brand d-none d-lg-flex" href="https://www.tschanz.fr/"> 185 <img src="https://www.tschanz.fr/medias/site/logos/logo-sans-adresse.jpg?v=1" alt="Cabinet TSCHANZ Experts-Comptables" class="img-fluid brand-logo d-inline-block"> 186 <span class="brand-titles d-lg-flex flex-column"> 187 <span class="brand-title d-none">Cabinet TSCHANZ Experts-Comptables</span> 188 <span class="brand-subtitle d-none">annemasse divonne</span> 189 </span> 190 </a> 191 <ul class="navbar-nav navbar-menu nav-right nav-all-left"> 192 <li class="nav-item active" data-index="1"> 193 <a class="nav-link" href="https://www.tschanz.fr/pages/calendrier-fiscal-2026.html"> 194 Calendrier fiscal 2026 195 </a> 196 </li> 197 <li class="nav-item" data-index="2"> 198 <a class="nav-link" href="https://www.tschanz.fr/pages/simulateur-is-2026.html"> 199 Simulateur IS 2026 200 </a> 201 </li> 202 <li class="nav-item" data-index="3"> 203 <a class="nav-link" href="https://www.tschanz.fr/pages/simulateur-tns-2026.html"> 204 Simulateur TNS 2026 205 </a> 206 </li> 207 </ul> 208 209 210 211 212 213 214 </div> 215 </nav> 216 217 <!-- HEADER --> 218 <header id="header" class="container"> 219 </header> 220 <!-- //HEADER --> 221 222 <!-- WRAPPER --> 223 <div id="wrapper" class="container"> 224 225 <div class="row"> 226 <main id="main" class="col-lg-9"> 227 228 <div class="d-flex align-items-center"> 229 <div class="flex-grow-1"> 230 <ol class="breadcrumb"> 231 <li class="breadcrumb-item"><a href="https://www.tschanz.fr">Accueil</a></li> 232 <li class="breadcrumb-item active">Calendrier fiscal 2026</li> 233 </ol> 234 235
235<script type="application/ld+json"> 236 { 237 "@context": "https://schema.org", 238 "@type": "BreadcrumbList", 239 "itemListElement": [ 240 { 241 "@type": "ListItem", 242 "position": 1, 243 "name": "Accueil", 244 "item": "https://www.tschanz.fr" 245 }, { 246 "@type": "ListItem", 247 "position": 2, 248 "name": "Calendrier fiscal 2026", 249 "item": "https://www.tschanz.fr/pages/calendrier-fiscal-2026.html" 250 } ] 251 } 252 </script>
252 253 254 </div> 255 256 </div> 257 258 259 260 261 <div class="view view-pages" data-sfroute="true" id="view-page" data-mcp-item-id="69af4404e746785a8c5fa573"> 262 <div class="container"> 263 <div class="row"> 264 <div class="col"> 265 <h1 class="view-title">Calendrier fiscal 2026</h1> 266 </div> 267 </div> 268 </div> 269 270 <div id="site-module-4e7afda8cf476fde4dbc636d" class="site-module" data-mcp-site-module-id="4e7afda8cf476fde4dbc636d" data-mcp-site-id="4e7afda85c626fde4dbc05d1" data-mcp-category-id="item"></div> 271 272 273 <div id="rows-69af4404e7756c0a2331a7f9" class="rows" data-total-pages="1" data-current-page="1"> 274 <div id="row-69af4404e7756c0a2331a7f9-1" data-mcp-line-id="69af4404e77fbc9a58cbe5d7" class="row-container pos-1 page_1 container"> 275 <div class="row-content"> 276 <div class="row" data-role="line"> 277 278 279 280 281 <div data-role="cell" data-mcp-cell-id="69af4404e79ee69210e6e765" data-size="lg" id="cell-69af4404e79ee69210e6e765" class="col"> 282 <div class="col-content col-no-widget col-codehtml"> 283 <!DOCTYPE html> 284<html lang="fr"> 285<head> 286<meta charset="UTF-8"> 287<meta name="viewport" content="width=device-width, initial-scale=1.0"> 288<title>Calendrier Fiscal 2026 â Cabinet TSCHANZ</title> 289<style> 290 * { box-sizing: border-box; margin: 0; padding: 0; } 291 body { font-family: arial, sans-serif; background: #f7f4ef; color: #0e1e35; } 292 293 .cal-header { 294 background: #0e1e35; 295 padding: 40px 30px 30px; 296 text-align: center; 297 } 298 .cal-header p.label { 299 font-size: 0.65em; letter-spacing: 4px; text-transform: uppercase; 300 color: rgba(197,165,90,0.7); margin-bottom: 10px; 301 } 302 .cal-header h1 { 303 font-family: Georgia, serif; font-size: 2em; font-weight: 400; 304 color: #fff; margin-bottom: 6px; 305 } 306 .cal-header h1 span { color: #c5a55a; font-style: italic; } 307 .cal-header p.sub { 308 font-size: 0.82em; color: rgba(255,255,255,0.5); margin-bottom: 25px; 309 } 310 311 /* FILTRES */ 312 .filters { 313 display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; 314 padding: 0 20px 30px; 315 } 316 .filter-btn { 317 background: transparent; border: 1px solid rgba(197,165,90,0.4); 318 color: rgba(255,255,255,0.6); font-family: arial, sans-serif; 319 font-size: 0.7em; letter-spacing: 2px; text-transform: uppercase; 320 padding: 8px 16px; border-radius: 2px; cursor: pointer; 321 transition: all 0.2s; 322 } 323 .filter-btn:hover, .filter-btn.active { 324 background: #c5a55a; border-color: #c5a55a; 325 color: #0e1e35; font-weight: bold; 326 } 327 328 /* MOIS NAV */ 329 .months-nav { 330 display: flex; flex-wrap: wrap; justify-content: center; 331 gap: 6px; padding: 20px 20px 0; max-width: 900px; margin: 0 auto; 332 } 333 .month-btn { 334 background: #fff; border: 1px solid rgba(14,30,53,0.1); 335 color: #0e1e35; font-family: arial, sans-serif; font-size: 0.72em; 336 letter-spacing: 1px; padding: 6px 14px; border-radius: 2px; 337 cursor: pointer; transition: all 0.2s; 338 } 339 .month-btn:hover { border-color: #c5a55a; color: #c5a55a; } 340 .month-btn.has-events { border-left: 3px solid #c5a55a; } 341 .month-btn.active { background: #0e1e35; color: #c5a55a; border-color: #0e1e35; } 342 343 /* CONTENU */ 344 .cal-body { max-width: 900px; margin: 0 auto; padding: 20px; } 345 346 .month-section { margin-bottom: 30px; display: none; } 347 .month-section.visible { display: block; } 348 349 .month-title { 350 font-family: Georgia, serif; font-size: 1.3em; font-weight: 400; 351 color: #0e1e35; border-bottom: 2px solid #c5a55a; 352 padding-bottom: 8px; margin-bottom: 15px; 353 } 354 355 .event { 356 background: #fff; border-left: 3px solid #c5a55a; 357 border-radius: 0 3px 3px 0; padding: 14px 18px; 358 margin-bottom: 8px; display: flex; gap: 15px; align-items: flex-start; 359 box-shadow: 0 1px 8px rgba(14,30,53,0.06); 360 transition: all 0.2s; 361 } 362 .event:hover { box-shadow: 0 4px 15px rgba(14,30,53,0.12); transform: translateX(3px); } 363 .event.urgent { border-left-color: #c0392b; } 364 .event.social { border-left-color: #0e1e35; } 365 .event.hidden { display: none; } 366 367 .event-date { 368 font-family: Georgia, serif; font-size: 1.2em; color: #c5a55a; 369 font-weight: 400; flex-shrink: 0; width: 35px; text-align: center; 370 line-height: 1.2; 371 } 372 .event-date small { display: block; font-family: arial; font-size: 0.5em; color: #999; letter-spacing: 1px; text-transform: uppercase; } 373 .event-content { flex: 1; } 374 .event-title { font-family: Georgia, serif; font-size: 0.95em; color: #0e1e35; margin-bottom: 4px; } 375 .event-desc { font-size: 0.78em; color: #777; line-height: 1.5; } 376 .event-tags { display: flex; gap: 5px; margin-top: 6px; flex-wrap: wrap; } 377 .tag { 378 font-size: 0.62em; letter-spacing: 1px; text-transform: uppercase; 379 padding: 2px 7px; border-radius: 2px; font-weight: bold; 380 } 381 .tag.is { background: rgba(197,165,90,0.15); color: #c5a55a; } 382 .tag.bic { background: rgba(14,30,53,0.08); color: #0e1e35; } 383 .tag.bnc { background: rgba(14,30,53,0.08); color: #0e1e35; } 384 .tag.tva { background: rgba(197,165,90,0.25); color: #8a6f2e; } 385 .tag.social { background: rgba(14,30,53,0.12); color: #0e1e35; } 386 .tag.micro { background: #f0ece4; color: #666; } 387 .tag.tous { background: #0e1e35; color: #c5a55a; } 388 389 .no-events { 390 text-align: center; padding: 30px; color: #999; 391 font-family: Georgia, serif; font-style: italic; 392 } 393 394 /* FOOTER */ 395 .cal-footer { 396 background: #0e1e35; padding: 25px; text-align: center; margin-top: 20px; 397 } 398 .cal-footer p { font-family: Georgia, serif; color: #c5a55a; font-style: italic; margin-bottom: 10px; } 399 .cal-footer a { 400 background: #c5a55a; color: #ffffff; font-family: arial, sans-serif; 401 font-size: 0.75em; letter-spacing: 2px; text-transform: uppercase; 402 font-weight: bold; padding: 10px 22px; text-decoration: none; border-radius: 2px; 403 display: inline-block; 404 } 405 406 .count-badge { 407 display: inline-block; background: #c5a55a; color: #0e1e35; 408 font-size: 0.65em; font-weight: bold; padding: 1px 6px; 409 border-radius: 10px; margin-left: 6px; vertical-align: middle; 410 } 411</style> 412</head> 413<body> 414 415<div class="cal-header"> 416 <p class="label">Cabinet TSCHANZ â Experts-comptables</p> 417 <h1>Calendrier fiscal <span>2026</span></h1> 418 <p class="sub">Toutes vos échéances fiscales et sociales â Filtrez par type d'entreprise</p> 419 <div class="filters"> 420 <button class="filter-btn active" onclick="setFilter('tous')">Tous</button> 421 <button class="filter-btn" onclick="setFilter('is')">Sociétés (IS)</button> 422 <button class="filter-btn" onclick="setFilter('bic')">BIC â Réel</button> 423 <button class="filter-btn" onclick="setFilter('bnc')">BNC â Libéral</button> 424 <button class="filter-btn" onclick="setFilter('tva')">TVA</button> 425 <button class="filter-btn" onclick="setFilter('social')">Social</button> 426 <button class="filter-btn" onclick="setFilter('micro')">Micro-entrepreneur</button> 427 </div> 428</div> 429 430<div style="background:#f7f4ef; padding-top: 20px;"> 431 <div id="next-bar" style="background:#fffbf0;border-top:3px solid #c5a55a;padding:10px 20px;text-align:center;font-family:arial,sans-serif;font-size:0.82em;color:#0e1e35;"><span style="color:#c5a55a;font-weight:bold;">â° Prochaine échéance :</span> <span id="next-title" style="font-weight:bold;margin-left:6px;"></span>
431 <span id="next-days" style="background:#0e1e35;color:#c5a55a;padding:2px 10px;border-radius:20px;font-size:0.85em;margin-left:8px;"></span></div> 432<div class="months-nav" id="monthsNav"></div> 433 <div class="cal-body" id="calBody"></div> 434 435 <div class="cal-footer"> 436 <p>Une question sur une échéance ? Votre expert-comptable vous répond.</p> 437 <a href="https://www.tschanz.fr/contact/contact.html" style="color:#ffffff!important;">Nous contacter</a> 438 <a href="javascript:window.print()" style="display:inline-block;margin-top:10px;background:transparent;border:1px solid rgba(197,165,90,0.5);color:#c5a55a;font-family:arial,sans-serif;font-size:0.7em;letter-spacing:2px;text-transform:uppercase;font-weight:bold;padding:8px 18px;text-decoration:none;border-radius:2px;">Imprimer</a> 439 </div> 440</div> 441
442<script> 443const events = [ 444 // JANVIER 445 { month: 1, day: 15, title: "TVA â Déclaration CA3 (décembre 2025)", desc: "Dépôt de la déclaration de TVA mensuelle pour décembre 2025 et paiement.", tags: ["tva"] }, 446 { month: 1, day: 15, title: "DSN â Déclaration Sociale Nominative", desc: "DSN mensuelle paie de décembre 2025.", tags: ["social"] }, 447 { month: 1, day: 31, title: "Déclaration annuelle des salaires (DADS)", desc: "Transmission de la DADS-U ou DSN annuelle pour l'exercice 2025.", tags: ["social"] }, 448 449 // FÃVRIER 450 { month: 2, day: 15, title: "TVA â CA3 janvier 2026", desc: "Déclaration et paiement de la TVA collectée en janvier.", tags: ["tva"] }, 451 { month: 2, day: 15, title: "DSN â Paie de janvier 2026", desc: "Transmission de la DSN mensuelle.", tags: ["social"] }, 452 453 // MARS 454 { month: 3, day: 16, title: "Acompte IS â 1er acompte 2026", desc: "Versement du 1er acompte d'IS (le 15 tombe un dimanche). Paiement obligatoire en ligne sur impots.gouv.fr via le formulaire 2571.", tags: ["is"] }, 455 { month: 3, day: 15, title: "TVA â CA3 février 2026", desc: "Déclaration et paiement de la TVA collectée en février.", tags: ["tva"] }, 456 { month: 3, day: 15, title: "DSN â Paie de février 2026", desc: "Transmission de la DSN mensuelle.", tags: ["social"] }, 457 { month: 5, day: 15, title: "Liasse fiscale IS â Clôture 31/12/2025", desc: "Dépôt de la déclaration de résultats (2065) pour les sociétés clôturant au 31 décembre.", tags: ["is"], urgent: true }, 458 { month: 5, day: 15, title: "Télépaiement IS â Solde exercice 2025", desc: "Paiement du solde d'IS pour les exercices clos au 31/12/2025.", tags: ["is"], urgent: true }, 459 460 // AVRIL 461 { month: 4, day: 15, title: "TVA â CA3 mars 2026", desc: "Déclaration et paiement de la TVA collectée en mars.", tags: ["tva"] }, 462 { month: 4, day: 15, title: "DSN â Paie de mars 2026", desc: "Transmission de la DSN mensuelle.", tags: ["social"] }, 463 { month: 4, day: 30, title: "TVA â CA12 (régime simplifié)", desc: "Déclaration annuelle de TVA CA12 pour les exercices clos au 31/12/2025.", tags: ["tva"] }, 464 { month: 4, day: 30, title: "Liasse fiscale BIC/BNC", desc: "Dépôt des déclarations 2031 (BIC) et 2035 (BNC) pour les exercices clos au 31/12/2025.", tags: ["bic", "bnc"], urgent: true }, 465 466 // MAI 467 { month: 5, day: 15, title: "TVA â CA3 avril 2026", desc: "Déclaration et paiement de la TVA collectée en avril.", tags: ["tva"] }, 468 { month: 5, day: 15, title: "DSN â Paie d'avril 2026", desc: "Transmission de la DSN mensuelle.", tags: ["social"] }, 469 470 { month: 5, day: 31, title: "Déclaration revenus 2025 (IR)", desc: "Date limite de déclaration en ligne des revenus 2025 (zone 1 â délai indicatif).", tags: ["bic", "bnc"] }, 471 { month: 5, day: 31, title: "Déclaration micro-entrepreneur â T1 2026", desc: "Déclaration du chiffre d'affaires du 1er trimestre 2026.", tags: ["micro"] }, 472 473 // JUIN 474 { month: 6, day: 15, title: "TVA â CA3 mai 2026", desc: "Déclaration et paiement de la TVA collectée en mai.", tags: ["tva"] }, 475 { month: 6, day: 15, title: "DSN â Paie de mai 2026", desc: "Transmission de la DSN mensuelle.", tags: ["social"] }, 476 { month: 6, day: 15, title: "Cotisations TNS â Régularisation N-1", desc: "Appel de cotisations Urssaf pour les travailleurs non-salariés (régularisation 2025).", tags: ["social"] }, 477 478 // JUILLET 479 { month: 7, day: 15, title: "TVA â CA3 juin 2026", desc: "Déclaration et paiement de la TVA collectée en juin.", tags: ["tva"] }, 480 { month: 7, day: 15, title: "DSN â Paie de juin 2026", desc: "Transmission de la DSN mensuelle.", tags: ["social"] }, 481 { month: 7, day: 31, title: "Déclaration micro-entrepreneur â T2 2026", desc: "Déclaration du chiffre d'affaires du 2e trimestre 2026.", tags: ["micro"] }, 482 { month: 6, day: 15, title: "Acompte IS â 2e acompte 2026", desc: "Versement du 2e acompte d'IS. Régularisation possible si le 1er acompte était basé sur l'avant-dernier exercice.", tags: ["is"] }, 483 484 // AOÃT 485 { month: 8, day: 17, title: "TVA â CA3 juillet 2026", desc: "Déclaration et paiement de la TVA collectée en juillet.", tags: ["tva"] }, 486 { month: 8, day: 17, title: "DSN â Paie de juillet 2026", desc: "Transmission de la DSN mensuelle.", tags: ["social"] }, 487 488 // SEPTEMBRE 489 { month: 9, day: 1, title: "Facturation électronique â Réception obligatoire", desc: "Toutes les entreprises doivent être en mesure de recevoir des factures électroniques.", tags: ["is", "bic", "bnc", "micro"], urgent: true }, 490 { month: 9, day: 15, title: "TVA â CA3 août 2026", desc: "Déclaration et paiement de la TVA collectée en août.", tags: ["tva"] }, 491 { month: 9, day: 15, title: "DSN â Paie d'août 2026", desc: "Transmission de la DSN mensuelle.", tags: ["social"] }, 492 { month: 9, day: 15, title: "Acompte IS â 3e acompte 2026", desc: "Versement du 3e acompte d'IS.", tags: ["is"] }, 493 { month: 9, day: 30, title: "Déclaration micro-entrepreneur â T3 2026", desc: "Déclaration du chiffre d'affaires du 3e trimestre 2026.", tags: ["micro"] }, 494 495 // OCTOBRE 496 { month: 10, day: 15, title: "TVA â CA3 septembre 2026", desc: "Déclaration et paiement de la TVA collectée en septembre.", tags: ["tva"] }, 497 { month: 10, day: 15, title: "DSN â Paie de septembre 2026", desc: "Transmission de la DSN mensuelle.", tags: ["social"] }, 498 { month: 12, day: 15, title: "Acompte IS â 4e et dernier acompte 2026", desc: "Versement du dernier acompte d'IS avant le solde.", tags: ["is"] }, 499 500 // NOVEMBRE 501 { month: 11, day: 16, title: "TVA â CA3 octobre 2026", desc: "Déclaration et paiement de la TVA collectée en octobre.", tags: ["tva"] }, 502 { month: 11, day: 16, title: "DSN â Paie d'octobre 2026", desc: "Transmission de la DSN mensuelle.", tags: ["social"] }, 503 504 // DÃCEMBRE 505 { month: 12, day: 15, title: "TVA â CA3 novembre 2026", desc: "Déclaration et paiement de la TVA collectée en novembre.", tags: ["tva"] }, 506 { month: 12, day: 15, title: "DSN â Paie de novembre 2026", desc: "Transmission de la DSN mensuelle.", tags: ["social"] }, 507 { month: 12, day: 31, title: "Déclaration micro-entrepreneur â T4 2026", desc: "Déclaration du chiffre d'affaires du 4e trimestre 2026.", tags: ["micro"] }, 508]; 509 510const months = [ 511 "Janvier","Février","Mars","Avril","Mai","Juin", 512 "Juillet","Août","Septembre","Octobre","Novembre","Décembre" 513]; 514 515let currentFilter = "tous"; 516let currentMonth = new Date().getMonth() + 1; 517 518function setFilter(f) { 519 currentFilter = f; 520 document.querySelectorAll('.filter-btn').forEach(b => b.classList.remove('active')); 521 event.target.classList.add('active'); 522 renderAll(); 523} 524 525function setMonth(m) { 526 currentMonth = m; 527 document.querySelectorAll('.month-btn').forEach(b => b.classList.remove('active')); 528 document.getElementById('mbtn-' + m).classList.add('active'); 529 document.querySelectorAll('.month-section').forEach(s => s.classList.remove('visible'));
530 const sec = document.getElementById('month-' + m); 531 if (sec) sec.classList.add('visible'); 532 renderAll(); 533} 534 535function renderAll() { 536 // Update month buttons count 537 months.forEach((name, i) => { 538 const m = i + 1; 539 const count = events.filter(e => e.month === m && (currentFilter === 'tous' || e.tags.includes(currentFilter))).length; 540 const btn = document.getElementById('mbtn-' + m); 541 if (btn) { 542 const badge = btn.querySelector('.count-badge'); 543 if (count > 0) { 544 btn.classList.add('has-events'); 545 if (badge) badge.textContent = count; 546 else btn.innerHTML += `<span class="count-badge">${count}</span>`; 547 } else { 548 btn.classList.remove('has-events'); 549 if (badge) badge.remove(); 550 } 551 } 552 }); 553 554 // Show/hide events 555 document.querySelectorAll('.event').forEach(el => { 556 const tags = el.dataset.tags.split(','); 557 if (currentFilter === 'tous' || tags.includes(currentFilter)) { 558 el.classList.remove('hidden'); 559 } else { 560 el.classList.add('hidden'); 561 } 562 }); 563 564 // Check no-events message per month 565 months.forEach((name, i) => { 566 const m = i + 1; 567 const sec = document.getElementById('month-' + m); 568 if (!sec) return; 569 const visible = sec.querySelectorAll('.event:not(.hidden)').length; 570 let noEvt = sec.querySelector('.no-events'); 571 if (visible === 0) { 572 if (!noEvt) { 573 noEvt = document.createElement('div'); 574 noEvt.className = 'no-events'; 575 noEvt.textContent = 'Aucune échéance pour ce filtre ce mois-ci.'; 576 sec.appendChild(noEvt); 577 } 578 } else { 579 if (noEvt) noEvt.remove(); 580 } 581 }); 582} 583 584// Build DOM 585const nav = document.getElementById('monthsNav'); 586const body = document.getElementById('calBody'); 587 588months.forEach((name, i) => { 589 const m = i + 1; 590 591 // Nav button 592 const btn = document.createElement('button'); 593 btn.className = 'month-btn' + (m === currentMonth ? ' active' : ''); 594 btn.id = 'mbtn-' + m; 595 btn.textContent = name; 596 btn.onclick = () => setMonth(m); 597 nav.appendChild(btn); 598 599 // Month section 600 const sec = document.createElement('div'); 601 sec.className = 'month-section' + (m === currentMonth ? ' visible' : ''); 602 sec.id = 'month-' + m; 603 604 const title = document.createElement('h2'); 605 title.className = 'month-title'; 606 title.textContent = name + ' 2026'; 607 sec.appendChild(title); 608 609 const monthEvents = events.filter(e => e.month === m).sort((a,b) => a.day - b.day); 610 monthEvents.forEach(evt => { 611 const div = document.createElement('div'); 612 div.className = 'event' + (evt.urgent ? ' urgent' : '') + (evt.tags.includes('social') && !evt.urgent ? ' social' : ''); 613 div.dataset.tags = evt.tags.join(','); 614 615 div.innerHTML = ` 616 <div class="event-date">${evt.day}<small>${name.substring(0,3)}</small></div> 617 <div class="event-content"> 618 <div class="event-title">${evt.title}</div> 619 <div class="event-desc">${evt.desc}</div> 620 <div class="event-tags">${evt.tags.map(t => `<span class="tag ${t}">${t.toUpperCase()}</span>`).join('')}</div> 621 </div> 622 `; 623 sec.appendChild(div); 624 }); 625 626 body.appendChild(sec); 627}); 628 629renderAll(); 630(function(){var t=new Date();t.setHours(0,0,0,0);var f=events.map(function(e){return{title:e.title,date:new Date(2026,e.month-1,e.day)};}).filter(function(e){return e.date>=t;}).sort(function(a,b){return a.date-b.date;});if(f.length){var n=f[0];var d=Math.ceil((n.date-t)/86400000);var el1=document.getElementById("next-title");var el2=document.getElementById("next-days");if(el1){el1.textContent=n.title;el2.textContent=d===0?"Aujourd\u2019hui":d===1?"Demain":"dans "+d+" j.";}};})(); 631</script>
631 632 633</body> 634</html></div> 635 </div> 636 </div> 637 </div> 638 </div> 639 </div> 640 641 642 643 <div class="container plugin-list"> 644 <div class="row"> 645 <div class="col"> 646 <div class="plugins"> 647 <div id="social-4e7afda863d26fde4dbc84ac" class="plugin" data-plugin="social"> 648 <div class="a2a_kit a2a_kit_size_32 a2a_default_style"> 649 <a class="a2a_dd" href="https://www.addtoany.com/share"></a> 650 <a class="a2a_button_facebook"></a> 651 <a class="a2a_button_x"></a> 652 <a class="a2a_button_email"></a> 653 </div> 654
654<script> 655 var a2a_config = a2a_config || {}; 656 a2a_config.onclick = 1; 657 a2a_config.locale = "fr"; 658 </script>
658 659
659<script async src="https://static.addtoany.com/menu/page.js"></script>
659 660</div> 661 662 663 664 665 </div> 666 </div> 667 </div> 668 </div> 669 </div> 670
671<script> 672 emsChromeExtension.init('page', '69af4404e746785a8c5fa573', 'e-monsite.com'); 673</script>
673 674 675 </main> 676 677 <aside id="sidebar" class="col-lg-3"> 678 <div id="sidebar-inner" class="sticky-top"> 679 <div id="widget-1" 680 class="widget" 681 data-id="widget_page_items" 682 data-widget-num="1"> 683 <div class="widget-title"> 684 <span> 685 Menu 686 </span> 687 </div> 688 <div class="widget-content"> 689 690 691<div id="site-module-page_items0" class="site-module" data-mcp-site-module-id="page_items0" data-mcp-site-id="4e7afda85c626fde4dbc05d1" data-mcp-category-id="item"></div> 692 693 694 695 <div id="page_items0"> 696 <ul class="media-list" data-addon="directory"> 697 698 </ul> 699 700 <div class="card-deck page-items list-style list-1-col" data-addon="pages"> 701 <div class="card page-item"> 702 <div class="row no-gutters"> 703 704 <div class="col item-txt-col"> 705 <div class="card-body p-4"> 706 <p class="media-heading"> 707 <a href="https://www.tschanz.fr/pages/nos-missions.html">Nos missions</a> 708 </p> 709 710 </div> 711 </div> 712 </div> 713 </div> 714 <div class="card page-item"> 715 <div class="row no-gutters"> 716 717 <div class="col item-txt-col"> 718 <div class="card-body p-4"> 719 <p class="media-heading"> 720 <a href="https://www.tschanz.fr/pages/comment-nous-trouver.html">Comment nous trouver ?</a> 721 </p> 722 723 </div> 724 </div> 725 </div> 726 </div> 727 <div class="card page-item"> 728 <div class="row no-gutters"> 729 730 <div class="col item-txt-col"> 731 <div class="card-body p-4"> 732 <p class="media-heading"> 733 <a href="https://www.tschanz.fr/pages/les-10-etapes-de-la-creation-d-une-entreprise.html">Les 10 étapes de la création d'une entreprise</a> 734 </p> 735 736 </div> 737 </div> 738 </div> 739 </div> 740 <div class="card page-item"> 741 <div class="row no-gutters"> 742 743 <div class="col item-txt-col"> 744 <div class="card-body p-4"> 745 <p class="media-heading"> 746 <a href="https://www.tschanz.fr/pages/vous-envisagez-de-recruter-ci-dessous-simulateur-d-embauche.html">Simulateur coût embauche (via site urssaf)</a> 747 </p> 748 749 </div> 750 </div> 751 </div> 752 </div> 753 <div class="card page-item"> 754 <div class="row no-gutters"> 755 756 <div class="col item-txt-col"> 757 <div class="card-body p-4"> 758 <p class="media-heading"> 759 <a href="https://www.tschanz.fr/pages/calendrier-fiscal-2026.html">Calendrier fiscal 2026</a> 760 </p> 761 762 </div> 763 </div> 764 </div> 765 </div> 766 </div> 767 </div> 768 769 770 771 </div> 772 </div> 773 <div id="widget-2" 774 class="widget" 775 data-id="widget_contactform_all" 776 data-widget-num="2"> 777 <div class="widget-title">
778 <span> 779 Formulaire de contact 780 </span> 781 </div> 782 <div class="widget-content"> 783 <!-- WIDGET : 1 --> 784<ul class="media-list contact-items" data-addon="contact"> 785 <li class="media contect-item"> 786 <div class="media-body"> 787 <p class="media-heading"> 788 <a href="https://www.tschanz.fr/contact/contact.html">Contact et prise de rendez-vous</a> 789 </p> 790 </div> 791 </li> 792 </ul> 793 </div> 794 </div> 795 <div id="widget-3" 796 class="widget" 797 data-id="widget_blogpost_last" 798 data-widget-num="3"> 799 <div class="widget-title"> 800 <span> 801 Derniers billets 802 </span> 803 </div> 804 <div class="widget-content"> 805 <!-- WIDGET : 1 --> 806 807<div class="media-list blog-items" data-addon="blog"> 808 809 <div class="media blog-item" data-date="
80904/11/2026" data-blog-id="69d9f6bfccd65a727f5df0d6"> 810 <div class="media-body"> 811 <p class="media-heading"> 812 <a href="https://www.tschanz.fr/blog/declaration-des-revenus-2025-les-dates-limites-a-ne-pas-manquer.html">Déclaration des revenus 2025 : les dates limites à ne pas manquer</a> 813 </p> 814 815 <p class="metas"> 816 <span class="meta-date">Le samedi, 11 avril 2026</span> 817 </p> 818 </div> 819 </div> 820 <div class="media blog-item" data-date="04/02/2026" data-blog-id="69ced8e85a6753cc4982d9cd"> 821 <div class="media-body"> 822 <p class="media-heading"> 823 <a href="https://www.tschanz.fr/blog/plan-comptable-renove-2026-premiere-annee-de-cloture-sous-le-nouveau-referentiel.html">Plan comptable rénové : 2026, première année de clôture sous le nouveau référentiel</a> 824 </p> 825 826 <p class="metas"> 827 <span class="meta-date">Le jeudi, 02 avril 2026</span> 828 </p> 829 </div> 830 </div> 831 <div class="media blog-item" data-date="
83104/02/2026" data-blog-id="69ced537998753cc4982f812"> 832 <div class="media-body"> 833 <p class="media-heading"> 834 <a href="https://www.tschanz.fr/blog/pacte-dutreil-les-conditions-de-transmission-d-entreprise-se-durcissent.html">Pacte Dutreil : les conditions de transmission d'entreprise se durcissent</a> 835 </p> 836 837 <p class="metas"> 838 <span class="meta-date">Le jeudi, 02 avril 2026</span> 839 </p> 840 </div> 841 </div> 842 <div class="media blog-item" data-date="04/02/2026" data-blog-id="69ce31ecd8d2507d2c3470b0"> 843 <div class="media-body"> 844 <p class="media-heading"> 845 <a href="https://www.tschanz.fr/blog/logiciels-de-caisse-l-attestation-individuelle-redevient-un-justificatif-valable.html">Logiciels de caisse : l'attestation individuelle redevient un justificatif valable</a> 846 </p> 847 848 <p class="metas"> 849 <span class="meta-date">Le jeudi, 02 avril 2026</span> 850 </p> 851 </div> 852 </div> 853 <div class="media blog-item" data-date="
85304/02/2026" data-blog-id="69ce31bc4568507d2c34d8ee"> 854 <div class="media-body"> 855 <p class="media-heading"> 856 <a href="https://www.tschanz.fr/blog/compte-courant-d-associe-les-taux-d-interets-deductibles-pour-le-2e-trimestre-2026.html">Compte courant d'associé : les taux d'intérêts déductibles pour le 2e trimestre 2026</a> 857 </p> 858 859 <p class="metas"> 860 <span class="meta-date">Le jeudi, 02 avril 2026</span> 861 </p> 862 </div> 863 </div> 864 <div class="media blog-item" data-date="03/25/2026" data-blog-id="69c467ee8a6f53cc4ae588ee"> 865 <div class="media-body"> 866 <p class="media-heading"> 867 <a href="https://www.tschanz.fr/blog/acompte-d-is-2026-ne-manquez-pas-les-echeances-de-paiement.html">Acompte d'IS 2026 : ne manquez pas les échéances de paiement</a> 868 </p> 869 870 <p class="metas"> 871 <span class="meta-date">Le mercredi, 25 mars 2026</span> 872 </p> 873 </div> 874 </div> 875 <div class="media blog-item" data-date="
87503/25/2026" data-blog-id="69c467c3e98453cc4ae5d784"> 876 <div class="media-body"> 877 <p class="media-heading"> 878 <a href="https://www.tschanz.fr/blog/pfu-2026-le-taux-passe-a-31-4-ce-que-ca-change-pour-vos-dividendes.html">PFU 2026 : le taux passe à 31,4 %, ce que ça change pour vos dividendes</a> 879 </p> 880 881 <p class="metas"> 882 <span class="meta-date">Le mercredi, 25 mars 2026</span> 883 </p> 884 </div> 885 </div> 886 <div class="media blog-item" data-date="03/25/2026" data-blog-id="69c467a1676f53cc4ae5239f"> 887 <div class="media-body"> 888 <p class="media-heading"> 889 <a href="https://www.tschanz.fr/blog/reforme-urssaf-2026-ce-qui-change-pour-les-travailleurs-independants-tns.html">Réforme URSSAF 2026 : ce qui change pour les travailleurs indépendants (TNS)</a> 890 </p> 891 892 <p class="metas"> 893 <span class="meta-date">Le mercredi, 25 mars 2026</span> 894 </p> 895 </div> 896 </div> 897 <div class="media blog-item" data-date="
89703/10/2026" data-blog-id="69b0271ef739507d2c34ad86"> 898 <div class="media-body"> 899 <p class="media-heading"> 900 <a href="https://www.tschanz.fr/blog/facturation-electronique-attention-aux-nouvelles-sanctions-alourdies-en-cas-de-retard.html">Facturation électronique : attention aux nouvelles sanctions alourdies en cas de retard</a> 901 </p> 902 903 <p class="metas"> 904 <span class="meta-date">Le mardi, 10 mars 2026</span> 905 </p> 906 </div> 907 </div> 908 <div class="media blog-item" data-date="03/10/2026" data-blog-id="69b01fe00cb0507d2c34db05"> 909 <div class="media-body"> 910 <p class="media-heading"> 911 <a href="https://www.tschanz.fr/blog/acompte-d-is-echeance-le-16-mars-2026.html">Acompte d'IS : ne manquez pas l'échéance du 16 mars 2026</a> 912 </p> 913 914 <p class="metas"> 915 <span class="meta-date">Le mardi, 10 mars 2026</span> 916 </p> 917 </div> 918 </div> 919 <div class="media blog-item" data-date="
91902/25/2026" data-blog-id="699f08e40acd507d2c34881f"> 920 <div class="media-body"> 921 <p class="media-heading"> 922 <a href="https://www.tschanz.fr/blog/nouveaux-seuils-micro-pour-2026-2027-et-2028.html">Nouveaux seuils micro pour 2026, 2027 et 2028</a> 923 </p> 924 925 <p class="metas"> 926 <span class="meta-date">Le mercredi, 25 février 2026</span> 927 </p> 928 </div> 929 </div> 930 <div class="media blog-item" data-date="04/04/2025" data-blog-id="67eff8e1c130507d2c347756"> 931 <div class="media-body"> 932 <p class="media-heading"> 933 <a href="https://www.tschanz.fr/blog/declaration-des-revenus-de-2024-les-dates-limites-selon-les-departements-sont-fixees.html">Déclaration des revenus de 2024 : les dates limites selon les départements sont fixées</a> 934 </p> 935 936 <p class="metas"> 937 <span class="meta-date">Le vendredi, 04 avril 2025</span> 938 </p> 939 </div> 940 </div> 941 <div class="media blog-item" data-date="
94102/06/2025" data-blog-id="67a4773d6f57507d2c34b612"> 942 <div class="media-body"> 943 <p class="media-heading"> 944 <a href="https://www.tschanz.fr/blog/franchise-en-base-tva-modification-importante-au-1er-mars.html">franchise en base TVA Modification importante au 1er mars--&gt;[ Réforme annulée]</a> 945 </p> 946 947 <p class="metas"> 948 <span class="meta-date">Le jeudi, 06 février 2025</span> 949 </p> 950 </div> 951 </div> 952 <div class="media blog-item" data-date="01/23/2025" data-blog-id="67921af1d5dd507d2c34888e"> 953 <div class="media-body"> 954 <p class="media-heading"> 955 <a href="https://www.tschanz.fr/blog/difference-entre-redressement-et-liquidation-judiciaire.html">différence entre redressement et liquidation judiciaire</a> 956 </p> 957 958 <p class="metas"> 959 <span class="meta-date">Le jeudi, 23 janvier 2025</span> 960 </p> 961 </div> 962 </div> 963 </div> 964 965 </div> 966 </div> 967 </div> 968 </aside> 969 </div> 970 </div> 971 <!-- //WRAPPER --> 972 973 <footer id="footer"> 974 <div id="rows-60240291dd4339d72c88595f" class="rows" data-total-pages="1" data-current-page="1"> 975 <div id="row-60240291dd4339d72c88595f-1" data-mcp-line-id="5e85fb7db8066a01cd1bcf4f" class="row-container pos-1 page_1 container"> 976 <div class="row-content"> 977 <div class="row" data-role="line"> 978 979 980 981 982 <div data-role="cell" data-mcp-cell-id="5e85fb7db8095aefaaeed0f0" data-size="lg" id="cell-5e85fb7db8095aefaaeed0f0" class="col"> 983 <div class="col-content col-no-widget col-codehtml"> 984 <p style="text-align: center; font-family: arial, helvetica, sans-serif; font-size: 0.85em; color: #666666; margin: 10px 0;"> 985 © 2026 Cabinet TSCHANZ® â Marque déposée â Tous droits réservés 986</p> 987<p style="text-align: center; font-family: arial, helvetica, sans-serif; font-size: 0.8em; color: #999999; margin: 5px 0;"> 988 Experts-Comptables à Annemasse & Divonne-les-Bains â Membre de l'Ordre des Experts-Comptables 989</p> 990<p style="text-align: center; margin: 8px 0;"> 991 <a href="mailto:[email protected]" style="color: #c5a55a; font-family: arial, sans-serif; font-size: 0.8em; text-decoration: none;">[email protected]</a> 992 | 993 <a href="tel:0450920477" style="color: #c5a55a; font-family: arial, sans-serif; font-size: 0.8em; text-decoration: none;">04 50 92 04 77</a> 994 | 995 <a href="tel:0450203998" style="color: #c5a55a; font-family: arial, sans-serif; font-size: 0.8em; text-decoration: none;">04 50 20 39 98</a> 996</p></div> 997 </div> 998 </div> 999 </div> 1000 </div> 1001 </div> 1002 1003 1004 1005 <div class="container"> 1006 1007 1008 </div> 1009 1010 <ul id="legal-mentions" class="footer-mentions"> 1011 1012 <li><a href="https://www.tschanz.fr/about/cgu/">Conditions générales d'utilisation</a></li> 1013 1014 1015 1016 1017 <li><button id="cookies" type="button" aria-label="Gestion des cookies">Gestion des cookies</button></li> 1018 </ul> 1019 </footer> 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 <button id="scroll-to-top" class="d-none d-sm-inline-block" type="button" aria-label="Scroll top" onclick="$('html, body').animate({ scrollTop:0}, 600);"> 1034 <i class="material-icons md-lg md-expand_less"></i> 1035 </button> 1036 1037
1037<script> 1038 /* TSCHANZ-MOBILE */ 1039$(function(){ 1040 /* CSS mobile */ 1041 var mobileCss = '<style id="tschanz-mobile">@media(max-width:991px){' + 1042 '.tschanz-topbar{font-size:11px!important;text-align:center!important;padding:5px 8px!important;white-space:nowrap!important;}' + 1043 '#navbar{min-height:65px!important;padding-top:10px!important;padding-bottom:10px!important;}' + 1044 '#navbar .navbar-brand.d-inline-flex{display:inline-flex!important;}' + 1045 '#navbar .navbar-brand.d-inline-flex{display:inline-flex!important;}' + 1046 'html,body{overflow-x:hidden!important;max-width:100vw!important;}' + 1047 '}</style>'; 1048 if(!$('#tschanz-mobile').length){ $('head').append(mobileCss); } 1049 1050 /* TOPBAR TELEPHONE */ 1051 if(!document.querySelector('.tschanz-topbar')){ 1052 var bar = document.createElement('div'); 1053 bar.id = '.tschanz-topbar'; 1054 bar.innerHTML = 'Tél. Annemasse : <a href="tel:0450920477">04 50 92 04 77</a>  |  Divonne : <a href="tel:0450203998">04 50 20 39 98</a>'; 1055 var nav = document.getElementById('navbar'); 1056 if(nav){ nav.parentNode.insertBefore(bar, nav); } 1057 } 1058 1059 /* BOUTON APPEL */ 1060 if(!document.getElementById('tz-call')){ 1061 var a = document.createElement('a'); 1062 a.id = 'tz-call'; 1063 a.href = 'tel:0450920477'; 1064 a.title = 'Appeler le cabinet'; 1065 a.innerHTML = '<svg viewBox="0 0 24 24" width="26" height="26" fill="#fff"><path d="M6.6 10.8c1.4 2.8 3.8 5.1 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1-9.4 0-17-7.6-17-17 0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1l-2.3 2.2z"/></svg>'; 1066 document.body.appendChild(a); 1067 } 1068 1069 /* VFX HEXAGONES */ 1070 function createHexagons(){ 1071 var hero = document.querySelector('.row-highlighted'); 1072 if(!hero || hero.querySelector('canvas')) return; 1073 var canvas = document.createElement('canvas'); 1074 canvas.style.cssText='position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:0.6;'; 1075 hero.style.position='relative'; 1076 hero.insertBefore(canvas, hero.firstChild); 1077 var ctx=canvas.getContext('2d'), hexes=[], t=0; 1078 function build(){ 1079 hexes=[]; 1080 var W=canvas.width=hero.offsetWidth, H=canvas.height=hero.offsetHeight, R=28; 1081 var cols=Math.ceil(W/(R*1.75))+2, rows=Math.ceil(H/(R*1.5))+2; 1082 for(var r=0;r<rows;r++) for(var c=0;c<cols;c++) hexes.push({cx:c*R*1.75+(r%2)*R*0.875,cy:r*R*1.5,phase:Math.random()*Math.PI*2}); 1083 } 1084 build(); 1085 window.addEventListener('resize',build); 1086 (function anim(){ 1087 ctx.clearRect(0,0,canvas.width,canvas.height); 1088 hexes.forEach(function(h){ 1089 var p=(Math.sin(t+h.phase)+1)/2; 1090 ctx.beginPath(); 1091 for(var i=0;i<6;i++){var a=Math.PI/3*i-Math.PI/6;i?ctx.lineTo(h.cx+26*Math.cos(a),h.cy+26*Math.sin(a)):ctx.moveTo(h.cx+26*Math.cos(a),h.cy+26*Math.sin(a));} 1092 ctx.closePath(); 1093 ctx.strokeStyle='rgba(197,165,90,'+(0.04+p*0.18)+')'; 1094 ctx.lineWidth=0.8; ctx.stroke(); 1095 }); 1096 t+=0.018; requestAnimationFrame(anim); 1097 })(); 1098 } 1099 setTimeout(createHexagons, 300); 1100 1101 /* VFX SOULIGNEMENT */ 1102 document.querySelectorAll('.nav-link').forEach(function(link){ 1103 link.classList.add('vfx-underline'); 1104 }); 1105 1106 /* ESPACE CLIENT label */ 1107 if(!document.querySelector('#navbar::after') && window.innerWidth > 991){ 1108 var style = document.getElementById('tschanz-espace'); 1109 if(!style){ 1110 style = document.createElement('style'); 1111 style.id = 'tschanz-espace'; 1112 document.head.appendChild(style); 1113 } 1114 } 1115}); 1116 1117/* TSCHANZ-SIMULATEUR-TNS-FIX â abattement 26% réforme 2026 */ 1118$(function(){ 1119 // Uniquement sur la page simulateur TNS 1120 if(!document.getElementById('r')) return; 1121 1122 // Remplacer la fonction go() par la version corrigée avec abattement 26% 1123 window.go = function(){ 1124 var r = parseFloat(document.getElementById('r').value) || 0; 1125 if(r <= 0){ 1126 document.getElementById('res').style.display = 'none'; 1127 return; 1128 } 1129 var p = 46368; // PASS 2026 1130 var b = r * 0.74; // base après abattement 26% â réforme URSSAF 2026 1131 1132 // Cotisations calculées sur base réduite (sauf formation et CSG/CRDS sur revenu brut) 1133 var vals = [ 1134 b * 0.065, // Maladie-maternité ~6.5% 1135 Math.min(b,p)*0.1775 + Math.max(0,b-p)*0.006, // Retraite base 1136 Math.min(b,p)*0.07, // Retraite complémentaire 1137 b * 0.013, // Invalidité-décès 1138 b > p*0.4 ? b*0.031 : 0, // Allocations familiales 1139 r * 0.0025, // Formation pro (sur brut) 1140 r * 0.099 // CSG/CRDS (sur brut) 1141 ]; 1142 1143 var t = vals.reduce(function(a,b){ return a+b; }, 0); 1144 1145 function f(n){ 1146 return new Intl.NumberFormat('fr-FR',{style:'currency',currency:'EUR',minimumFractionDigits:0,maximumFractionDigits:0}).format(n); 1147 } 1148
1149 vals.forEach(function(x,i){ 1150 var el = document.getElementById('v'+(i+1)); 1151 if(el) el.textContent = f(x); 1152 }); 1153 document.getElementById('vt').textContent = f(t); 1154 document.getElementById('vb').textContent = 'Taux : ' + (t/r*100).toFixed(1) + ' %'; 1155 document.getElementById('vn').textContent = f(r - t); 1156 document.getElementById('res').style.display = 'block'; 1157 }; 1158}); 1159 1160/* TSCHANZ-MENU-CUSTOM */ 1161$(function(){ 1162 // Uniquement sur mobile â vérifier largeur ET présence du burger visible 1163 var burger = document.getElementById('buttonBurgerMenu'); 1164 var realMenu = document.getElementById('menu'); 1165 if(!burger || !realMenu) return; 1166 // Si le burger n'est pas visible, on est sur desktop 1167 if(burger.offsetParent === null) return; 1168 1169 // 1. Cacher le vrai menu Bootstrap définitivement 1170 realMenu.style.setProperty('display','none','important'); 1171 burger.removeAttribute('data-toggle'); 1172 burger.removeAttribute('data-target'); 1173 1174 // 2. Récupérer les liens nav-left 1175 var links = realMenu.querySelectorAll('ul.nav-left > li.nav-item > a.nav-link'); 1176 1177 // 3. Créer le menu custom fixe pleine largeur 1178 var existing = document.getElementById('tz-custom-menu'); 1179 if(existing) existing.parentNode.removeChild(existing); 1180 1181 var myMenu = document.createElement('div'); 1182 myMenu.id = 'tz-custom-menu'; 1183 myMenu.setAttribute('style', [ 1184 'display:none', 1185 'position:fixed', 1186 'left:0', 1187 'right:0', 1188 'width:100vw', 1189 'max-width:100vw', 1190 'z-index:99999', 1191 'background:#f9f7f4', 1192 'border-top:3px solid #C9A84C', 1193 'box-shadow:0 6px 18px rgba(0,0,0,0.12)', 1194 'box-sizing:border-box', 1195 'margin:0', 1196 'padding:0' 1197 ].join(';')); 1198 1199 function getTop(){ 1200 var navbar = document.getElementById('navbar') || document.querySelector('nav.navbar'); 1201 return navbar ? navbar.getBoundingClientRect().bottom : 80; 1202 } 1203 1204 var ul = document.createElement('ul'); 1205 ul.setAttribute('style','list-style:none;padding:4px 0 8px;margin:0;width:100%;'); 1206 links.forEach(function(a, i){ 1207 var li = document.createElement('li'); 1208 li.setAttribute('style','width:100%;border-bottom:'+(i<links.length-1?'1px solid #e8e4de':'none')+';'); 1209 var link = document.createElement('a'); 1210 link.href = a.href; 1211 link.textContent = a.textContent.trim(); 1212 link.setAttribute('style',[ 1213 'color:#1C2B5E','font-size:11.5px','font-weight:700', 1214 'letter-spacing:0.12em','text-transform:uppercase', 1215 'padding:14px 24px','display:block','width:100%', 1216 'text-decoration:none','box-sizing:border-box', 1217 'border-left:3px solid transparent' 1218 ].join(';')); 1219 li.appendChild(link); 1220 ul.appendChild(li); 1221 }); 1222 myMenu.appendChild(ul); 1223 document.body.appendChild(myMenu); 1224 1225 // 4. Toggle 1226 var isOpen = false; 1227 burger.addEventListener('click', function(e){ 1228 e.preventDefault(); 1229 e.stopPropagation(); 1230 isOpen = !isOpen; 1231 if(isOpen){ 1232 myMenu.style.top = getTop() + 'px'; 1233 myMenu.style.display = 'block'; 1234 burger.classList.remove('collapsed'); 1235 } else { 1236 myMenu.style.display = 'none'; 1237 burger.classList.add('collapsed'); 1238 } 1239 }, true); 1240 1241 // 5. Fermer au clic dehors 1242 document.addEventListener('click', function(e){ 1243 if(isOpen && !myMenu.contains(e.target) && !burger.contains(e.target)){ 1244 isOpen = false; 1245 myMenu.style.display = 'none'; 1246 burger.classList.add('collapsed'); 1247 } 1248 }); 1249 1250 // 6. Recalculer top au scroll 1251 window.addEventListener('scroll', function(){ 1252 if(isOpen) myMenu.style.top = getTop() + 'px'; 1253 }, {passive:true}); 1254}); 1255 1256/* TSCHANZ-SIM-WIDGET */ 1257$(function(){ 1258 var w3 = document.getElementById('widget-3'); 1259 var w4 = document.getElementById('widget-4'); 1260 if(w3) w3.style.setProperty('display','none','important'); 1261 if(w4) w4.style.setProperty('display','none','important'); 1262 1263 if(document.getElementById('tz-sim-widget')) return; 1264 var w1 = document.getElementById('widget-1'); 1265 if(!w1) return; 1266 var div = document.createElement('div'); 1267 div.id = 'tz-sim-widget'; 1268 div.innerHTML = 1269 '<span class="tz-sim-title">Nos Simulateurs 2026</span>' + 1270 '<a href="/pages/simulateur-is-2026.html">Impot sur les Societes (IS)</a>' + 1271 '<a href="/pages/simulateur-tns-2026.html">Cotisations TNS 2026</a>'; 1272 w1.parentNode.insertBefore(div, w1.nextSibling); 1273}); 1274 1275/* TSCHANZ-FORMULAIRES-FIX */ 1276$(function(){ 1277 var tzForms = document.getElementById('tz-forms'); 1278 if(!tzForms) return; 1279 // Trouver le conteneur de contenu principal de la page (là où le texte de page s'affiche) 1280 var pageContent = document.querySelector('.page-content, #content, .content-wrapper, [class*="page-body"], .entry-content, .col-md-9 .widget-content'); 1281 if(!pageContent) { 1282 // Fallback : chercher le premier div après le navbar qui contient du contenu de page 1283 var main = document.querySelector('main, #main, .main, [role="main"]'); 1284 if(main) pageContent = main; 1285 } 1286 if(pageContent) { 1287 // Déplacer tz-forms à l'intérieur du bon conteneur 1288 pageContent.insertBefore(tzForms, pageContent.firstChild); 1289 tzForms.style.display = 'block'; 1290 } else { 1291 // Fallback : insérer après le navbar dans le body 1292 var navbar = document.getElementById('navbar'); 1293 if(navbar && navbar.parentElement) { 1294 navbar.parentElement.insertBefore(tzForms, navbar.nextSibling); 1295 } 1296 } 1297}); 1298 1299$(function() { 1300 1301 /* 1. LIEN LIENS : corriger URL 404 */ 1302 $('a').each(function() { 1303 if ($(this).text().trim() === 'Liens' && $(this).attr('href') && $(this).attr('href').includes('/liens')) { 1304 $(this).attr('href', '/pages/formulaires-en-ligne.html'); 1305 } 1306 }); 1307 1308 /* 2. SUPPRIMER LIENS EN DOUBLE : masquer celui dans nav-left */ 1309 var navLeft = document.querySelector('#menu ul.navbar-nav:first-child'); 1310 if (navLeft) { 1311 var liensInLeft = [...navLeft.querySelectorAll('a:not(.cal-footer a):not(.cal-footer *)')].find(a => a.textContent.trim() === 'Liens'); 1312 if (liensInLeft) { 1313 var li = liensInLeft.closest('li'); 1314 if (li) li.style.display = 'none'; 1315 } 1316 } 1317 1318 /* 3. TEXTES INVISIBLES sur fond sombre : forcer blanc */ 1319 var darkSections = [...document.querySelectorAll('[style*="background"]')].filter(el => { 1320 var bg = window.getComputedStyle(el).backgroundColor; 1321 return bg === 'rgb(14, 30, 53)' || bg === 'rgb(10, 18, 35)' || bg === 'rgb(26, 46, 74)'; 1322 }); 1323 darkSections.forEach(function(section) { 1324 section.querySelectorAll('p, span, li, td, div').forEach(function(el) { 1325 var c = window.getComputedStyle(el).color; 1326 if (c === 'rgb(0, 0, 0)' || c === 'rgb(44, 44, 44)' || c === 'rgb(44, 62, 80)') { 1327 el.style.setProperty('color', 'rgba(255,255,255,0.88)', 'important'); 1328 } 1329 });
1330 }); 1331 1332}); 1333 1334/* ===== CORRECTIONS AUDIT 02/04/2026 ===== */ 1335 1336/* Fix A : Mixed content - images HTTP â HTTPS */ 1337document.querySelectorAll('img').forEach(function(img){ 1338 if(img.src && img.src.indexOf('http://') === 0){ 1339 img.src = img.src.replace('http://', 'https://'); 1340 } 1341}); 1342// Observer pour images chargées après DOM 1343var imgObserver = new MutationObserver(function(muts){ 1344 muts.forEach(function(m){ 1345 m.addedNodes.forEach(function(n){ 1346 if(n.tagName === 'IMG' && n.src && n.src.indexOf('http://') === 0) 1347 n.src = n.src.replace('http://','https://'); 1348 if(n.querySelectorAll){ 1349 n.querySelectorAll('img[src^="http://"]').forEach(function(i){ 1350 i.src = i.src.replace('http://','https://'); 1351 }); 1352 } 1353 }); 1354 }); 1355}); 1356imgObserver.observe(document.body, {childList:true, subtree:true}); 1357 1358/* Fix B : Lien contact/ -> contact/ */ 1359document.querySelectorAll('a[href$="contact/"]').forEach(function(a){ 1360 a.href = a.href.replace(/contact\.html$/, 'contact/'); 1361}); 1362 1363/* Fix C : Lien Google Maps - corriger goo.gl/maps/4AFVB */ 1364document.querySelectorAll('a[href*="goo.gl/maps"]').forEach(function(a){ 1365 a.href = 'https://www.google.com/maps/place/Cabinet+TSCHANZ+Experts-Comptables/@46.1957,6.2358,17z/'; 1366 a.target = '_blank'; 1367 a.rel = 'noopener noreferrer'; 1368}); 1369 1370/* Fix D : Liens dans divs à fond navy (style inline) -> blanc */ 1371document.querySelectorAll('div[style]').forEach(function(div){ 1372 if(div.style.backgroundColor === 'rgb(14, 30, 53)' || div.style.background === 'rgb(14, 30, 53)'){ 1373 div.querySelectorAll('a:not(.cal-footer a):not(.cal-footer *)').forEach(function(a){ 1374 a.style.setProperty('color','#ffffff','important'); 1375 }); 1376 } 1377}); 1378/* Idem après mutations DOM */ 1379var navyObserver = new MutationObserver(function(){ 1380 document.querySelectorAll('div[style]').forEach(function(div){ 1381 if(div.style.backgroundColor === 'rgb(14, 30, 53)' || div.style.background === 'rgb(14, 30, 53)'){ 1382 div.querySelectorAll('a:not(.cal-footer a):not(.cal-footer *)').forEach(function(a){ 1383 a.style.setProperty('color','#ffffff','important'); 1384 }); 1385 } 1386 }); 1387}); 1388navyObserver.observe(document.body,{childList:true,subtree:true}); 1389 1390/* Fix E : Liens <a> avec fond navy inline -> texte blanc (NOUS CONTACTER) */ 1391(function fixNavyLinks(){ 1392 document.querySelectorAll('a[style]:not(.cal-footer *):not(#cell-69c163b179b7e08644b9fc2a *)').forEach(function(a){ 1393 if(a.style.backgroundColor === 'rgb(14, 30, 53)' || a.style.background === 'rgb(14, 30, 53)'){ 1394 a.style.setProperty('color','#ffffff','important'); 1395 } 1396 }); 1397 // Ré-appliquer après chargement complet 1398 window.addEventListener('load', function(){ 1399 document.querySelectorAll('a[style]:not(.cal-footer *):not(#cell-69c163b179b7e08644b9fc2a *)').forEach(function(a){ 1400 if(a.style.backgroundColor === 'rgb(14, 30, 53)' || a.style.background === 'rgb(14, 30, 53)'){ 1401 a.style.setProperty('color','#ffffff','important'); 1402 } 1403 }); 1404 }); 1405})(); 1406 1407// lire-color-fix-v2 1408(function() { 1409 function fixLire() { 1410 document.querySelectorAll('a[href*="/blog/"]:not(.cal-footer *)').forEach(function(a) { 1411 if (a.textContent.match(/LIRE|ARTICLE/)) { 1412 var s = a.getAttribute('style') || ''; 1413 if (s.indexOf('rgb(255, 255, 255)') !== -1 || s.indexOf('white') !== -1) { 1414 a.style.removeProperty('color'); 1415 a.style.setProperty('color', '#c5a55a', 'important'); 1416 } 1417 } 1418 }); 1419 } 1420 fixLire(); 1421 setTimeout(fixLire, 300); 1422 setTimeout(fixLire, 800); 1423 setTimeout(fixLire, 2000); 1424 var obs = new MutationObserver(function(muts) { 1425 muts.forEach(function(m) { 1426 if (m.target && m.target.tagName === 'A' && m.attributeName === 'style') { 1427 var a = m.target; 1428 if (a.href && a.href.indexOf('/blog/') !== -1 && a.textContent.match(/LIRE|ARTICLE/)) { 1429 var s = a.getAttribute('style') || ''; 1430 if (s.indexOf('rgb(255, 255, 255)') !== -1 || s.indexOf('white') !== -1) { 1431 a.style.removeProperty('color'); 1432 a.style.setProperty('color', '#c5a55a', 'important'); 1433 } 1434 } 1435 } 1436 });
1437 }); 1438 document.addEventListener('DOMContentLoaded', function() { 1439 obs.observe(document.body, {subtree: true, attributes: true, attributeFilter: ['style']}); 1440 fixLire(); 1441 }); 1442 if (document.readyState !== 'loading') { 1443 obs.observe(document.body, {subtree: true, attributes: true, attributeFilter: ['style']}); 1444 } 1445})(); 1446 1447 1448/* === FIX NAVBAR MOBILE - Position burger visible === */ 1449function applyMobileNavFix(){ 1450 var nb = document.getElementById('navbar'); 1451 if(!nb) return; 1452 if(window.innerWidth <= 991){ 1453 nb.style.setProperty('top', '35px', 'important'); 1454 nb.style.setProperty('z-index', '1060', 'important'); 1455 var nbH = nb.offsetHeight || 65; 1456 var nbHCapped = Math.min(nbH, 60); document.documentElement.style.setProperty('padding-top', (35 + nbHCapped) + 'px', 'important'); 1457 } else { 1458 nb.style.removeProperty('top'); 1459 document.documentElement.style.removeProperty('padding-top'); 1460 } 1461} 1462$(document).ready(function(){ 1463 setTimeout(applyMobileNavFix, 150); 1464 setTimeout(applyMobileNavFix, 600); 1465}); 1466$(window).on('resize orientationchange', applyMobileNavFix); 1467 1468/* Fix h2 blanc dans sections facturation */ 1469(function(){var s=document.createElement('style');s.textContent='.col-content h2{color:inherit!important;}.col-content h2[style*="color: #ffffff"],.col-content h2[style*="color:#ffffff"]{color:#ffffff!important;}';document.head.appendChild(s);})(); 1470 1471/* Fix p/h3 invisibles - gradient navy */ 1472$(document).ready(function(){setTimeout(function(){document.querySelectorAll('p,h3,h4').forEach(function(el){var bgI=window.getComputedStyle(el.parentElement||el).backgroundImage;var col=window.getComputedStyle(el).color;if(bgI&&bgI.includes('14, 30, 53')&&(col.includes('44, 62')||col.includes('14, 30'))){el.style.setProperty('color','rgba(255,255,255,0.88)','important');}});},600);}); 1473 1474 1475 1476/* Fix p/h3 - 5 niveaux parents navy */ 1477$(document).ready(function(){setTimeout(function(){document.querySelectorAll('p,h3,h4').forEach(function(el){var c=el,dark=false;for(var i=0;i<6;i++){c=c&&c.parentElement;if(c){var bi=window.getComputedStyle(c).backgroundImage;if(bi&&bi.includes('14, 30, 53')){dark=true;break;}}}var col=window.getComputedStyle(el).color;if(dark&&(col.includes('44, 62')||col.includes('14, 30'))){el.style.setProperty('color','rgba(255,255,255,0.88)','important');}});},700);}); 1478 1479/* Fix couleurs navy - load + 1500ms */ 1480function fixNavyTexts(){document.querySelectorAll('p,h3,h4').forEach(function(el){var c=el,dark=false;for(var i=0;i<6;i++){c=c&&c.parentElement;if(c){var bi=window.getComputedStyle(c).backgroundImage;if(bi&&bi.includes('14, 30, 53')){dark=true;break;}}}var col=window.getComputedStyle(el).color;if(dark&&(col.includes('44, 62')||col.includes('14, 30'))){el.style.setProperty('color','rgba(255,255,255,0.88)','important');}});30window.addEventListener('load',function(){setTimeout(fixNavyTexts,500);setTimeout(fixNavyTexts,1500);})appendChild$(document).ready(function(){setTimeout(fixNavyTexts,800);setTimeout(fixNavyTexts,2000);}); 1481 1482/* CACHER TITRE WIDGET SIDEBAR */ 1483if(document.querySelector('#widget-1 .widget-title')){ 1484 document.querySelector('#widget-1 .widget-title').style.display='none'; 1485} 1486 1487/* TEXTE BLANC SUR FONDS NAVY #0e1e35 */ 1488(function(){ 1489 var s=document.createElement('style'); 1490 s.textContent='div[style*="background:#0e1e35"] p,div[style*="background:#0e1e35"] li,div[style*="background:#0e1e35"] h1,div[style*="background:#0e1e35"] h2,div[style*="background:#0e1e35"] h3,div[style*="background:#0e1e35"] h4{color:#ffffff!important;}'; 1491 document.head.appendChild(s); 1492})(); 1493 1494 1495/* FOOTER ELEGANT COMPACT - injection inline */ 1496(function applyFooterStyle(){ 1497 var f=document.getElementById('footer'); 1498 if(!f){setTimeout(applyFooterStyle,300);return;} 1499 f.style.cssText='background:#0e1e35!important;padding:8px 0!important;border-top:1px solid rgba(197,165,90,0.3)!important;'; 1500 var containers=f.querySelectorAll('.row-container,.row,.col,.col-content'); 1501 containers.forEach(function(el){ 1502 el.style.background='transparent'; 1503 el.style.backgroundColor='transparent'; 1504 }); 1505 f.querySelectorAll('p').forEach(function(el){ 1506 el.style.fontSize='11px'; 1507 el.style.color='rgba(247,244,239,0.8)'; 1508 el.style.margin='2px 0'; 1509 el.style.lineHeight='1.4'; 1510 el.style.textAlign='center'; 1511 }); 1512 f.querySelectorAll('a:not(.cal-footer a):not(.cal-footer *)').forEach(function(el){ 1513 var elBg = window.getComputedStyle(el).backgroundColor; if(elBg === 'rgb(197, 165, 90)') return;
1513 // skip liens avec fond or 1514 el.style.fontSize='11px'; 1515 el.style.color='#c5a55a'; 1516 }); 1517})(); 1518 1519/* MASQUER WIDGETS SIDEBAR EN DOUBLE (widget-3 vide + widget-4 doublon) */ 1520(function(){ 1521 var w3 = document.getElementById('widget-3'); 1522 var w4 = document.getElementById('widget-4'); 1523 if(w3) w3.style.display = 'none'; 1524 if(w4) w4.style.display = 'none'; 1525})(); 1526 1527/* MASQUER RONDS BLEUS ET FLECHES SUR LES LISTES */ 1528(function(){ 1529 var s=document.createElement('style'); 1530 s.textContent='.col-content.col-no-widget ul>li::before,.content ul>li::before{display:none!important;}.col-content.col-no-widget ul>li::after,.content ul>li::after{display:none!important;}.col-content.col-no-widget ul>li,.content ul>li{padding-left:0!important;list-style:none!important;}'; 1531 document.head.appendChild(s); 1532})(); 1533 1534/* CORRIGER TEXTE BLANC SUR FOND BLANC (#ffffff) - boites etapes et autres */ 1535(function fixWhiteOnWhite(){ 1536 var boxes = document.querySelectorAll('div[style*="background: #ffffff"],div[style*="background:#ffffff"]'); 1537 boxes.forEach(function(box){ 1538 box.querySelectorAll('*').forEach(function(el){ 1539 var c = window.getComputedStyle(el).color; 1540 if(c.includes('255, 255, 255')){ 1541 el.style.setProperty('color','#0e1e35','important'); 1542 } 1543 }); 1544 }); 1545 // Aussi corriger les textes blancs sur fond creme (row-content) 1546 document.querySelectorAll('.row-content,.col-content').forEach(function(el){ 1547 if(window.getComputedStyle(el).color==='rgb(255, 255, 255)'){ 1548 el.style.setProperty('color','#0e1e35','important'); 1549 } 1550 }); 1551})(); 1552 1553/* ââ TOPBAR GLOBAL TSCHANZ ââ */ 1554(function(){
1555 if(document.querySelector('.tschanz-topbar')) return; 1556 var style = document.createElement('style'); 1557 style.textContent = '.tschanz-topbar{background:#1B2A4A;color:rgba(255,255,255,0.8);text-align:center;padding:7px 16px;font-size:0.83em;font-family:arial,sans-serif;letter-spacing:.3px;}.tschanz-topbar a{color:#C5A55A;text-decoration:none;font-weight:600;}.tschanz-topbar a:hover{text-decoration:underline;}'; 1558 document.head.appendChild(style); 1559 var tb = document.createElement('div'); 1560 tb.className = 'tschanz-topbar'; 1561 tb.innerHTML = '<span style="color:#C5A55A">☎</span> <a href="tel:+33450920477">04 50 92 04 77</a> | Annemasse & Divonne-les-Bains | <a href="mailto:[email protected]">[email protected]</a>'; 1562 var nav = document.getElementById('navbar') || document.querySelector('nav'); 1563 if(nav && nav.parentNode) nav.parentNode.insertBefore(tb, nav); 1564})(); 1565/* ââ FIX DOUBLE LIENS NAVBAR (global) ââ */ 1566(function(){ 1567 var liens = Array.from(document.querySelectorAll('#navbar a[href*="/liens/"]')); 1568 if(liens.length > 1) { 1569 var last = liens[liens.length-1].closest('li') || liens[liens.length-1].parentElement; 1570 if(last) last.style.display = 'none'; 1571 } 1572})(); 1573 1574/* Fix contact/ â contact/ ROBUSTE avec retry */ 1575(function fixContactLinks(){ 1576 function fix(){ 1577 document.querySelectorAll('a[href$="contact/"]').forEach(function(a){ 1578 a.href = a.href.replace('contact/','contact/'); 1579 }); 1580 } 1581 fix(); 1582 setTimeout(fix, 200); 1583 setTimeout(fix, 600); 1584 setTimeout(fix, 1500); 1585 var obs = new MutationObserver(fix); 1586 obs.observe(document.body, {childList:true, subtree:true}); 1587})(); 1588 1589/* Fix FINAL contact 404 - sélecteur dynamique anti-cache */ 1590(function(){ 1591 var ext = 'contact' + '.' + 'html'; 1592 var target = 'contact/'; 1593 function fixLinks(){ 1594 document.querySelectorAll('a:not(.cal-footer a):not(.cal-footer *)').forEach(function(a){ 1595 if(a.href && a.href.indexOf(ext) !== -1){ 1596 a.href = a.href.replace(ext, target); 1597 } 1598 }); 1599 } 1600 fixLinks(); 1601 setTimeout(fixLinks, 100); 1602 setTimeout(fixLinks, 300); 1603 setTimeout(fixLinks, 800); 1604 setTimeout(fixLinks, 2000); 1605 var obs = new MutationObserver(fixLinks); 1606 document.addEventListener('DOMContentLoaded', function(){ 1607 obs.observe(document.body, {childList:true, subtree:true, attributes:true, attributeFilter:['href']}); 1608 fixLinks(); 1609 }); 1610 if(document.body) obs.observe(document.body, {childList:true, subtree:true}); 1611})(); 1612 1613/* Fix liens 404 - navbar Liens + contact/contact.html */ 1614(function(){ 1615 function fixNav(){ 1616 // Fix "Liens" â formulaires-en-ligne (page dépubliée) 1617 document.querySelectorAll('a:not(.cal-footer a):not(.cal-footer *)').forEach(function(a){ 1618 if(a.href && a.href.match(/tschanz.fr/liens/?$/)){ 1619 a.href = '/pages/formulaires-en-ligne.html'; 1620 } 1621 // Fix contact/contact.html â contact/ 1622 if(a.href && a.href.indexOf('contact/contact') !== -1){ 1623 a.href = a.href.replace('contact/contact.html','contact/'); 1624 } 1625 }); 1626 } 1627 fixNav(); 1628 setTimeout(fixNav, 150); 1629 setTimeout(fixNav, 500); 1630 setTimeout(fixNav, 1500); 1631 var obs = new MutationObserver(fixNav); 1632 if(document.body) obs.observe(document.body,{childList:true,subtree:true}); 1633 document.addEventListener('DOMContentLoaded', function(){ fixNav(); obs.observe(document.body,{childList:true,subtree:true}); }); 1634})(); 1635 1636/* Fix bouton NOUS ECRIRE - fond or texte doit etre navy */ 1637(function(){ 1638 function fix(){ 1639 document.querySelectorAll('a[href^="mailto:"]').forEach(function(a){ 1640 if(a.style && a.style.cssText && a.style.cssText.indexOf('c5a55a') !== -1){ 1641 a.style.setProperty('color','#0e1e35','important'); 1642 } 1643 }); 1644 } 1645 setTimeout(fix,300);setTimeout(fix,800);setTimeout(fix,2000); 1646})(); 1647 1648/* Fix couleur mailto Nous ecrire */ 1649document.addEventListener('DOMContentLoaded', function() { 1650 var cell = document.getElementById('cell-69c163b179b7e08644b9fc2a'); 1651 if (cell) { 1652 var link = cell.querySelector('a[href="mailto:[email protected]"]'); 1653 if (link) { 1654 link.style.setProperty('color', '#ffffff', 'important'); 1655 link.style.setProperty('font-weight', '600', 'important'); 1656 } 1657 } 1658}); 1659 </script>
1659 1660 1661 </body> 1662</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.