templates/partner/myaudio-surdifrance.html.twig line 1

Open in your IDE?
  1. <!DOCTYPE html>
  2. <html lang="fr">
  3.     <head>
  4.         <meta charset="UTF-8">
  5.         <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.         <title>MyAudio x SurdiFrance - Partenariat pour l'inclusion auditive</title>
  7.         <link rel="stylesheet" href="/assets/lib/bootstrap-5.0.2-dist/css/bootstrap.css">
  8.         <link rel="stylesheet" href="/assets/css/footer.css">
  9.         <style>
  10.             * {
  11.                 margin: 0;
  12.                 padding: 0;
  13.                 box-sizing: border-box;
  14.             }
  15.             :root {
  16.                 --primary-green: #03866A;
  17.                 --primary-dark: #025745;
  18.                 --primary-light: #04a882;
  19.                 --secondary-blue: #0066CC;
  20.                 --accent-orange: #FF6B35;
  21.                 --text-dark: #2C3E50;
  22.                 --text-light: #5A6C7D;
  23.                 --bg-light: #F8FAFB;
  24.                 --bg-gray: #F5F7FA;
  25.                 --white: #FFFFFF;
  26.                 --card-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
  27.                 --hover-shadow: 0 8px 20px rgba(3, 134, 106, 0.15);
  28.             }
  29.             body {
  30.                 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  31.                 line-height: 1.6;
  32.                 color: var(--text-dark);
  33.                 background: var(--white);
  34.             }
  35.             /* Header Navigation */
  36.             .header-nav {
  37.                 background: var(--white);
  38.                 box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
  39.                 position: fixed;
  40.                 width: 100%;
  41.                 top: 0;
  42.                 z-index: 1000;
  43.             }
  44.             .nav-container {
  45.                 max-width: 1200px;
  46.                 margin: 0 auto;
  47.                 padding: 15px 20px;
  48.                 display: flex;
  49.                 justify-content: space-between;
  50.                 align-items: center;
  51.             }
  52.             .logo-area {
  53.                 height: 40px;
  54.             }
  55.             .logo-area img {
  56.                 width: 80px;
  57.             }
  58.             .nav-links {
  59.                 display: flex;
  60.                 gap: 30px;
  61.                 align-items: center;
  62.             }
  63.             .nav-links a {
  64.                 color: var(--text-dark);
  65.                 text-decoration: none;
  66.                 transition: color 0.3s ease;
  67.                 font-weight: 500;
  68.             }
  69.             .nav-links a:hover {
  70.                 color: var(--primary-green);
  71.             }
  72.             .btn-nav {
  73.                 background: var(--primary-green);
  74.                 color: white !important;
  75.                 padding: 10px 25px;
  76.                 border-radius: 25px;
  77.                 text-decoration: none;
  78.                 transition: all 0.3s ease;
  79.             }
  80.             .btn-nav:hover {
  81.                 background: var(--primary-dark);
  82.                 transform: translateY(-2px);
  83.             }
  84.             /* Hero Section */
  85.             .hero {
  86.                 background: linear-gradient(135deg, #03866A 0%, #04a882 100%);
  87.                 padding: 150px 0 100px;
  88.                 position: relative;
  89.                 overflow: hidden;
  90.             }
  91.             .hero::before {
  92.                 content: '';
  93.                 position: absolute;
  94.                 top: -50%;
  95.                 right: -10%;
  96.                 width: 500px;
  97.                 height: 500px;
  98.                 background: rgba(255, 255, 255, 0.1);
  99.                 border-radius: 50%;
  100.             }
  101.             .container {
  102.                 max-width: 1200px;
  103.                 margin: 0 auto;
  104.                 padding: 0 20px;
  105.             }
  106.             .hero-content {
  107.                 text-align: center;
  108.                 color: white;
  109.                 position: relative;
  110.                 z-index: 1;
  111.             }
  112.             .partnership-badge {
  113.                 display: inline-flex;
  114.                 align-items: center;
  115.                 gap: 15px;
  116.                 background: rgba(255, 255, 255, 0.15);
  117.                 padding: 15px 30px;
  118.                 border-radius: 30px;
  119.                 margin-bottom: 20px;
  120.                 backdrop-filter: blur(15px);
  121.                 border: 2px solid rgba(255, 255, 255, 0.2);
  122.                 box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
  123.             }
  124.             .partnership-logo {
  125.                 height: 55px;
  126.                 width: auto;
  127.                 transition: transform 0.3s ease;
  128.             }
  129.             .partnership-badge:hover .partnership-logo {
  130.                 transform: scale(1.05);
  131.             }
  132.             .partnership-connector {
  133.                 color: white;
  134.                 font-size: 1.4em;
  135.                 font-weight: 300;
  136.                 opacity: 0.9;
  137.             }
  138.             .hero h1 {
  139.                 font-size: 3em;
  140.                 margin-bottom: 20px;
  141.                 font-weight: 700;
  142.             }
  143.             .hero-subtitle {
  144.                 font-size: 1.2em;
  145.                 margin-bottom: 40px;
  146.                 opacity: 0.95;
  147.                 max-width: 700px;
  148.                 margin-left: auto;
  149.                 margin-right: auto;
  150.                 line-height: 1.8;
  151.             }
  152.             .cta-buttons {
  153.                 display: flex;
  154.                 gap: 20px;
  155.                 justify-content: center;
  156.                 flex-wrap: wrap;
  157.             }
  158.             .btn {
  159.                 padding: 15px 35px;
  160.                 border-radius: 30px;
  161.                 text-decoration: none;
  162.                 font-weight: 600;
  163.                 transition: all 0.3s ease;
  164.                 display: inline-block;
  165.             }
  166.             .btn-primary {
  167.                 background: white;
  168.                 color: var(--primary-green);
  169.                 box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  170.                 border: none;
  171.             }
  172.             .btn-primary:hover {
  173.                 background: var(--primary-dark);
  174.                 transform: translateY(-2px);
  175.             }
  176.             .btn-secondary {
  177.                 background: transparent;
  178.                 color: white;
  179.                 border: 2px solid white;
  180.             }
  181.             .btn-secondary:hover {
  182.                 background: white;
  183.                 color: var(--primary-green);
  184.             }
  185.             /* Stats Section */
  186.             .stats-section {
  187.                 background: var(--bg-gray);
  188.                 padding: 60px 0;
  189.                 margin-top: -50px;
  190.                 position: relative;
  191.                 z-index: 10;
  192.             }
  193.             .stats-grid {
  194.                 display: grid;
  195.                 grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  196.                 gap: 30px;
  197.                 max-width: 900px;
  198.                 margin: 0 auto;
  199.             }
  200.             .stat-card {
  201.                 background: white;
  202.                 padding: 30px;
  203.                 text-align: center;
  204.                 border-radius: 15px;
  205.                 box-shadow: var(--card-shadow);
  206.                 transition: all 0.3s ease;
  207.             }
  208.             .stat-card:hover {
  209.                 transform: translateY(-5px);
  210.                 box-shadow: var(--hover-shadow);
  211.             }
  212.             .stat-number {
  213.                 font-size: 2.5em;
  214.                 font-weight: 700;
  215.                 color: var(--primary-green);
  216.                 margin-bottom: 10px;
  217.             }
  218.             .stat-label {
  219.                 color: var(--text-light);
  220.                 font-size: 0.95em;
  221.             }
  222.             /* Magazine Section */
  223.             .magazine-section {
  224.                 background: linear-gradient(135deg, var(--primary-green) 0%, var(--primary-dark) 100%);
  225.                 padding: 80px 0;
  226.                 color: white;
  227.                 position: relative;
  228.                 overflow: hidden;
  229.             }
  230.             .magazine-section::before {
  231.                 content: '';
  232.                 position: absolute;
  233.                 top: -20%;
  234.                 right: -10%;
  235.                 width: 300px;
  236.                 height: 300px;
  237.                 background: rgba(255, 255, 255, 0.05);
  238.                 border-radius: 50%;
  239.                 z-index: 1;
  240.             }
  241.             .magazine-content {
  242.                 display: grid;
  243.                 grid-template-columns: 1fr 400px;
  244.                 gap: 60px;
  245.                 align-items: center;
  246.                 position: relative;
  247.                 z-index: 2;
  248.             }
  249.             .magazine-text h2 {
  250.                 font-size: 2.5em;
  251.                 margin-bottom: 20px;
  252.                 font-weight: 700;
  253.             }
  254.             .magazine-text h3 {
  255.                 font-size: 1.3em;
  256.                 margin-bottom: 30px;
  257.                 opacity: 0.9;
  258.                 color: #E8F5F0;
  259.             }
  260.             .magazine-text p {
  261.                 font-size: 1.1em;
  262.                 line-height: 1.7;
  263.                 margin-bottom: 20px;
  264.                 opacity: 0.95;
  265.             }
  266.             .magazine-features {
  267.                 list-style: none;
  268.                 margin: 30px 0;
  269.             }
  270.             .magazine-features li {
  271.                 display: flex;
  272.                 align-items: center;
  273.                 margin-bottom: 15px;
  274.                 font-size: 1.05em;
  275.             }
  276.             .magazine-features li::before {
  277.                 content: '✓';
  278.                 background: white;
  279.                 color: var(--primary-green);
  280.                 width: 24px;
  281.                 height: 24px;
  282.                 border-radius: 50%;
  283.                 display: flex;
  284.                 align-items: center;
  285.                 justify-content: center;
  286.                 margin-right: 15px;
  287.                 font-weight: 700;
  288.                 font-size: 0.9em;
  289.             }
  290.             .magazine-cta {
  291.                 background: white;
  292.                 color: var(--primary-green);
  293.                 padding: 15px 40px;
  294.                 border-radius: 30px;
  295.                 text-decoration: none;
  296.                 font-weight: 600;
  297.                 font-size: 1.1em;
  298.                 display: inline-block;
  299.                 transition: all 0.3s ease;
  300.                 margin-top: 20px;
  301.                 box-shadow: 0 4px 15px rgba(255, 255, 255, 0.2);
  302.             }
  303.             .magazine-cta:hover {
  304.                 background: var(--bg-light);
  305.                 transform: translateY(-2px);
  306.                 box-shadow: 0 8px 25px rgba(255, 255, 255, 0.3);
  307.                 color: var(--primary-dark);
  308.                 text-decoration: none;
  309.             }
  310.             .magazine-visual {
  311.                 display: flex;
  312.                 flex-direction: column;
  313.                 justify-content: center;
  314.                 align-items: center;
  315.                 position: relative;
  316.             }
  317.             .magazine-stats {
  318.                 background: rgba(255, 255, 255, 0.15);
  319.                 backdrop-filter: blur(15px);
  320.                 border-radius: 20px;
  321.                 padding: 40px 30px;
  322.                 text-align: center;
  323.                 border: 1px solid rgba(255, 255, 255, 0.2);
  324.                 box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
  325.                 width: 100%;
  326.                 max-width: 350px;
  327.             }
  328.             .magazine-big-number {
  329.                 font-size: 4em;
  330.                 font-weight: 900;
  331.                 color: white;
  332.                 line-height: 1;
  333.                 margin-bottom: 10px;
  334.                 text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
  335.             }
  336.             .magazine-big-label {
  337.                 font-size: 1.2em;
  338.                 color: white;
  339.                 margin-bottom: 30px;
  340.                 opacity: 0.95;
  341.             }
  342.             .magazine-mini-stats {
  343.                 display: grid;
  344.                 grid-template-columns: 1fr 1fr;
  345.                 gap: 20px;
  346.                 margin-top: 25px;
  347.             }
  348.             .mini-stat {
  349.                 text-align: center;
  350.             }
  351.             .mini-stat-number {
  352.                 font-size: 1.8em;
  353.                 font-weight: 700;
  354.                 color: white;
  355.                 line-height: 1;
  356.             }
  357.             .mini-stat-label {
  358.                 font-size: 0.9em;
  359.                 color: rgba(255, 255, 255, 0.8);
  360.                 margin-top: 5px;
  361.             }
  362.             .magazine-topics {
  363.                 margin-top: 25px;
  364.                 padding-top: 25px;
  365.                 border-top: 1px solid rgba(255, 255, 255, 0.2);
  366.             }
  367.             .topics-title {
  368.                 font-size: 1em;
  369.                 color: white;
  370.                 margin-bottom: 15px;
  371.                 opacity: 0.9;
  372.             }
  373.             .topics-tags {
  374.                 display: flex;
  375.                 flex-wrap: wrap;
  376.                 gap: 8px;
  377.                 justify-content: center;
  378.             }
  379.             .topic-tag {
  380.                 background: rgba(255, 255, 255, 0.2);
  381.                 color: white;
  382.                 padding: 6px 12px;
  383.                 border-radius: 15px;
  384.                 font-size: 0.85em;
  385.                 border: 1px solid rgba(255, 255, 255, 0.1);
  386.             }
  387.             /* Responsive pour la section magazine */
  388.             @media (max-width: 992px) {
  389.                 .magazine-content {
  390.                     grid-template-columns: 1fr;
  391.                     gap: 40px;
  392.                     text-align: center;
  393.                 }
  394.                 .magazine-text h2 {
  395.                     font-size: 2em;
  396.                 }
  397.                 .magazine-stats {
  398.                     max-width: 300px;
  399.                 }
  400.                 .magazine-big-number {
  401.                     font-size: 3.5em;
  402.                 }
  403.             }
  404.             @media (max-width: 768px) {
  405.                 .magazine-section {
  406.                     padding: 50px 0;
  407.                 }
  408.                 .magazine-content {
  409.                     gap: 30px;
  410.                 }
  411.                 .magazine-text {
  412.                     text-align: left;
  413.                 }
  414.                 .magazine-text h2 {
  415.                     font-size: 1.8em;
  416.                     text-align: center;
  417.                     margin-bottom: 15px;
  418.                 }
  419.                 .magazine-text h3 {
  420.                     font-size: 1.1em;
  421.                     text-align: center;
  422.                     margin-bottom: 20px;
  423.                 }
  424.                 .magazine-text p {
  425.                     font-size: 1em;
  426.                     line-height: 1.6;
  427.                     margin-bottom: 15px;
  428.                 }
  429.                 .magazine-features {
  430.                     margin: 20px 0;
  431.                 }
  432.                 .magazine-features li {
  433.                     font-size: 0.95em;
  434.                     margin-bottom: 12px;
  435.                 }
  436.                 .magazine-features li::before {
  437.                     width: 20px;
  438.                     height: 20px;
  439.                     margin-right: 12px;
  440.                     font-size: 0.8em;
  441.                 }
  442.                 .magazine-cta {
  443.                     font-size: 1em;
  444.                     padding: 12px 30px;
  445.                     display: block;
  446.                     text-align: center;
  447.                     max-width: 250px;
  448.                     margin: 20px auto 0;
  449.                 }
  450.                 .magazine-stats {
  451.                     padding: 25px 20px;
  452.                     max-width: 280px;
  453.                     margin: 0 auto;
  454.                 }
  455.                 .magazine-big-number {
  456.                     font-size: 2.8em;
  457.                 }
  458.                 .magazine-big-label {
  459.                     font-size: 1em;
  460.                     margin-bottom: 20px;
  461.                 }
  462.                 .magazine-mini-stats {
  463.                     gap: 15px;
  464.                     margin-top: 20px;
  465.                 }
  466.                 .mini-stat-number {
  467.                     font-size: 1.4em;
  468.                 }
  469.                 .mini-stat-label {
  470.                     font-size: 0.85em;
  471.                 }
  472.                 .magazine-topics {
  473.                     margin-top: 20px;
  474.                     padding-top: 20px;
  475.                 }
  476.                 .topics-title {
  477.                     font-size: 0.9em;
  478.                     margin-bottom: 12px;
  479.                 }
  480.                 .topic-tag {
  481.                     font-size: 0.8em;
  482.                     padding: 5px 10px;
  483.                 }
  484.             }
  485.             @media (max-width: 480px) {
  486.                 .magazine-section {
  487.                     padding: 40px 0;
  488.                 }
  489.                 .container {
  490.                     padding: 0 15px;
  491.                 }
  492.                 .magazine-content {
  493.                     gap: 25px;
  494.                 }
  495.                 .magazine-text h2 {
  496.                     font-size: 1.6em;
  497.                     margin-bottom: 12px;
  498.                 }
  499.                 .magazine-text h3 {
  500.                     font-size: 1em;
  501.                     margin-bottom: 18px;
  502.                 }
  503.                 .magazine-text p {
  504.                     font-size: 0.95em;
  505.                     line-height: 1.5;
  506.                     margin-bottom: 12px;
  507.                 }
  508.                 .magazine-features {
  509.                     margin: 18px 0;
  510.                 }
  511.                 .magazine-features li {
  512.                     font-size: 0.9em;
  513.                     margin-bottom: 10px;
  514.                     align-items: flex-start;
  515.                 }
  516.                 .magazine-features li::before {
  517.                     width: 18px;
  518.                     height: 18px;
  519.                     margin-right: 10px;
  520.                     margin-top: 2px;
  521.                     font-size: 0.7em;
  522.                     flex-shrink: 0;
  523.                 }
  524.                 .magazine-cta {
  525.                     font-size: 0.95em;
  526.                     padding: 12px 25px;
  527.                     max-width: 220px;
  528.                     margin: 18px auto 0;
  529.                 }
  530.                 .magazine-stats {
  531.                     padding: 20px 15px;
  532.                     max-width: 260px;
  533.                 }
  534.                 .magazine-big-number {
  535.                     font-size: 2.2em;
  536.                 }
  537.                 .magazine-big-label {
  538.                     font-size: 0.9em;
  539.                     margin-bottom: 18px;
  540.                 }
  541.                 .magazine-mini-stats {
  542.                     gap: 12px;
  543.                     margin-top: 18px;
  544.                 }
  545.                 .mini-stat-number {
  546.                     font-size: 1.2em;
  547.                 }
  548.                 .mini-stat-label {
  549.                     font-size: 0.8em;
  550.                 }
  551.                 .magazine-topics {
  552.                     margin-top: 18px;
  553.                     padding-top: 18px;
  554.                 }
  555.                 .topics-title {
  556.                     font-size: 0.85em;
  557.                     margin-bottom: 10px;
  558.                 }
  559.                 .topics-tags {
  560.                     gap: 6px;
  561.                 }
  562.                 .topic-tag {
  563.                     font-size: 0.75em;
  564.                     padding: 4px 8px;
  565.                 }
  566.             }
  567.             /* Introduction Section */
  568.             .intro {
  569.                 padding: 80px 0;
  570.                 background: white;
  571.             }
  572.             .section-header {
  573.                 text-align: center;
  574.                 margin-bottom: 60px;
  575.             }
  576.             .section-header h2 {
  577.                 font-size: 2.5em;
  578.                 margin-bottom: 20px;
  579.                 color: var(--text-dark);
  580.                 position: relative;
  581.                 display: inline-block;
  582.             }
  583.             .section-header h2::after {
  584.                 content: '';
  585.                 position: absolute;
  586.                 bottom: -10px;
  587.                 left: 50%;
  588.                 transform: translateX(-50%);
  589.                 width: 60px;
  590.                 height: 4px;
  591.                 background: var(--primary-green);
  592.                 border-radius: 2px;
  593.             }
  594.             .section-header p {
  595.                 color: var(--text-light);
  596.                 font-size: 1.1em;
  597.                 max-width: 600px;
  598.                 margin: 0 auto;
  599.             }
  600.             .intro-content {
  601.                 display: grid;
  602.                 grid-template-columns: 1fr 1fr;
  603.                 gap: 60px;
  604.                 align-items: center;
  605.             }
  606.             .intro-text {
  607.                 font-size: 1.05em;
  608.                 line-height: 1.8;
  609.                 color: var(--text-dark);
  610.             }
  611.             .intro-text p {
  612.                 margin-bottom: 20px;
  613.             }
  614.             .intro-features {
  615.                 display: grid;
  616.                 gap: 20px;
  617.             }
  618.             .feature-item {
  619.                 display: flex;
  620.                 align-items: flex-start;
  621.                 gap: 20px;
  622.                 padding: 20px;
  623.                 background: var(--bg-gray);
  624.                 border-radius: 12px;
  625.                 transition: all 0.3s ease;
  626.             }
  627.             .feature-item:hover {
  628.                 background: white;
  629.                 box-shadow: var(--card-shadow);
  630.                 transform: translateX(5px);
  631.             }
  632.             .feature-icon {
  633.                 width: 50px;
  634.                 height: 50px;
  635.                 background: var(--primary-green);
  636.                 border-radius: 12px;
  637.                 display: flex;
  638.                 align-items: center;
  639.                 justify-content: center;
  640.                 color: white;
  641.                 font-size: 24px;
  642.                 flex-shrink: 0;
  643.             }
  644.             .feature-content h4 {
  645.                 margin-bottom: 5px;
  646.                 color: var(--text-dark);
  647.             }
  648.             .feature-content p {
  649.                 color: var(--text-light);
  650.                 font-size: 0.95em;
  651.                 margin: 0;
  652.             }
  653.             /* Values Grid */
  654.             .values {
  655.                 padding: 80px 0;
  656.                 background: var(--bg-light);
  657.             }
  658.             .values-grid {
  659.                 display: grid;
  660.                 grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  661.                 gap: 30px;
  662.                 margin-top: 50px;
  663.             }
  664.             .value-card {
  665.                 background: white;
  666.                 padding: 35px 25px;
  667.                 border-radius: 15px;
  668.                 text-align: center;
  669.                 box-shadow: var(--card-shadow);
  670.                 transition: all 0.3s ease;
  671.                 position: relative;
  672.                 overflow: hidden;
  673.             }
  674.             .value-card::before {
  675.                 content: '';
  676.                 position: absolute;
  677.                 top: 0;
  678.                 left: 0;
  679.                 right: 0;
  680.                 height: 4px;
  681.                 background: var(--primary-green);
  682.                 transform: scaleX(0);
  683.                 transition: transform 0.3s ease;
  684.             }
  685.             .value-card:hover::before {
  686.                 transform: scaleX(1);
  687.             }
  688.             .value-card:hover {
  689.                 transform: translateY(-5px);
  690.                 box-shadow: var(--hover-shadow);
  691.             }
  692.             .value-icon {
  693.                 width: 70px;
  694.                 height: 70px;
  695.                 margin: 0 auto 20px;
  696.                 background: linear-gradient(135deg, var(--primary-green), var(--primary-light));
  697.                 border-radius: 50%;
  698.                 display: flex;
  699.                 align-items: center;
  700.                 justify-content: center;
  701.                 font-size: 30px;
  702.                 color: white;
  703.             }
  704.             .value-card h3 {
  705.                 margin-bottom: 15px;
  706.                 color: var(--text-dark);
  707.             }
  708.             .value-card p {
  709.                 color: var(--text-light);
  710.                 line-height: 1.6;
  711.             }
  712.             /* Map Section */
  713.             .map-section {
  714.                 padding: 80px 0;
  715.                 background: white;
  716.             }
  717.             .map-container {
  718.                 background: var(--bg-gray);
  719.                 border-radius: 20px;
  720.                 padding: 40px;
  721.                 margin-top: 50px;
  722.                 display: grid;
  723.                 grid-template-columns: 400px 1fr;
  724.                 gap: 40px;
  725.                 align-items: start;
  726.             }
  727.             .map-wrapper {
  728.                 width: 100%;
  729.             }
  730.             .associations-sidebar {
  731.                 background: white;
  732.                 border-radius: 15px;
  733.                 padding: 25px;
  734.                 box-shadow: var(--card-shadow);
  735.                 max-height: 500px;
  736.                 overflow-y: auto;
  737.                 scroll-behavior: smooth;
  738.             }
  739.             /* Style de la scrollbar pour webkit browsers */
  740.             .associations-sidebar::-webkit-scrollbar {
  741.                 width: 6px;
  742.             }
  743.             .associations-sidebar::-webkit-scrollbar-track {
  744.                 background: #f1f1f1;
  745.                 border-radius: 3px;
  746.             }
  747.             .associations-sidebar::-webkit-scrollbar-thumb {
  748.                 background: var(--primary-green);
  749.                 border-radius: 3px;
  750.             }
  751.             .associations-sidebar::-webkit-scrollbar-thumb:hover {
  752.                 background: var(--primary-dark);
  753.             }
  754.             .associations-sidebar h3 {
  755.                 color: var(--text-dark);
  756.                 font-size: 1.3em;
  757.                 margin-bottom: 10px;
  758.                 border-bottom: 2px solid var(--primary-green);
  759.                 padding-bottom: 10px;
  760.             }
  761.             .sidebar-subtitle {
  762.                 color: var(--text-light);
  763.                 font-size: 0.9em;
  764.                 margin-bottom: 20px;
  765.                 font-style: italic;
  766.             }
  767.             /* Responsive pour écrans plus petits */
  768.             @media (max-width: 992px) {
  769.                 .map-container {
  770.                     grid-template-columns: 1fr;
  771.                     gap: 20px;
  772.                     padding: 20px;
  773.                 }
  774.                 
  775.                 .associations-sidebar {
  776.                     max-height: 350px;
  777.                     order: 1;
  778.                     padding: 20px;
  779.                 }
  780.                 
  781.                 .map-wrapper {
  782.                     order: 2;
  783.                 }
  784.                 
  785.                 .map-wrapper #interactive-map {
  786.                     height: 300px;
  787.                 }
  788.                 
  789.                 .associations-sidebar h3 {
  790.                     font-size: 1.1em;
  791.                     margin-bottom: 8px;
  792.                 }
  793.                 
  794.                 .sidebar-subtitle {
  795.                     font-size: 0.8em;
  796.                     margin-bottom: 15px;
  797.                 }
  798.             }
  799.             
  800.             @media (max-width: 768px) {
  801.                 .map-container {
  802.                     padding: 15px;
  803.                     gap: 15px;
  804.                 }
  805.                 
  806.                 .associations-sidebar {
  807.                     max-height: 300px;
  808.                     padding: 15px;
  809.                 }
  810.                 
  811.                 .association-card {
  812.                     padding: 10px;
  813.                 }
  814.                 
  815.                 .association-name {
  816.                     font-size: 0.95em;
  817.                 }
  818.                 
  819.                 .department-badge {
  820.                     font-size: 0.75em;
  821.                     padding: 2px 6px;
  822.                 }
  823.                 
  824.                 .contact-item {
  825.                     font-size: 0.85em;
  826.                 }
  827.                 
  828.                 .accessibility-badge {
  829.                     font-size: 0.7em;
  830.                     padding: 2px 6px;
  831.                 }
  832.                 
  833.                 .map-wrapper #interactive-map {
  834.                     height: 250px;
  835.                 }
  836.             }
  837.             
  838.             @media (max-width: 480px) {
  839.                 .map-container {
  840.                     padding: 10px;
  841.                     gap: 10px;
  842.                 }
  843.                 
  844.                 .associations-sidebar {
  845.                     max-height: 300px;
  846.                     padding: 12px;
  847.                 }
  848.                 
  849.                 .associations-sidebar h3 {
  850.                     font-size: 1em;
  851.                 }
  852.                 
  853.                 .sidebar-subtitle {
  854.                     font-size: 0.75em;
  855.                     margin-bottom: 10px;
  856.                 }
  857.                 
  858.                 .association-card {
  859.                     padding: 8px;
  860.                     margin-bottom: 8px;
  861.                 }
  862.                 
  863.                 .association-header {
  864.                     margin-bottom: 6px;
  865.                 }
  866.                 
  867.                 .association-name {
  868.                     font-size: 0.9em;
  869.                 }
  870.                 
  871.                 .association-description {
  872.                     display: none; /* Masquer la description sur très petits écrans */
  873.                 }
  874.                 
  875.                 .map-wrapper #interactive-map {
  876.                     height: 200px;
  877.                 }
  878.             }
  879.             .map-placeholder {
  880.                 height: 500px;
  881.                 background: linear-gradient(135deg, #f0f0f0 0%, #e0e0e0 100%);
  882.                 border-radius: 15px;
  883.                 display: flex;
  884.                 align-items: center;
  885.                 justify-content: center;
  886.                 position: relative;
  887.             }
  888.             .map-content {
  889.                 text-align: center;
  890.                 z-index: 1;
  891.             }
  892.             .map-content h3 {
  893.                 color: var(--text-dark);
  894.                 margin-bottom: 20px;
  895.                 font-size: 1.5em;
  896.             }
  897.             .map-content p {
  898.                 color: var(--text-light);
  899.                 margin-bottom: 30px;
  900.             }
  901.             /* Audio Test Section */
  902.             .audio-test-section {
  903.                 padding: 80px 0;
  904.                 background: var(--bg-light);
  905.                 position: relative;
  906.                 overflow: hidden;
  907.             }
  908.             .audio-test-section::before {
  909.                 content: '';
  910.                 position: absolute;
  911.                 top: -30%;
  912.                 left: -20%;
  913.                 width: 500px;
  914.                 height: 500px;
  915.                 background: linear-gradient(135deg, rgba(3, 134, 106, 0.05) 0%, rgba(4, 168, 130, 0.08) 100%);
  916.                 border-radius: 50%;
  917.                 z-index: 1;
  918.             }
  919.             .audio-test-content {
  920.                 display: grid;
  921.                 grid-template-columns: 1fr 1fr;
  922.                 gap: 60px;
  923.                 align-items: center;
  924.                 position: relative;
  925.                 z-index: 2;
  926.             }
  927.             .test-text h2 {
  928.                 font-size: 2.5em;
  929.                 color: var(--text-dark);
  930.                 margin-bottom: 20px;
  931.                 font-weight: 700;
  932.             }
  933.             .test-text h3 {
  934.                 font-size: 1.3em;
  935.                 color: var(--primary-green);
  936.                 margin-bottom: 25px;
  937.                 font-weight: 600;
  938.             }
  939.             .test-text p {
  940.                 font-size: 1.1em;
  941.                 line-height: 1.7;
  942.                 color: var(--text-light);
  943.                 margin-bottom: 20px;
  944.             }
  945.             .test-features {
  946.                 list-style: none;
  947.                 margin: 30px 0;
  948.             }
  949.             .test-features li {
  950.                 display: flex;
  951.                 align-items: center;
  952.                 margin-bottom: 15px;
  953.                 font-size: 1.05em;
  954.                 color: var(--text-dark);
  955.             }
  956.             .test-features li::before {
  957.                 content: '🎧';
  958.                 margin-right: 15px;
  959.                 font-size: 1.2em;
  960.             }
  961.             .test-cta {
  962.                 background: var(--primary-green);
  963.                 color: white;
  964.                 padding: 18px 45px;
  965.                 border-radius: 35px;
  966.                 text-decoration: none;
  967.                 font-weight: 600;
  968.                 font-size: 1.2em;
  969.                 display: inline-block;
  970.                 transition: all 0.3s ease;
  971.                 margin-top: 25px;
  972.                 box-shadow: 0 6px 20px rgba(3, 134, 106, 0.3);
  973.             }
  974.             .test-cta:hover {
  975.                 background: var(--primary-dark);
  976.                 transform: translateY(-3px);
  977.                 box-shadow: 0 10px 30px rgba(3, 134, 106, 0.4);
  978.                 color: white;
  979.                 text-decoration: none;
  980.             }
  981.             .test-visual {
  982.                 display: flex;
  983.                 justify-content: center;
  984.                 align-items: center;
  985.                 position: relative;
  986.             }
  987.             .test-mockup {
  988.                 background: white;
  989.                 border-radius: 20px;
  990.                 padding: 30px;
  991.                 box-shadow: 0 20px 60px rgba(0, 0, 0, 0.1);
  992.                 width: 100%;
  993.                 max-width: 400px;
  994.                 position: relative;
  995.             }
  996.             .test-mockup::before {
  997.                 content: '';
  998.                 position: absolute;
  999.                 top: 0;
  1000.                 left: 0;
  1001.                 right: 0;
  1002.                 height: 60px;
  1003.                 background: var(--primary-green);
  1004.                 border-radius: 20px 20px 0 0;
  1005.             }
  1006.             .test-header {
  1007.                 color: white;
  1008.                 text-align: center;
  1009.                 font-size: 1.4em;
  1010.                 font-weight: 600;
  1011.                 position: absolute;
  1012.                 top: 15px;
  1013.                 left: 30px;
  1014.                 right: 30px;
  1015.                 z-index: 3;
  1016.             }
  1017.             .test-content {
  1018.                 margin-top: 40px;
  1019.                 text-align: center;
  1020.             }
  1021.             .frequency-bars {
  1022.                 display: flex;
  1023.                 justify-content: space-between;
  1024.                 align-items: end;
  1025.                 height: 120px;
  1026.                 margin: 30px 0;
  1027.                 padding: 0 20px;
  1028.             }
  1029.             .frequency-bar {
  1030.                 background: linear-gradient(to top, var(--primary-green), var(--primary-light));
  1031.                 border-radius: 4px 4px 0 0;
  1032.                 width: 25px;
  1033.                 animation: pulse 2s ease-in-out infinite alternate;
  1034.             }
  1035.             .frequency-bar:nth-child(1) { height: 60%; animation-delay: 0s; }
  1036.             .frequency-bar:nth-child(2) { height: 80%; animation-delay: 0.2s; }
  1037.             .frequency-bar:nth-child(3) { height: 100%; animation-delay: 0.4s; }
  1038.             .frequency-bar:nth-child(4) { height: 70%; animation-delay: 0.6s; }
  1039.             .frequency-bar:nth-child(5) { height: 90%; animation-delay: 0.8s; }
  1040.             .frequency-bar:nth-child(6) { height: 65%; animation-delay: 1s; }
  1041.             .frequency-bar:nth-child(7) { height: 85%; animation-delay: 1.2s; }
  1042.             @keyframes pulse {
  1043.                 0% { opacity: 0.6; transform: scaleY(0.8); }
  1044.                 100% { opacity: 1; transform: scaleY(1); }
  1045.             }
  1046.             .test-info {
  1047.                 color: var(--text-light);
  1048.                 font-size: 0.9em;
  1049.                 margin-top: 20px;
  1050.             }
  1051.             /* Responsive pour la section test auditif */
  1052.             @media (max-width: 992px) {
  1053.                 .audio-test-content {
  1054.                     grid-template-columns: 1fr;
  1055.                     gap: 40px;
  1056.                     text-align: center;
  1057.                 }
  1058.                 .test-text h2 {
  1059.                     font-size: 2em;
  1060.                 }
  1061.                 .test-mockup {
  1062.                     max-width: 350px;
  1063.                 }
  1064.             }
  1065.             @media (max-width: 768px) {
  1066.                 .audio-test-section {
  1067.                     padding: 60px 0;
  1068.                 }
  1069.                 .test-text h2 {
  1070.                     font-size: 1.8em;
  1071.                 }
  1072.                 .test-text h3 {
  1073.                     font-size: 1.1em;
  1074.                 }
  1075.                 .test-text p {
  1076.                     font-size: 1em;
  1077.                 }
  1078.                 .test-cta {
  1079.                     padding: 15px 35px;
  1080.                     font-size: 1.1em;
  1081.                 }
  1082.                 .test-mockup {
  1083.                     padding: 25px;
  1084.                     max-width: 320px;
  1085.                 }
  1086.                 .frequency-bars {
  1087.                     height: 100px;
  1088.                 }
  1089.             }
  1090.             @media (max-width: 480px) {
  1091.                 .test-text h2 {
  1092.                     font-size: 1.6em;
  1093.                 }
  1094.                 .test-cta {
  1095.                     padding: 14px 30px;
  1096.                     font-size: 1em;
  1097.                 }
  1098.                 .test-mockup {
  1099.                     padding: 20px;
  1100.                     max-width: 280px;
  1101.                 }
  1102.                 .test-header {
  1103.                     font-size: 1.2em;
  1104.                 }
  1105.             }
  1106.             /* Appointment Section */
  1107.             .appointment-section {
  1108.                 padding: 80px 0;
  1109.                 background: linear-gradient(135deg, var(--primary-green) 0%, var(--primary-dark) 100%);
  1110.                 color: white;
  1111.                 position: relative;
  1112.                 overflow: hidden;
  1113.             }
  1114.             .appointment-section::before {
  1115.                 content: '';
  1116.                 position: absolute;
  1117.                 top: -20%;
  1118.                 right: -15%;
  1119.                 width: 400px;
  1120.                 height: 400px;
  1121.                 background: rgba(255, 255, 255, 0.03);
  1122.                 border-radius: 50%;
  1123.                 z-index: 1;
  1124.             }
  1125.             .appointment-content {
  1126.                 text-align: center;
  1127.                 position: relative;
  1128.                 z-index: 2;
  1129.                 max-width: 800px;
  1130.                 margin: 0 auto;
  1131.             }
  1132.             .appointment-content h2 {
  1133.                 font-size: 2.5em;
  1134.                 margin-bottom: 20px;
  1135.                 font-weight: 700;
  1136.             }
  1137.             .appointment-content h3 {
  1138.                 font-size: 1.3em;
  1139.                 margin-bottom: 30px;
  1140.                 opacity: 0.9;
  1141.                 color: #E8F5F0;
  1142.             }
  1143.             .appointment-content p {
  1144.                 font-size: 1.1em;
  1145.                 line-height: 1.7;
  1146.                 margin-bottom: 25px;
  1147.                 opacity: 0.95;
  1148.             }
  1149.             .appointment-steps {
  1150.                 display: grid;
  1151.                 grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  1152.                 gap: 30px;
  1153.                 margin: 40px 0;
  1154.             }
  1155.             .appointment-step {
  1156.                 text-align: center;
  1157.                 padding: 20px;
  1158.             }
  1159.             .step-icon {
  1160.                 background: rgba(255, 255, 255, 0.15);
  1161.                 width: 80px;
  1162.                 height: 80px;
  1163.                 border-radius: 50%;
  1164.                 display: flex;
  1165.                 align-items: center;
  1166.                 justify-content: center;
  1167.                 margin: 0 auto 15px;
  1168.                 font-size: 2em;
  1169.                 border: 2px solid rgba(255, 255, 255, 0.2);
  1170.             }
  1171.             .step-title {
  1172.                 font-size: 1.1em;
  1173.                 font-weight: 600;
  1174.                 margin-bottom: 10px;
  1175.             }
  1176.             .step-description {
  1177.                 font-size: 0.9em;
  1178.                 opacity: 0.9;
  1179.                 line-height: 1.5;
  1180.             }
  1181.             .appointment-cta {
  1182.                 background: white;
  1183.                 color: var(--primary-green);
  1184.                 padding: 20px 50px;
  1185.                 border-radius: 35px;
  1186.                 text-decoration: none;
  1187.                 font-weight: 700;
  1188.                 font-size: 1.3em;
  1189.                 display: inline-block;
  1190.                 transition: all 0.3s ease;
  1191.                 margin-top: 30px;
  1192.                 box-shadow: 0 8px 25px rgba(255, 255, 255, 0.2);
  1193.                 cursor: pointer;
  1194.                 border: none;
  1195.             }
  1196.             .appointment-cta:hover {
  1197.                 background: var(--bg-light);
  1198.                 transform: translateY(-3px);
  1199.                 box-shadow: 0 12px 35px rgba(255, 255, 255, 0.3);
  1200.                 color: var(--primary-dark);
  1201.                 text-decoration: none;
  1202.             }
  1203.             .appointment-cta:disabled {
  1204.                 opacity: 0.7;
  1205.                 cursor: not-allowed;
  1206.             }
  1207.             .location-info {
  1208.                 margin-top: 20px;
  1209.                 font-size: 0.9em;
  1210.                 opacity: 0.8;
  1211.             }
  1212.             .fallback-link {
  1213.                 color: #E8F5F0;
  1214.                 text-decoration: underline;
  1215.                 margin-left: 10px;
  1216.             }
  1217.             .fallback-link:hover {
  1218.                 color: white;
  1219.                 text-decoration: none;
  1220.             }
  1221.             /* Responsive pour la section RDV */
  1222.             @media (max-width: 992px) {
  1223.                 .appointment-content h2 {
  1224.                     font-size: 2em;
  1225.                 }
  1226.                 .appointment-steps {
  1227.                     grid-template-columns: 1fr;
  1228.                     gap: 25px;
  1229.                 }
  1230.                 .step-icon {
  1231.                     width: 70px;
  1232.                     height: 70px;
  1233.                     font-size: 1.8em;
  1234.                 }
  1235.             }
  1236.             @media (max-width: 768px) {
  1237.                 .appointment-section {
  1238.                     padding: 60px 0;
  1239.                 }
  1240.                 .appointment-content h2 {
  1241.                     font-size: 1.8em;
  1242.                 }
  1243.                 .appointment-content h3 {
  1244.                     font-size: 1.1em;
  1245.                 }
  1246.                 .appointment-content p {
  1247.                     font-size: 1em;
  1248.                 }
  1249.                 .appointment-cta {
  1250.                     padding: 16px 40px;
  1251.                     font-size: 1.1em;
  1252.                 }
  1253.                 .step-icon {
  1254.                     width: 60px;
  1255.                     height: 60px;
  1256.                     font-size: 1.5em;
  1257.                 }
  1258.                 .step-title {
  1259.                     font-size: 1em;
  1260.                 }
  1261.                 .step-description {
  1262.                     font-size: 0.85em;
  1263.                 }
  1264.             }
  1265.             @media (max-width: 480px) {
  1266.                 .appointment-content h2 {
  1267.                     font-size: 1.6em;
  1268.                 }
  1269.                 .appointment-cta {
  1270.                     padding: 15px 35px;
  1271.                     font-size: 1em;
  1272.                 }
  1273.                 .appointment-steps {
  1274.                     gap: 20px;
  1275.                 }
  1276.             }
  1277.             /* Resources Section */
  1278.             .resources {
  1279.                 padding: 80px 0;
  1280.                 background: var(--bg-light);
  1281.             }
  1282.             .resources-grid {
  1283.                 display: grid;
  1284.                 grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  1285.                 gap: 30px;
  1286.                 margin-top: 50px;
  1287.             }
  1288.             .resource-card {
  1289.                 background: white;
  1290.                 border-radius: 15px;
  1291.                 overflow: hidden;
  1292.                 box-shadow: var(--card-shadow);
  1293.                 transition: all 0.3s ease;
  1294.                 cursor: pointer;
  1295.             }
  1296.             .resource-card:hover {
  1297.                 transform: translateY(-5px);
  1298.                 box-shadow: var(--hover-shadow);
  1299.             }
  1300.             .resource-header {
  1301.                 background: var(--primary-green);
  1302.                 padding: 20px 25px;
  1303.                 color: white;
  1304.             }
  1305.             .resource-header h3 {
  1306.                 display: flex;
  1307.                 align-items: center;
  1308.                 gap: 10px;
  1309.                 font-size: 1.1em;
  1310.             }
  1311.             .resource-content {
  1312.                 padding: 25px;
  1313.             }
  1314.             .resource-content p {
  1315.                 color: var(--text-light);
  1316.                 margin-bottom: 15px;
  1317.                 line-height: 1.6;
  1318.             }
  1319.             .resource-link {
  1320.                 color: var(--primary-green);
  1321.                 text-decoration: none;
  1322.                 font-weight: 600;
  1323.                 display: inline-flex;
  1324.                 align-items: center;
  1325.                 gap: 5px;
  1326.                 transition: gap 0.3s ease;
  1327.             }
  1328.             .resource-link:hover {
  1329.                 gap: 10px;
  1330.             }
  1331.             /* CTA Section */
  1332.             .cta-section {
  1333.                 padding: 100px 0;
  1334.                 background: linear-gradient(135deg, var(--primary-green) 0%, var(--primary-light) 100%);
  1335.                 position: relative;
  1336.                 overflow: hidden;
  1337.             }
  1338.             .cta-content {
  1339.                 text-align: center;
  1340.                 color: white;
  1341.                 position: relative;
  1342.                 z-index: 1;
  1343.             }
  1344.             .cta-content h2 {
  1345.                 font-size: 2.5em;
  1346.                 margin-bottom: 20px;
  1347.             }
  1348.             .cta-content p {
  1349.                 font-size: 1.1em;
  1350.                 margin-bottom: 50px;
  1351.                 opacity: 0.95;
  1352.             }
  1353.             .cta-cards {
  1354.                 display: grid;
  1355.                 grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  1356.                 gap: 30px;
  1357.                 max-width: 1000px;
  1358.                 margin: 0 auto;
  1359.             }
  1360.             .cta-card {
  1361.                 background: rgba(255, 255, 255, 0.1);
  1362.                 backdrop-filter: blur(10px);
  1363.                 padding: 35px;
  1364.                 border-radius: 20px;
  1365.                 border: 1px solid rgba(255, 255, 255, 0.2);
  1366.                 transition: all 0.3s ease;
  1367.                 display: flex;
  1368.                 flex-direction: column;
  1369.                 justify-content: space-between;
  1370.                 min-height: 280px;
  1371.             }
  1372.             .cta-card:hover {
  1373.                 background: rgba(255, 255, 255, 0.15);
  1374.                 transform: translateY(-5px);
  1375.             }
  1376.             .cta-card h3 {
  1377.                 font-size: 1.5em;
  1378.                 margin-bottom: 15px;
  1379.             }
  1380.             .cta-card .price {
  1381.                 font-size: 2em;
  1382.                 font-weight: 700;
  1383.                 margin: 20px 0;
  1384.             }
  1385.             .cta-card .subtitle {
  1386.                 font-size: 0.9em;
  1387.                 opacity: 0.9;
  1388.                 margin-bottom: 25px;
  1389.                 flex-grow: 1;
  1390.                 display: flex;
  1391.                 align-items: center;
  1392.                 justify-content: center;
  1393.             }
  1394.             .btn-white {
  1395.                 background: white;
  1396.                 color: var(--primary-green);
  1397.                 padding: 12px 30px;
  1398.                 border-radius: 25px;
  1399.                 text-decoration: none;
  1400.                 display: inline-block;
  1401.                 font-weight: 600;
  1402.                 transition: all 0.3s ease;
  1403.                 margin-top: auto;
  1404.                 text-align: center;
  1405.             }
  1406.             .btn-white:hover {
  1407.                 transform: translateY(-2px);
  1408.                 box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
  1409.                 color: var(--primary-green);
  1410.             }
  1411.             /* Advantages Section */
  1412.             .advantages {
  1413.                 padding: 80px 0;
  1414.                 background: white;
  1415.             }
  1416.             .advantages-grid {
  1417.                 display: grid;
  1418.                 grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  1419.                 gap: 40px;
  1420.                 margin-top: 50px;
  1421.             }
  1422.             .advantage-card {
  1423.                 display: flex;
  1424.                 gap: 25px;
  1425.                 align-items: flex-start;
  1426.                 height: 100%;
  1427.             }
  1428.             .advantage-icon {
  1429.                 width: 80px;
  1430.                 height: 80px;
  1431.                 background: var(--bg-gray);
  1432.                 border-radius: 15px;
  1433.                 display: flex;
  1434.                 align-items: center;
  1435.                 justify-content: center;
  1436.                 flex-shrink: 0;
  1437.                 transition: all 0.3s ease;
  1438.                 font-size: 2.5em;
  1439.             }
  1440.             .advantage-card:hover .advantage-icon {
  1441.                 background: var(--primary-green);
  1442.                 color: white;
  1443.             }
  1444.             .advantage-icon img {
  1445.                 width: 35px;
  1446.                 height: 35px;
  1447.             }
  1448.             .advantage-content {
  1449.                 display: flex;
  1450.                 flex-direction: column;
  1451.                 height: 100%;
  1452.             }
  1453.             .advantage-content h3 {
  1454.                 margin-bottom: 10px;
  1455.                 color: var(--text-dark);
  1456.                 font-size: 1.2em;
  1457.             }
  1458.             .advantage-content p {
  1459.                 color: var(--text-light);
  1460.                 line-height: 1.6;
  1461.                 margin-bottom: 15px;
  1462.                 flex-grow: 1;
  1463.             }
  1464.             .advantage-btn {
  1465.                 display: inline-block;
  1466.                 padding: 8px 20px;
  1467.                 background: var(--primary-green);
  1468.                 color: white;
  1469.                 text-decoration: none;
  1470.                 border-radius: 20px;
  1471.                 font-size: 0.9em;
  1472.                 font-weight: 500;
  1473.                 transition: all 0.3s ease;
  1474.                 margin-top: auto;
  1475.                 align-self: flex-start;
  1476.             }
  1477.             .advantage-btn:hover {
  1478.                 background: var(--primary-dark);
  1479.                 transform: translateY(-1px);
  1480.                 color: white;
  1481.                 text-decoration: none;
  1482.             }
  1483.             .advantage-btn.btn-secondary {
  1484.                 background: var(--secondary-blue);
  1485.             }
  1486.             .advantage-btn.btn-secondary:hover {
  1487.                 background: #0052a3;
  1488.             }
  1489.             /* Map and associations styles */
  1490.             .associations-grid {
  1491.                 display: grid;
  1492.                 grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
  1493.                 gap: 20px;
  1494.                 margin-top: 20px;
  1495.             }
  1496.             /* Styles spécifiques pour la sidebar */
  1497.             .associations-sidebar .associations-grid {
  1498.                 grid-template-columns: 1fr;
  1499.                 gap: 15px;
  1500.                 margin-top: 0;
  1501.             }
  1502.             /* Cartes plus compactes dans la sidebar */
  1503.             .associations-sidebar .association-card {
  1504.                 padding: 15px;
  1505.                 border-radius: 8px;
  1506.                 box-shadow: 0 1px 5px rgba(0, 0, 0, 0.05);
  1507.             }
  1508.             .association-description {
  1509.                 font-size: 0.9em;
  1510.                 line-height: 1.4;
  1511.                 margin-bottom: 10px;
  1512.                 color: var(--text-light);
  1513.                 display: -webkit-box;
  1514.                 -webkit-line-clamp: 2;
  1515.                 -webkit-box-orient: vertical;
  1516.                 overflow: hidden;
  1517.             }
  1518.             .association-card {
  1519.                 background: white;
  1520.                 border-radius: 12px;
  1521.                 padding: 20px;
  1522.                 box-shadow: var(--card-shadow);
  1523.                 border-left: 4px solid var(--primary-green);
  1524.                 transition: all 0.3s ease;
  1525.             }
  1526.             /* Cartes plus compactes dans la sidebar */
  1527.             .associations-sidebar .association-card {
  1528.                 padding: 15px;
  1529.                 border-radius: 8px;
  1530.                 box-shadow: 0 1px 5px rgba(0, 0, 0, 0.05);
  1531.             }
  1532.             .association-card:hover {
  1533.                 transform: translateY(-2px);
  1534.                 box-shadow: var(--hover-shadow);
  1535.             }
  1536.             .association-card.active {
  1537.                 border-left-color: var(--accent-orange);
  1538.                 background: linear-gradient(135deg, #fff9f6 0%, #ffffff 100%);
  1539.                 box-shadow: 0 4px 20px rgba(255, 107, 53, 0.15);
  1540.                 transform: translateY(-1px);
  1541.                 border: 1px solid rgba(255, 107, 53, 0.2);
  1542.             }
  1543.             .association-card.active .association-name {
  1544.                 color: var(--accent-orange);
  1545.             }
  1546.             .association-card {
  1547.                 cursor: pointer;
  1548.                 transition: all 0.3s ease;
  1549.                 -webkit-tap-highlight-color: transparent;
  1550.                 touch-action: manipulation;
  1551.             }
  1552.             .association-header {
  1553.                 display: flex;
  1554.                 justify-content: space-between;
  1555.                 align-items: flex-start;
  1556.                 margin-bottom: 10px;
  1557.             }
  1558.             .association-name {
  1559.                 font-weight: 700;
  1560.                 color: var(--text-dark);
  1561.                 font-size: 1.1em;
  1562.                 margin: 0;
  1563.             }
  1564.             .department-badge {
  1565.                 background: var(--primary-green);
  1566.                 color: white;
  1567.                 padding: 4px 8px;
  1568.                 border-radius: 12px;
  1569.                 font-size: 0.8em;
  1570.                 font-weight: 600;
  1571.             }
  1572.             .association-description {
  1573.                 color: var(--text-light);
  1574.                 font-size: 0.95em;
  1575.                 line-height: 1.5;
  1576.                 margin: 10px 0;
  1577.                 display: -webkit-box;
  1578.                 -webkit-line-clamp: 3;
  1579.                 -webkit-box-orient: vertical;
  1580.                 overflow: hidden;
  1581.             }
  1582.             .association-contacts {
  1583.                 display: flex;
  1584.                 flex-wrap: wrap;
  1585.                 gap: 10px;
  1586.                 margin: 15px 0;
  1587.             }
  1588.             .contact-item {
  1589.                 display: flex;
  1590.                 align-items: center;
  1591.                 gap: 5px;
  1592.                 font-size: 0.9em;
  1593.                 color: var(--text-light);
  1594.             }
  1595.             .contact-item a {
  1596.                 color: var(--primary-green);
  1597.                 text-decoration: none;
  1598.             }
  1599.             .contact-item a:hover {
  1600.                 text-decoration: underline;
  1601.             }
  1602.             .accessibility-types {
  1603.                 margin-top: 10px;
  1604.             }
  1605.             .accessibility-badge {
  1606.                 display: inline-block;
  1607.                 background: var(--bg-gray);
  1608.                 color: var(--text-dark);
  1609.                 padding: 3px 8px;
  1610.                 border-radius: 8px;
  1611.                 font-size: 0.8em;
  1612.                 margin: 2px 4px 2px 0;
  1613.             }
  1614.             .map-controls {
  1615.                 display: flex;
  1616.                 justify-content: center;
  1617.                 gap: 10px;
  1618.                 margin-bottom: 20px;
  1619.             }
  1620.             .filter-btn {
  1621.                 padding: 8px 16px;
  1622.                 border: 2px solid var(--primary-green);
  1623.                 background: transparent;
  1624.                 color: var(--primary-green);
  1625.                 border-radius: 20px;
  1626.                 cursor: pointer;
  1627.                 transition: all 0.3s ease;
  1628.                 font-size: 0.9em;
  1629.             }
  1630.             .filter-btn.active,
  1631.             .filter-btn:hover {
  1632.                 background: var(--primary-green);
  1633.                 color: white;
  1634.             }
  1635.             /* Footer */
  1636.             footer {
  1637.                 background: var(--text-dark);
  1638.                 color: white;
  1639.                 padding: 60px 0 30px;
  1640.                 font-family: 'Helvetica Neue', Arial, sans-serif;
  1641.             }
  1642.             .home_footer a {
  1643.                 font-family: 'Helvetica Neue', Arial, sans-serif;
  1644.             }
  1645.             .footer-content {
  1646.                 display: grid;
  1647.                 grid-template-columns: 2fr 1fr 1fr 1fr;
  1648.                 gap: 40px;
  1649.                 margin-bottom: 40px;
  1650.             }
  1651.             .footer-section h3 {
  1652.                 margin-bottom: 20px;
  1653.                 color: white;
  1654.             }
  1655.             .footer-section p {
  1656.                 line-height: 1.8;
  1657.                 opacity: 0.9;
  1658.             }
  1659.             .footer-links {
  1660.                 list-style: none;
  1661.             }
  1662.             .footer-links li {
  1663.                 margin-bottom: 10px;
  1664.             }
  1665.             .footer-links a {
  1666.                 color: white;
  1667.                 text-decoration: none;
  1668.                 opacity: 0.8;
  1669.                 transition: opacity 0.3s ease;
  1670.             }
  1671.             .footer-links a:hover {
  1672.                 opacity: 1;
  1673.             }
  1674.             .footer-bottom {
  1675.                 text-align: center;
  1676.                 padding-top: 30px;
  1677.                 border-top: 1px solid rgba(255, 255, 255, 0.1);
  1678.                 opacity: 0.8;
  1679.             }
  1680.             .market-btn .market-button-title {
  1681.                 display: block;
  1682.                 color: #222;
  1683.                 font-size: 1rem;
  1684.                 font-weight: 400;
  1685.             }
  1686.             .li_button .btn {
  1687.                 cursor: pointer;
  1688.                 background: white;
  1689.                 font-family: sans-serif;
  1690.             }
  1691.             /* Responsive */
  1692.             @media(max-width: 768px) {
  1693.                 .nav-links {
  1694.                     display: none;
  1695.                 }
  1696.                 .hero h1 {
  1697.                     font-size: 2em;
  1698.                 }
  1699.                 .intro-content,
  1700.                 .footer-content {
  1701.                     grid-template-columns: 1fr;
  1702.                 }
  1703.                 .resources-grid,
  1704.                 .advantages-grid {
  1705.                     grid-template-columns: 1fr;
  1706.                 }
  1707.                 .cta-buttons {
  1708.                     flex-direction: column;
  1709.                     align-items: center;
  1710.                 }
  1711.                 .btn {
  1712.                     width: 100%;
  1713.                     max-width: 300px;
  1714.                 }
  1715.             }
  1716.         </style>
  1717.     </head>
  1718.     <body>
  1719.         <!-- Header Navigation -->
  1720.         <header class="header-nav">
  1721.             <div class="nav-container">
  1722.                 <div class="logo-area">
  1723.                     <a href="/"><img class="logo" src="/assets/img/header/logo.png" alt="My Audio"></a>
  1724.                 </div>
  1725.                 <nav class="nav-links">
  1726.                     <a href="#intro">Le partenariat</a>
  1727.                     <a href="#map">Associations</a>
  1728.                     <a href="#resources">Ressources</a>
  1729.                     <a href="#support">Soutenir</a>
  1730.                     <a href="https://www.surdifrance.org/" target="_blank" class="btn-nav">Site SurdiFrance</a>
  1731.                 </nav>
  1732.             </div>
  1733.         </header>
  1734.         <!-- Hero Section -->
  1735.         <section class="hero">
  1736.             <div class="container">
  1737.                 <div class="hero-content">
  1738.                     <div class="partnership-badge">
  1739.                         <img src="/assets/img/header/logo.png" alt="MyAudio" class="partnership-logo">
  1740.                         <span class="partnership-connector">×</span>
  1741.                         <img src="/assets/img/surdifrance-logo.png" alt="SurdiFrance" class="partnership-logo">
  1742.                     </div>
  1743.                     <h1>MyAudio s'engage avec SurdiFrance</h1>
  1744.                     <p class="hero-subtitle">
  1745.                         Ensemble pour améliorer l'orientation, l'information et l'accompagnement 
  1746.                                             des personnes devenues sourdes et malentendantes partout en France
  1747.                     </p>
  1748.                     <div class="cta-buttons">
  1749.                         <a href="#map" class="btn btn-primary">Trouver une association</a>
  1750.                         <a href="https://www.surdifrance.org/" target="_blank" class="btn btn-secondary">Découvrir SurdiFrance</a>
  1751.                     </div>
  1752.                 </div>
  1753.             </div>
  1754.         </section>
  1755.         <!-- Stats Section -->
  1756.         <section class="stats-section">
  1757.             <div class="container">
  1758.                 <div class="stats-grid">
  1759.                     <div class="stat-card">
  1760.                         <div class="stat-number">6M</div>
  1761.                         <div class="stat-label">Personnes malentendantes en France</div>
  1762.                     </div>
  1763.                     <div class="stat-card">
  1764.                         <div class="stat-number">40+</div>
  1765.                         <div class="stat-label">Associations membres</div>
  1766.                     </div>
  1767.                     <div class="stat-card">
  1768.                         <div class="stat-number">25</div>
  1769.                         <div class="stat-label">Années d'expertise</div>
  1770.                     </div>
  1771.                     <div class="stat-card">
  1772.                         <div class="stat-number">100%</div>
  1773.                         <div class="stat-label">Indépendant</div>
  1774.                     </div>
  1775.                 </div>
  1776.             </div>
  1777.         </section>
  1778.         <!-- Magazine Section -->
  1779.         <section class="magazine-section">
  1780.             <div class="container">
  1781.                 <div class="magazine-content">
  1782.                     <div class="magazine-text">
  1783.                         <h2>📚 Découvrez le magazine</h2>
  1784.                         <h3>6 millions de malentendants</h3>
  1785.                         <p>
  1786.                             La revue de référence écrite par les malentendants pour les malentendants. 
  1787.                             Depuis 25 ans, elle accompagne les personnes concernées par la surdité acquise 
  1788.                             avec des témoignages, des conseils pratiques et l'actualité du secteur.
  1789.                         </p>
  1790.                         <ul class="magazine-features">
  1791.                             <li>4 numéros par an, 48 pages chacun</li>
  1792.                             <li>Témoignages et retours d'expérience</li>
  1793.                             <li>Actualités scientifiques et techniques</li>
  1794.                             <li>Conseils pratiques du quotidien</li>
  1795.                             <li>Dossiers thématiques approfondis</li>
  1796.                         </ul>
  1797.                         <p>
  1798.                             <strong>20 000 exemplaires</strong> distribués à travers toute la France, 
  1799.                             cette publication est devenue la référence incontournable de la communauté 
  1800.                             des personnes malentendantes.
  1801.                         </p>
  1802.                         <a href="http://boutique.surdifrance.org/" target="_blank" class="magazine-cta">
  1803.                             S'abonner au magazine
  1804.                         </a>
  1805.                     </div>
  1806.                     <div class="magazine-visual">
  1807.                         <div class="magazine-stats">
  1808.                             <div class="magazine-big-number">25</div>
  1809.                             <div class="magazine-big-label">années d'expertise</div>
  1810.                             
  1811.                             <div class="magazine-mini-stats">
  1812.                                 <div class="mini-stat">
  1813.                                     <div class="mini-stat-number">20k</div>
  1814.                                     <div class="mini-stat-label">lecteurs</div>
  1815.                                 </div>
  1816.                                 <div class="mini-stat">
  1817.                                     <div class="mini-stat-number">4</div>
  1818.                                     <div class="mini-stat-label">numéros/an</div>
  1819.                                 </div>
  1820.                             </div>
  1821.                             
  1822.                             <div class="magazine-topics">
  1823.                                 <div class="topics-title">Sujets traités :</div>
  1824.                                 <div class="topics-tags">
  1825.                                     <span class="topic-tag">Témoignages</span>
  1826.                                     <span class="topic-tag">Innovation</span>
  1827.                                     <span class="topic-tag">Conseils</span>
  1828.                                     <span class="topic-tag">Actualités</span>
  1829.                                     <span class="topic-tag">Droits</span>
  1830.                                     <span class="topic-tag">Prévention</span>
  1831.                                 </div>
  1832.                             </div>
  1833.                         </div>
  1834.                     </div>
  1835.                 </div>
  1836.             </div>
  1837.         </section>
  1838.         <!-- Introduction -->
  1839.         <section class="intro" id="intro">
  1840.             <div class="container">
  1841.                 <div class="section-header">
  1842.                     <h2>Un partenariat au service de l'inclusion</h2>
  1843.                     <p>MyAudio et SurdiFrance unissent leurs forces pour une société plus inclusive</p>
  1844.                 </div>
  1845.                 <div class="intro-content">
  1846.                     <div class="intro-text">
  1847.                         <p>
  1848.                             <strong>MyAudio et SurdiFrance</strong>
  1849.                             s'associent pour faciliter l'accès aux solutions 
  1850.                                                     auditives et promouvoir une meilleure connaissance du parcours de soins. Cette 
  1851.                                                     collaboration repose sur une vision partagée : valoriser les ressources à disposition 
  1852.                                                     des personnes concernées et renforcer la prévention.
  1853.                         </p>
  1854.                         <p>
  1855.                             En conjuguant l'expertise numérique et le réseau national d'audioprothésistes de MyAudio 
  1856.                                                     à l'ancrage associatif et militant de SurdiFrance, ce partenariat ouvre la voie à des 
  1857.                                                     actions concrètes et complémentaires, au bénéfice direct des usagers.
  1858.                         </p>
  1859.                         <p>
  1860.                             <strong>SurdiFrance</strong>
  1861.                             est la fédération nationale des associations de devenus sourds 
  1862.                                                     et malentendants. Elle rassemble plus de 40 associations membres réparties dans toute la 
  1863.                                                     France et constitue un réseau engagé, structuré et solidaire.
  1864.                         </p>
  1865.                     </div>
  1866.                     <div class="intro-features">
  1867.                         <div class="feature-item">
  1868.                             <div class="feature-icon">🎯</div>
  1869.                             <div class="feature-content">
  1870.                                 <h4>Représentation nationale</h4>
  1871.                                 <p>Défense des droits auprès des pouvoirs publics et institutions</p>
  1872.                             </div>
  1873.                         </div>
  1874.                         <div class="feature-item">
  1875.                             <div class="feature-icon">🤝</div>
  1876.                             <div class="feature-content">
  1877.                                 <h4>Accompagnement local</h4>
  1878.                                 <p>Plus de 40 associations pour un soutien de proximité</p>
  1879.                             </div>
  1880.                         </div>
  1881.                         <div class="feature-item">
  1882.                             <div class="feature-icon">📚</div>
  1883.                             <div class="feature-content">
  1884.                                 <h4>Information et formation</h4>
  1885.                                 <p>Guides, documentation et sensibilisation du grand public</p>
  1886.                             </div>
  1887.                         </div>
  1888.                         <div class="feature-item">
  1889.                             <div class="feature-icon">🌍</div>
  1890.                             <div class="feature-content">
  1891.                                 <h4>Reconnaissance internationale</h4>
  1892.                                 <p>Représentation auprès de l'ONU, l'OMS et l'UNESCO</p>
  1893.                             </div>
  1894.                         </div>
  1895.                     </div>
  1896.                 </div>
  1897.             </div>
  1898.         </section>
  1899.         <!-- Values -->
  1900.         <section class="values">
  1901.             <div class="container">
  1902.                 <div class="section-header">
  1903.                     <h2>Les valeurs qui nous unissent</h2>
  1904.                     <p>Un engagement commun pour une société plus inclusive</p>
  1905.                 </div>
  1906.                 <div class="values-grid">
  1907.                     <div class="value-card">
  1908.                         <div class="value-icon">👂</div>
  1909.                         <h3>Accessibilité universelle</h3>
  1910.                         <p>Chaque personne malentendante doit pouvoir participer pleinement à la vie sociale, culturelle et professionnelle</p>
  1911.                     </div>
  1912.                     <div class="value-card">
  1913.                         <div class="value-icon">💪</div>
  1914.                         <h3>Autonomie et dignité</h3>
  1915.                         <p>La surdité ne doit jamais être un facteur d'exclusion ou de dépendance</p>
  1916.                     </div>
  1917.                     <div class="value-card">
  1918.                         <div class="value-icon">🤲</div>
  1919.                         <h3>Solidarité et entraide</h3>
  1920.                         <p>L'expérience collective et le partage sont au cœur du mouvement associatif</p>
  1921.                     </div>
  1922.                     <div class="value-card">
  1923.                         <div class="value-icon">🎯</div>
  1924.                         <h3>Neutralité et indépendance</h3>
  1925.                         <p>Action dans l'intérêt exclusif des personnes, sans lien commercial</p>
  1926.                     </div>
  1927.                 </div>
  1928.             </div>
  1929.         </section>
  1930.         <!-- Advantages Section -->
  1931.         <section class="advantages">
  1932.             <div class="container">
  1933.                 <div class="section-header">
  1934.                     <h2>Les avantages du partenariat</h2>
  1935.                     <p>Des solutions concrètes pour améliorer votre parcours auditif</p>
  1936.                 </div>
  1937.                 <div class="advantages-grid">
  1938.                     <div class="advantage-card">
  1939.                         <div class="advantage-icon">📍</div>
  1940.                         <div class="advantage-content">
  1941.                             <h3>Un réseau national</h3>
  1942.                             <p>Accédez à plus de 40 associations locales et au 1er réseau national d'audioprothésistes certifiés MyAudio pour un accompagnement de proximité.</p>
  1943.                             <a href="https://www.surdifrance.org" target="_blank" class="advantage-btn">En savoir plus</a>
  1944.                         </div>
  1945.                     </div>
  1946.                     <div class="advantage-card">
  1947.                         <div class="advantage-icon">📚</div>
  1948.                         <div class="advantage-content">
  1949.                             <h3>Des ressources complètes</h3>
  1950.                             <p>Guides pratiques, documentation spécialisée et magazine trimestriel pour vous informer sur tous les aspects de la surdité acquise.</p>
  1951.                             <a href="https://www.surdifrance.org/qui-sommes-nous/nos-actions/documentation/" target="_blank" class="advantage-btn">En savoir plus</a>
  1952.                         </div>
  1953.                     </div>
  1954.                     <div class="advantage-card">
  1955.                         <div class="advantage-icon">🎧</div>
  1956.                         <div class="advantage-content">
  1957.                             <h3>Un parcours facilité</h3>
  1958.                             <p>Prise de rendez-vous en ligne 24/7, test auditif gratuit et suivi complet de votre dossier de santé auditive.</p>
  1959.                             <a href="https://www.myaudio.fr/search" target="_blank" class="advantage-btn">Prendre un RDV</a>
  1960.                         </div>
  1961.                     </div>
  1962.                     <div class="advantage-card">
  1963.                         <div class="advantage-icon">💡</div>
  1964.                         <div class="advantage-content">
  1965.                             <h3>Innovation et expertise</h3>
  1966.                             <p>Bénéficiez de l'expertise digitale de MyAudio combinée à l'expérience terrain de SurdiFrance.</p>
  1967.                             <a href="https://www.myaudio.fr" target="_blank" class="advantage-btn">En savoir plus</a>
  1968.                         </div>
  1969.                     </div>
  1970.                     <div class="advantage-card">
  1971.                         <div class="advantage-icon">🤝</div>
  1972.                         <div class="advantage-content">
  1973.                             <h3>Accompagnement personnalisé</h3>
  1974.                             <p>Des professionnels formés et des bénévoles engagés pour répondre à vos besoins spécifiques.</p>
  1975.                             <a href="https://www.myaudio.fr/centre/" target="_blank" class="advantage-btn">En savoir plus</a>
  1976.                         </div>
  1977.                     </div>
  1978.                     <div class="advantage-card">
  1979.                         <div class="advantage-icon">🔒</div>
  1980.                         <div class="advantage-content">
  1981.                             <h3>Neutralité garantie</h3>
  1982.                             <p>Une fédération indépendante qui agit dans votre intérêt exclusif, sans lien commercial.</p>
  1983.                             <a href="https://www.surdifrance.org" target="_blank" class="advantage-btn">En savoir plus</a>
  1984.                         </div>
  1985.                     </div>
  1986.                 </div>
  1987.             </div>
  1988.         </section>
  1989.         <!-- Map Section -->
  1990.         <section class="map-section" id="map">
  1991.             <div class="container">
  1992.                 <div class="section-header">
  1993.                     <h2>Trouvez une association près de chez vous</h2>
  1994.                     <p>Plus de 40 associations réparties sur tout le territoire français</p>
  1995.                 </div>
  1996.                 <div class="map-container">
  1997.                     <!-- Liste des associations (affichée directement) -->
  1998.                     <div class="associations-sidebar">
  1999.                         <h3>📍 Nos associations locales</h3>
  2000.         <p class="sidebar-subtitle">Cliquez sur une association ou sur un marqueur pour naviguer entre la liste et la carte</p>
  2001.                         <div id="associations-grid" class="associations-grid"></div>
  2002.                     </div>
  2003.                     <!-- Carte interactive -->
  2004.                     <div class="map-wrapper">
  2005.                         <div id="interactive-map" style="height: 500px; border-radius: 15px;"></div>
  2006.                     </div>
  2007.                 </div>
  2008.             </div>
  2009.         </section>
  2010.         <!-- Audio Test Section -->
  2011.         <section class="audio-test-section">
  2012.             <div class="container">
  2013.                 <div class="audio-test-content">
  2014.                     <div class="test-text">
  2015.                         <h2>🎧 Testez votre audition</h2>
  2016.                         <h3>Évaluation gratuite en ligne</h3>
  2017.                         <p>
  2018.                             Découvrez en quelques minutes l'état de votre audition avec notre test auditif 
  2019.                             en ligne gratuit. Développé par des audioprothésistes experts, il vous donne 
  2020.                             une première évaluation fiable de votre capacité auditive.
  2021.                         </p>
  2022.                         <ul class="test-features">
  2023.                             <li>Test gratuit et sans engagement</li>
  2024.                             <li>Résultats immédiats et confidentiels</li>
  2025.                             <li>Recommandations personnalisées</li>
  2026.                             <li>Développé par des professionnels</li>
  2027.                         </ul>
  2028.                         <p>
  2029.                             <strong>Important :</strong> Ce test ne remplace pas un diagnostic médical complet. 
  2030.                             En cas de doute, consultez un audioprothésiste ou un ORL.
  2031.                         </p>
  2032.                         <a href="/test-auditif-en-ligne/test" target="_blank" class="test-cta">
  2033.                             Commencer le test
  2034.                         </a>
  2035.                     </div>
  2036.                     <div class="test-visual">
  2037.                         <div class="test-mockup">
  2038.                             <div class="test-header">Test Auditif MyAudio</div>
  2039.                             <div class="test-content">
  2040.                                 <div class="frequency-bars">
  2041.                                     <div class="frequency-bar"></div>
  2042.                                     <div class="frequency-bar"></div>
  2043.                                     <div class="frequency-bar"></div>
  2044.                                     <div class="frequency-bar"></div>
  2045.                                     <div class="frequency-bar"></div>
  2046.                                     <div class="frequency-bar"></div>
  2047.                                     <div class="frequency-bar"></div>
  2048.                                 </div>
  2049.                                 <div class="test-info">
  2050.                                     Évaluation des fréquences<br>
  2051.                                     125 Hz - 8000 Hz
  2052.                                 </div>
  2053.                             </div>
  2054.                         </div>
  2055.                     </div>
  2056.                 </div>
  2057.             </div>
  2058.         </section>
  2059.         <!-- Section RDV Audioprothésiste -->
  2060.         <section class="appointment-section">
  2061.             <div class="container">
  2062.                 <div class="appointment-content">
  2063.                     <h2>Prendre RDV avec un audioprothésiste</h2>
  2064.                     <h3>Trouvez un professionnel près de chez vous</h3>
  2065.                     <p>
  2066.                         Notre réseau de partenaires MyAudio vous accompagne dans votre démarche auditive. 
  2067.                         Grâce à notre système de géolocalisation, trouvez rapidement un audioprothésiste qualifié 
  2068.                         dans votre secteur et prenez rendez-vous en ligne.
  2069.                     </p>
  2070.                     
  2071.                     <div class="appointment-steps">
  2072.                         <div class="appointment-step">
  2073.                             <div class="step-icon">🔍</div>
  2074.                             <div class="step-title">Recherche</div>
  2075.                             <div class="step-description">Trouvez les audioprothésistes les plus proches</div>
  2076.                         </div>
  2077.                         <div class="appointment-step">
  2078.                             <div class="step-icon">📅</div>
  2079.                             <div class="step-title">Rendez-vous</div>
  2080.                             <div class="step-description">Prenez RDV directement en ligne</div>
  2081.                         </div>
  2082.                     </div>
  2083.                     <button id="findProButton" class="appointment-cta">
  2084.                         Trouver un audioprothésiste
  2085.                     </button>
  2086.                     
  2087.                     <div class="location-info">
  2088.                         <small>
  2089.                             En cliquant, vous acceptez de partager votre localisation.
  2090.                             <a href="https://www.myaudio.fr/search" class="fallback-link" target="_blank">
  2091.                                 Rechercher sans géolocalisation
  2092.                             </a>
  2093.                         </small>
  2094.                     </div>
  2095.                 </div>
  2096.             </div>
  2097.         </section>
  2098.         <!-- Resources -->
  2099.         <section class="resources" id="resources">
  2100.             <div class="container">
  2101.                 <div class="section-header">
  2102.                     <h2>Ressources et documentation</h2>
  2103.                     <p>Des guides pratiques et des outils pour vous accompagner</p>
  2104.                 </div>
  2105.                 <div class="resources-grid">
  2106.                     <div class="resource-card">
  2107.                         <div class="resource-header">
  2108.                             <h3>📘 J'entends mal, quelles solutions ?</h3>
  2109.                         </div>
  2110.                         <div class="resource-content">
  2111.                             <p>Le petit guide du mieux-entendre : 20 pages pour comprendre les étapes du parcours de soins face à une perte auditive.</p>
  2112.                             <a href="https://www.surdifrance.org/qui-sommes-nous/nos-actions/documentation/" target="_blank" class="resource-link">
  2113.                                 Télécharger le guide →
  2114.                             </a>
  2115.                         </div>
  2116.                     </div>
  2117.                     <div class="resource-card">
  2118.                         <div class="resource-header">
  2119.                             <h3>🎧 Bien s'équiper en appareils auditifs</h3>
  2120.                         </div>
  2121.                         <div class="resource-content">
  2122.                             <p>Conseils pratiques et retours d'expérience d'usagers. Un guide plébiscité par les audioprothésistes - Version 2024.</p>
  2123.                             <a href="https://www.surdifrance.org/qui-sommes-nous/nos-actions/documentation/" target="_blank" class="resource-link">
  2124.                                 Consulter le guide →
  2125.                             </a>
  2126.                         </div>
  2127.                     </div>
  2128.                     <div class="resource-card">
  2129.                         <div class="resource-header">
  2130.                             <h3>💬 Parler à une personne malentendante</h3>
  2131.                         </div>
  2132.                         <div class="resource-content">
  2133.                             <p>4 règles d'or illustrées pour bien communiquer. Un mode d'emploi simple et pratique pour tous.</p>
  2134.                             <a href="https://www.surdifrance.org/qui-sommes-nous/nos-actions/documentation/" target="_blank" class="resource-link">
  2135.                                 Découvrir les conseils →
  2136.                             </a>
  2137.                         </div>
  2138.                     </div>
  2139.                     <div class="resource-card">
  2140.                         <div class="resource-header">
  2141.                             <h3>📚 6 millions de malentendants</h3>
  2142.                         </div>
  2143.                         <div class="resource-content">
  2144.                             <p>La revue de référence écrite par les malentendants pour les malentendants. 4 numéros par an, 25 ans d'expertise.</p>
  2145.                             <a href="https://www.surdifrance.org/category/actu/6-millions-de-malentendants/" target="_blank" class="resource-link">
  2146.                                 Parcourir les numéros →
  2147.                             </a>
  2148.                         </div>
  2149.                     </div>
  2150.                     <div class="resource-card">
  2151.                         <div class="resource-header">
  2152.                             <h3>🎓 Formation accessible</h3>
  2153.                         </div>
  2154.                         <div class="resource-content">
  2155.                             <p>20 conseils pour rendre une formation accessible aux personnes malentendantes. Co-construit avec des experts.</p>
  2156.                             <a href="https://www.surdifrance.org/qui-sommes-nous/nos-actions/documentation/" target="_blank" class="resource-link">
  2157.                                 Accéder au document →
  2158.                             </a>
  2159.                         </div>
  2160.                     </div>
  2161.                     <div class="resource-card">
  2162.                         <div class="resource-header">
  2163.                             <h3>🔊 La BIM en questions</h3>
  2164.                         </div>
  2165.                         <div class="resource-content">
  2166.                             <p>Pour tout comprendre sur les boucles à induction magnétique et leur utilisation au quotidien.</p>
  2167.                             <a href="https://www.surdifrance.org/qui-sommes-nous/nos-actions/documentation/" target="_blank" class="resource-link">
  2168.                                 En savoir plus →
  2169.                             </a>
  2170.                         </div>
  2171.                     </div>
  2172.                 </div>
  2173.             </div>
  2174.         </section>
  2175.         <!-- CTA Section -->
  2176.         <section class="cta-section" id="support">
  2177.             <div class="container">
  2178.                 <div class="cta-content">
  2179.                     <h2>Soutenez l'action de SurdiFrance</h2>
  2180.                     <p>Contribuez activement à la défense des droits et à l'inclusion des personnes devenues sourdes et malentendantes</p>
  2181.                     <div class="cta-cards">
  2182.                         <div class="cta-card">
  2183.                             <h3>💝 Faire un don</h3>
  2184.                             <p>Soutenez les actions de la fédération pour développer l'accessibilité</p>
  2185.                             <div class="price">Dès 5€/mois</div>
  2186.                             <div class="subtitle">66% de réduction fiscale</div>
  2187.                             <a href="https://www.surdifrance.org/donner-ou-leguer-a-surdifrance/" target="_blank" class="btn-white">
  2188.                                 Je fais un don
  2189.                             </a>
  2190.                         </div>
  2191.                         <div class="cta-card">
  2192.                             <h3>📖 S'abonner à la revue</h3>
  2193.                             <p>Recevez 4 fois par an le magazine de référence sur la surdité acquise</p>
  2194.                             <div class="price">30€/an</div>
  2195.                             <a href="http://boutique.surdifrance.org/" target="_blank" class="btn-white">
  2196.                                 Je m'abonne
  2197.                             </a>
  2198.                         </div>
  2199.                         <div class="cta-card">
  2200.                             <h3>🌟 Devenir partenaire</h3>
  2201.                             <p>Rejoignez le réseau d'acteurs engagés pour l'inclusion auditive</p>
  2202.                             <div class="price">Contact direct</div>
  2203.                             <div class="subtitle">president@surdifrance.org</div>
  2204.                             <a href="mailto:president-e@surdifrance.org" class="btn-white">
  2205.                                 Nous contacter
  2206.                             </a>
  2207.                         </div>
  2208.                     </div>
  2209.                 </div>
  2210.             </div>
  2211.         </section>
  2212.         <footer class="home_footer">
  2213.             {% include "/footer.html.twig" %}
  2214.         </footer>
  2215.         <script>
  2216.             // Smooth scroll for anchor links
  2217. document.querySelectorAll('a[href^="#"]').forEach(anchor => {
  2218. anchor.addEventListener('click', function (e) {
  2219. e.preventDefault();
  2220. const target = document.querySelector(this.getAttribute('href'));
  2221. if (target) {
  2222. const headerOffset = 80;
  2223. const elementPosition = target.offsetTop;
  2224. const offsetPosition = elementPosition - headerOffset;
  2225. window.scrollTo({top: offsetPosition, behavior: 'smooth'});
  2226. }
  2227. });
  2228. });
  2229. // Header shadow on scroll
  2230. window.addEventListener('scroll', () => {
  2231. const header = document.querySelector('.header-nav');
  2232. if (window.scrollY > 10) {
  2233. header.style.boxShadow = '0 2px 20px rgba(0,0,0,0.1)';
  2234. } else {
  2235. header.style.boxShadow = '0 2px 10px rgba(0,0,0,0.05)';
  2236. }
  2237. });
  2238. // Animate elements on scroll
  2239. const observerOptions = {
  2240. threshold: 0.1,
  2241. rootMargin: '0px 0px -50px 0px'
  2242. };
  2243. const observer = new IntersectionObserver((entries) => {
  2244. entries.forEach(entry => {
  2245. if (entry.isIntersecting) {
  2246. entry.target.style.opacity = '1';
  2247. entry.target.style.transform = 'translateY(0)';
  2248. }
  2249. });
  2250. }, observerOptions);
  2251. // Add fade-in animation to elements
  2252. document.querySelectorAll('.stat-card, .value-card, .resource-card, .advantage-card').forEach(el => {
  2253. el.style.opacity = '0';
  2254. el.style.transform = 'translateY(20px)';
  2255. el.style.transition = 'all 0.6s ease';
  2256. observer.observe(el);
  2257. });
  2258. // Counter animation for statistics
  2259. function animateCounter(element, target, suffix = '') {
  2260. let current = 0;
  2261. const increment = target / 50;
  2262. const timer = setInterval(() => {
  2263. current += increment;
  2264. if (current >= target) {
  2265. current = target;
  2266. clearInterval(timer);
  2267. }
  2268. element.textContent = Math.floor(current) + suffix;
  2269. }, 30);
  2270. }
  2271. // Trigger counter animation when visible
  2272. const statObserver = new IntersectionObserver((entries) => {
  2273. entries.forEach(entry => {
  2274. if (entry.isIntersecting && !entry.target.classList.contains('animated')) {
  2275. entry.target.classList.add('animated');
  2276. const statNumber = entry.target.querySelector('.stat-number');
  2277. if (statNumber) {
  2278. const text = statNumber.textContent;
  2279. if (text.includes('M')) {
  2280. animateCounter(statNumber, 6, 'M');
  2281. } else if (text.includes('+')) {
  2282. animateCounter(statNumber, parseInt(text), '+');
  2283. } else if (text.includes('%')) {
  2284. animateCounter(statNumber, 100, '%');
  2285. } else {
  2286. animateCounter(statNumber, parseInt(text), '');
  2287. }
  2288. }
  2289. }
  2290. });
  2291. }, {threshold: 0.5});
  2292. document.querySelectorAll('.stat-card').forEach(card => {
  2293. statObserver.observe(card);
  2294. });
  2295. // Données des associations
  2296. // Données des associations
  2297. const associations = [
  2298. {
  2299. department: "02",
  2300. name: "ASMA - Association des Sourds et Malentendants de l'Aisne",
  2301. description: "",
  2302. phone: "07 68 77 88 82",
  2303. sms: "",
  2304. email: "asma.aisne@gmail.com",
  2305. website: "",
  2306. address: "11 bis rue de Fère\n2400 CHATEAU THIERRY",
  2307. accessibility: [
  2308. "Sous-titrage", "lecture labiale", "BIM"
  2309. ],
  2310. lat: 49.0447,
  2311. lng: 3.4036
  2312. },
  2313. {
  2314. department: "12",
  2315. name: "ARDDS 12",
  2316. description: "Propose de cours de lecture labiale, présents dans les commissions d'accessibilité municipales, sensibilisations dans les entreprises, sorties conviviales, ateliers et visites de musées, atelier numérique.",
  2317. phone: "06.14.82.02.87",
  2318. sms: "",
  2319. email: "section.aveyron.ardds@gmail.com",
  2320. website: "https://www.facebook.com/ardds12/",
  2321. address: "MDA Claude Dangles\n15 avenue Tarayre\n12000 RODEZ",
  2322. accessibility: [
  2323. "Sous-titrage", "lecture labiale", "BIM"
  2324. ],
  2325. lat: 44.3498,
  2326. lng: 2.5751
  2327. },
  2328. {
  2329. department: "13",
  2330. name: "Surdi 13",
  2331. description: "Permanences régulières à Aix-en-Provence, Marseille et Arles. Assurances pour appareils auditifs. Ateliers de lecture labiale. Ateliers thématiques pour implantés cochléaires. Sorties culturelles adaptées.",
  2332. phone: "07.49.10.22.00",
  2333. sms: "",
  2334. email: "contact@surdi13.fr",
  2335. website: "surdi13.fr",
  2336. address: "33 rue Emile Tavan\n13100 Aix-en-Provence",
  2337. accessibility: [
  2338. "Sous-titrage", "lecture labiale", "BIM"
  2339. ],
  2340. lat: 43.5297,
  2341. lng: 5.4474
  2342. },
  2343. {
  2344. department: "14",
  2345. name: "Oreille et Son (section de l'ADSM Surdi 50)",
  2346. description: "Accompagnement, défense et représentation des devenus sourds et malentendants. Information, prévention et formation. Animation de la vie associative conviviale. Permanence au CHU 2ème mercredi du mois de 16h à 18h.",
  2347. phone: "07.69.40.28.14",
  2348. sms: "",
  2349. email: "oreille.et.son14@gmail.com",
  2350. website: "",
  2351. address: "Le 1901\nMaison des Associations 8 rue Germaine Tillon\n14000 Caen",
  2352. accessibility: [
  2353. "Sous-titrage", "lecture labiale", "BIM"
  2354. ],
  2355. lat: 49.1829,
  2356. lng: -0.3707
  2357. }, {
  2358. department: "15",
  2359. name: "Surdi 15",
  2360. description: "Améliorer l'accessibilité des déficients auditifs dans les locaux publics. Informer sur les équipements complémentaires. Créer du lien social. Membre de la Commission Départementale d'Accessibilité. 70 adhérents sur tout le département.",
  2361. phone: "06 12 24 74 94",
  2362. sms: "",
  2363. email: "surdi15@hotmail.com",
  2364. website: "surdi15.wordpress.com",
  2365. address: "Maison des Associations\n8 Place de la Paix\n15000 AURILLAC",
  2366. accessibility: [
  2367. "Sous-titrage", "lecture labiale", "BIM", "LSF"
  2368. ],
  2369. lat: 44.9255,
  2370. lng: 2.4436
  2371. }, {
  2372. department: "22",
  2373. name: "La bande son",
  2374. description: "Défense des malentendants et devenus sourds. Maintien du lien social. Groupes de parole, ateliers de lecture labiale, atelier chant. Partenariats avec IFPS et IFAS. Permanence à l'hôpital de St Brieuc. Collectif breton.",
  2375. phone: "07 67 96 02 82",
  2376. sms: "",
  2377. email: "associationlabandeson@gmail.com",
  2378. website: "https://www.facebook.com/groups/291272754679038/",
  2379. address: "15 bis rue des Capucins\n22000 SAINT BRIEUC",
  2380. accessibility: [
  2381. "Sous-titrage", "lecture labiale", "BIM"
  2382. ],
  2383. lat: 48.5148,
  2384. lng: -2.7653
  2385. }, {
  2386. department: "24",
  2387. name: "Visible à l'oreille",
  2388. description: "Atelier de lecture labiale pour malentendants et devenus sourds. Information du jeune public sur la surdité. Formation personnel EHPAD. Mission d'accessibilité des ERP, cinémas, salles de spectacle.",
  2389. phone: "06 70 57 72 45",
  2390. sms: "",
  2391. email: "visiblealoreille24@gmail.com",
  2392. website: "https://www.facebook.com/visiblealoreille",
  2393. address: "136 Imp. de la Haute Roquette\nEyliac\n24330 Basillac",
  2394. accessibility: [
  2395. "Sous-titrage", "lecture labiale", "BIM"
  2396. ],
  2397. lat: 45.1715,
  2398. lng: 0.9055
  2399. }, {
  2400. department: "25",
  2401. name: "ARDDS Franche Comte",
  2402. description: "Cours gratuits de lecture labiale tous les mois à Besançon et à Belfort avec des orthophonistes. Interventions de sensibilisation et prévention des risques auditifs.",
  2403. phone: "06.83.29.64.17",
  2404. sms: "",
  2405. email: "ardds.franchecomte@gmail.com",
  2406. website: "https://www.facebook.com/aucreuxdeloreillearddsfranchecomte/",
  2407. address: "9, rue des pommiers\n25400 EXINCOURT",
  2408. accessibility: [
  2409. "Sous-titrage", "lecture labiale", "BIM"
  2410. ],
  2411. lat: 47.4968,
  2412. lng: 6.8357
  2413. }, {
  2414. department: "29",
  2415. name: "Sourdine-Sud 29",
  2416. description: "",
  2417. phone: "07.86.80.30.00",
  2418. sms: "",
  2419. email: "sourdineasso@gmail.com",
  2420. website: "https://association-sourdine-29.blogspot.com/",
  2421. address: "52 rue de Kerourgué\n29170 FOUESNANT",
  2422. accessibility: [
  2423. "Sous-titrage", "lecture labiale", "BIM"
  2424. ],
  2425. lat: 47.8959,
  2426. lng: -4.0136
  2427. }, {
  2428. department: "29",
  2429. name: "Surd'iroise",
  2430. description: "Accueil personnes malentendantes: permanences, réunions, forums. Actions pour l'accessibilité. Prévention et sensibilisation JNA 2024. Travail en réseau avec associations bretonnes. Communication médias et réseaux sociaux.",
  2431. phone: "06.99.95.57.90",
  2432. sms: "",
  2433. email: "contact.surdiroise@gmail.com",
  2434. website: "surdiroise.fr",
  2435. address: "Mairie de Plabennec\n1, rue Pierre Jestin\n29860 PLABENNEC",
  2436. accessibility: [
  2437. "Sous-titrage", "lecture labiale", "BIM"
  2438. ],
  2439. lat: 48.5035,
  2440. lng: -4.1789
  2441. }, {
  2442. department: "30",
  2443. name: "Surdi 30",
  2444. description: "Solutions pour améliorer quotidien et communication des malentendants. Espace d'accueil, conseil, orientation. Rencontres à thèmes. Modules de prévention. Perfectionnement nouvelles technologies et découverte LSF.",
  2445. phone: "06.16.83.80.51",
  2446. sms: "",
  2447. email: "gaverous@wanadoo.fr",
  2448. website: "www.surdi30.org",
  2449. address: "70 A route de Beaucaire\n30000 NIMES",
  2450. accessibility: [
  2451. "Sous-titrage", "lecture labiale", "BIM"
  2452. ],
  2453. lat: 43.8367,
  2454. lng: 4.3601
  2455. }, {
  2456. department: "31",
  2457. name: "AMDS Midi-Pyrénées",
  2458. description: "",
  2459. phone: "06 74 48 53 54",
  2460. sms: "06 10 36 77 39",
  2461. email: "contact.amds.mp@gmail.com",
  2462. website: "https://amds-mp.com/",
  2463. address: "Maison des associations\n3 Place Guy Hersant, boite 54 BP 74184\n31031 Toulouse",
  2464. accessibility: [
  2465. "Sous-titrage", "lecture labiale", "BIM"
  2466. ],
  2467. lat: 43.6047,
  2468. lng: 1.4442
  2469. }, {
  2470. department: "33",
  2471. name: "Audition et écoute 33",
  2472. description: "Association créée en 2004 pour personnes atteintes de troubles de l'audition qui communiquent oralement (malentendants, devenus sourds ou sourds de naissance oralistes) demeurant en Gironde.",
  2473. phone: "06.64.93.48.09",
  2474. sms: "",
  2475. email: "secretariat.ae33@gmail.com",
  2476. website: "ae-33.blogspot.com",
  2477. address: "38 boulevard Saint Martin\n33600 PESSAC",
  2478. accessibility: [
  2479. "Sous-titrage", "lecture labiale", "BIM"
  2480. ],
  2481. lat: 44.8048,
  2482. lng: -0.6142
  2483. }, {
  2484. department: "34",
  2485. name: "Surdi 34",
  2486. description: "Association dynamique à Montpellier et Béziers. 330 membres. Journées récréatives mensuelles. Permanences CHU, ISP, MDPH. Accompagnement dossiers MDPH. Sensibilisations et conférences. Présence JNA, JMS, JMA. Apéro Labial mensuel.",
  2487. phone: "07.87.63.49.69",
  2488. sms: "",
  2489. email: "contact@surdi34.fr",
  2490. website: "surdi34.fr",
  2491. address: "Résidence La Pompignane - Bât.17\n424 rue Louise Michel\n34000 Montpellier",
  2492. accessibility: [
  2493. "Sous-titrage", "lecture labiale", "BIM"
  2494. ],
  2495. lat: 43.6110,
  2496. lng: 3.8767
  2497. }, {
  2498. department: "35",
  2499. name: "Keditu",
  2500. description: "Accueil personnes malentendantes et devenues sourdes. Maintien vie sociale. Information sur déficience auditive et compensation. Alerte organismes recevant public. Promotion réadaptation sociale et professionnelle.",
  2501. phone: "06.65.62.94.59",
  2502. sms: "",
  2503. email: "contact@keditu.org",
  2504. website: "www.keditu.org",
  2505. address: "Maison des Associations\n6 cours des Alliées\n35000 RENNES",
  2506. accessibility: [
  2507. "Sous-titrage", "lecture labiale", "BIM"
  2508. ],
  2509. lat: 48.1173,
  2510. lng: -1.6778
  2511. }, {
  2512. department: "38",
  2513. name: "ARDDS 38",
  2514. description: "Activités locales, rencontres conviviales, visites guidées Musées de Grenoble. Représentation dans commissions d'accessibilité. Tarifs privilégiés assurances implants et prothèses. Sensibilisations milieu scolaire/hospitalier. Signataire Charte Romain Jacob.",
  2515. phone: "04.76.49.79.20",
  2516. sms: "",
  2517. email: "malentendant38@orange.fr",
  2518. website: "www.malentendant38.org",
  2519. address: "29, rue des Mûriers\n38180 SEYSSINS",
  2520. accessibility: [
  2521. "Sous-titrage", "lecture labiale", "BIM"
  2522. ],
  2523. lat: 45.1667,
  2524. lng: 5.6833
  2525. }, {
  2526. department: "44",
  2527. name: "ARDDS 44",
  2528. description: "Organisation séances apprentissage lecture labiale avec 3 orthophonistes diplômés. Rencontres amicales mensuelles et 2 repas annuels. Participation forums santé sensorielle seniors. Consultations handicap auditif.",
  2529. phone: "06.50.31.31.29",
  2530. sms: "",
  2531. email: "section44@ardds.org",
  2532. website: "",
  2533. address: "11 rue des Aigrettes\n44860 SAINT AIGNAN GRAND LIEU",
  2534. accessibility: [
  2535. "Sous-titrage", "lecture labiale", "BIM"
  2536. ],
  2537. lat: 47.1378,
  2538. lng: -1.6556
  2539. }, {
  2540. department: "49",
  2541. name: "Surdi 49",
  2542. description: "Ateliers Lecture Labiale et Sophrologie. Accueil, information, orientation CERTA. Participation JNA. Sensibilisation personnels d'accueil. Tests équipements boucles magnétiques. Partenariats CHU Angers/Nantes, Faculté Médecine. Membre Maison Autonomie.",
  2543. phone: "06.77.61.23.08",
  2544. sms: "",
  2545. email: "surdi49angers@gmail.com",
  2546. website: "surdi49.fr",
  2547. address: "Espace Frédéric Mistral\n4, Allées des Baladins\n49000 ANGERS",
  2548. accessibility: [
  2549. "Sous-titrage", "lecture labiale", "BIM"
  2550. ],
  2551. lat: 47.4784,
  2552. lng: -0.5632
  2553. }, {
  2554. department: "50",
  2555. name: "ADSM Surdi 50",
  2556. description: "Accompagnement, défense et représentation devenus sourds et malentendants. Information, prévention, sensibilisation formation public, malentendants, professionnels, institutions. Animation vie associative. Permanences 1er jeudi du mois 14h30-16h30.",
  2557. phone: "06.81.90.60.63",
  2558. sms: "",
  2559. email: "adsm.surdi50@gmail.com",
  2560. website: "www.adsmmanche.fr",
  2561. address: "Les Unelles, Boîte 4\n11 rue St Maur\n50200 COUTANCES",
  2562. accessibility: [
  2563. "Sous-titrage", "lecture labiale", "BIM"
  2564. ],
  2565. lat: 49.0473,
  2566. lng: -1.4455
  2567. }, {
  2568. department: "50",
  2569. name: "ADSM Surdi 50 - Antenne Cherbourg",
  2570. description: "Accompagnement, défense et représentation devenus sourds et malentendants. Information, prévention, sensibilisation formation public, malentendants, professionnels, institutions. Animation vie associative. Permanence CHU 2ème mercredi du mois 16h-18h.",
  2571. phone: "",
  2572. sms: "",
  2573. email: "",
  2574. website: "",
  2575. address: "Maison Sport Santé 37, rue de l'Ermitage\n50100 Cherbourg-en-Cotentin",
  2576. accessibility: [
  2577. "Sous-titrage", "lecture labiale", "BIM"
  2578. ],
  2579. lat: 49.6337,
  2580. lng: -1.6222
  2581. }, {
  2582. department: "53",
  2583. name: "ARDDS 53",
  2584. description: "Ateliers lecture labiale hebdomadaires par orthophonistes, gratuits adhérents. Temps conviviaux, sorties, accueil personnalisé. Partage ressources accessoires, astuces, contacts, lieux accessibles. Partenariats audioprothésistes, mairie Laval, établissements publics.",
  2585. phone: "07.69.27.72.46",
  2586. sms: "",
  2587. email: "section53@ardds.org",
  2588. website: "",
  2589. address: "Maison de Quartier d'Avesnières\n2, rue du Ponceau\n53000 LAVAL",
  2590. accessibility: [
  2591. "Sous-titrage", "lecture labiale", "BIM"
  2592. ],
  2593. lat: 48.0698,
  2594. lng: -0.7712
  2595. }, {
  2596. department: "54",
  2597. name: "Surdi Lorraine",
  2598. description: "Département 54 (Meurthe & Moselle) avec développement dans le 88 (Vosges). Découverte des 2 départements, ateliers langue de signes, après-midi/journées convivialité. Sensibilisation grand-public: journées découverte, sensibilisation, ateliers LSF, inclusion.",
  2599. phone: "07 81 09 75 25",
  2600. sms: "",
  2601. email: "surdilorraine@gmail.com",
  2602. website: "www.surdi-lorraine.fr",
  2603. address: "2 rue Joseph Piroux\n54140 JARVILLE LA MALGRANGE",
  2604. accessibility: [
  2605. "Sous-titrage", "lecture labiale", "BIM", "LSF"
  2606. ],
  2607. lat: 48.6639,
  2608. lng: 6.2056
  2609. }, {
  2610. department: "56",
  2611. name: "Oreille et vie",
  2612. description: "Accueil personnes déficientes auditives devenues à l'adolescence/âge adulte et familles. Information déficience auditive et compensation. Alerte administrations et organismes publics. Défense intérêts et assistance demandes avec moyens techniques.",
  2613. phone: "02.97.64.11.30",
  2614. sms: "",
  2615. email: "oreille-et-vie@wanadoo.fr",
  2616. website: "https://www.oreilleetvie.org/",
  2617. address: "Boîte 62 Maison des Associations\n5 place louis bonneaud\n56100 LORIENT",
  2618. accessibility: [
  2619. "Sous-titrage", "lecture labiale", "BIM"
  2620. ],
  2621. lat: 47.7482,
  2622. lng: -3.3706
  2623. }, {
  2624. department: "57",
  2625. name: "ARDDS 57",
  2626. description: "Ateliers de Lecture Labiale. Représentation personnes Devenues Sourdes et Malentendantes dans instances départementales. Défense DSME auprès structures départementales. Organisation JNA et prévention Établissements Scolaires et Entreprises.",
  2627. phone: "06 33 06 44 50",
  2628. sms: "",
  2629. email: "ardds57@yahoo.fr",
  2630. website: "",
  2631. address: "4 avenue de la gare, BP 25\n57320 Bouzonville",
  2632. accessibility: [
  2633. "Sous-titrage", "lecture labiale", "BIM"
  2634. ],
  2635. lat: 49.2889,
  2636. lng: 6.5278
  2637. }, {
  2638. department: "59",
  2639. name: "Surdi 59",
  2640. description: "Association basée à Lille. Valeurs d'inclusion, entraide, accessibilité. Permanences d'écoute et accompagnement. Sensibilisation et ateliers services publics, entreprises, écoles. Activités culturelles conviviales. Soutien seniors presbyacousie avec sous-titrage et transcription temps réel.",
  2641. phone: "06.74.77.93.06",
  2642. sms: "",
  2643. email: "contact@surdi59.org",
  2644. website: "https://www.surdi59.org/",
  2645. address: "Maison des Genêts\n2 rue des genêts\n59650 VILLENEUVE D'ASCQ",
  2646. accessibility: [
  2647. "Sous-titrage", "lecture labiale", "BIM"
  2648. ],
  2649. lat: 50.6167,
  2650. lng: 3.1333
  2651. }, {
  2652. department: "61",
  2653. name: "Surdi 61",
  2654. description: "Information, Prévention, Sensibilisation et Formation du public, malentendants et devenus sourds oralistes, professionnels, écoles, institutions. Animation Activités Vie Associative adhérents. Sensibilisation Collectivités BIM d'Accueil. Participation Forum Associations d'Argentan.",
  2655. phone: "06.08.60.81.71",
  2656. sms: "",
  2657. email: "amds.orne@gmail.com",
  2658. website: "https://www.facebook.com/surdi61",
  2659. address: "2, impasse des Safrières\n61210 Putanges-le-Lac",
  2660. accessibility: [
  2661. "Sous-titrage", "lecture labiale", "BIM"
  2662. ],
  2663. lat: 48.7667,
  2664. lng: -0.2500
  2665. }, {
  2666. department: "63",
  2667. name: "ARDDS 63",
  2668. description: "Accueillir, informer sur solutions et droits. Développer lecture labiale et formations en groupes. Représentation et Défense malentendants et devenus sourds: CDCA 63, Commissions d'accessibilité, Collectif Personnes en situation de Handicap.",
  2669. phone: "06 71 92 08 92",
  2670. sms: "",
  2671. email: "malentendants63@gmail.com",
  2672. website: "https://www.facebook.com/groups/163945410911229/",
  2673. address: "16 rue Jean Mermoz\n63190 LEZOUX",
  2674. accessibility: [
  2675. "Sous-titrage", "lecture labiale", "BIM"
  2676. ],
  2677. lat: 45.8278,
  2678. lng: 3.3778
  2679. }, {
  2680. department: "64",
  2681. name: "ARDDS 64",
  2682. description: "Rencontres amicales, lecture labiale, revue locale.",
  2683. phone: "05 59 05 50 46",
  2684. sms: "",
  2685. email: "section64@ardds.org",
  2686. website: "",
  2687. address: "66, rue Montpensier\n64000 Pau",
  2688. accessibility: [
  2689. "Sous-titrage", "lecture labiale", "BIM"
  2690. ],
  2691. lat: 43.2951,
  2692. lng: -0.3708
  2693. }, {
  2694. department: "68",
  2695. name: "AMDS Alsace",
  2696. description: "",
  2697. phone: "03 89 43 07 55",
  2698. sms: "",
  2699. email: "christiane.ahr@orange.fr",
  2700. website: "",
  2701. address: "63a, rue d'Illzach\n68200 MULHOUSE",
  2702. accessibility: [
  2703. "Sous-titrage", "lecture labiale", "BIM"
  2704. ],
  2705. lat: 47.7508,
  2706. lng: 7.3358
  2707. }, {
  2708. department: "69",
  2709. name: "ALDSM",
  2710. description: "",
  2711. phone: "",
  2712. sms: "",
  2713. email: "contact@aldsm.fr",
  2714. website: "www.aldsm.fr",
  2715. address: "c/o Locaux Motiv\n10bis rue Jangot\n69007 LYON",
  2716. accessibility: [
  2717. "Sous-titrage", "lecture labiale", "BIM"
  2718. ],
  2719. lat: 45.7578,
  2720. lng: 4.8320
  2721. }, {
  2722. department: "72",
  2723. name: "Surdi 72",
  2724. description: "Informations techniques, médicales, administratives malentendants et devenus sourds. Vérification application loi handicap 11/05/2005 accessibilité. Sorties cinéma mensuelles boucle magnétique. Visites expositions Musée avec guide. Sorties journée, repas annuels.",
  2725. phone: "",
  2726. sms: "",
  2727. email: "surdi72@gmail.com",
  2728. website: "",
  2729. address: "4 rue d'Arcole\nMDA Boîte aux lettres 76\n72000 Le Mans",
  2730. accessibility: [
  2731. "Sous-titrage", "lecture labiale", "BIM"
  2732. ],
  2733. lat: 48.0061,
  2734. lng: 0.1996
  2735. }, {
  2736. department: "75",
  2737. name: "ANIC",
  2738. description: "Aide, renseignements personnes sourdes implant cochléaire et accompagnement implantés. Permanences hôpitaux. Réunions mensuelles. Assurance groupe GAN implants cochléaires. Sorties culturelles, concerts, conférences. Site internet, bulletin semestriel.",
  2739. phone: "",
  2740. sms: "",
  2741. email: "anic.association@orange.fr",
  2742. website: "www.association-anic.fr",
  2743. address: "Hôpital Rotschild\n5 rue Santerre\n75012 PARIS",
  2744. accessibility: [
  2745. "Sous-titrage", "lecture labiale", "BIM"
  2746. ],
  2747. lat: 48.8499,
  2748. lng: 2.3763
  2749. }, {
  2750. department: "75",
  2751. name: "ARDDS 75 Ile de France",
  2752. description: "Adaptation devenu sourd ou malentendant à handicap invisible, empêcher isolement privation communication orale. Cours lecture labiale (4 niveaux). Sorties culturelles adaptées. Groupe paroles psychothérapeute. Permanences informations. Club lecture/écriture. Balades découvertes.",
  2753. phone: "06 87 61 39 51",
  2754. sms: "",
  2755. email: "arddsidf@ardds.org",
  2756. website: "http://www.ardds.org/content/ardds-idf",
  2757. address: "14 rue Georgette Agutte\n75018 PARIS",
  2758. accessibility: [
  2759. "Sous-titrage", "lecture labiale", "BIM"
  2760. ],
  2761. lat: 48.8944,
  2762. lng: 2.3400
  2763. }, {
  2764. department: "75",
  2765. name: "ARDDS National",
  2766. description: "Association nationale, 11 sections départementales/régionales. Apprentissage lecture labiale stages d'été et sections. Cogestion revue 6 millions malentendants. Représentation et défense malentendants/devenus sourds localement et nationalement.",
  2767. phone: "06 30 16 19 51",
  2768. sms: "",
  2769. email: "contact@ardds.org",
  2770. website: "ardds.org",
  2771. address: "MVAC 20\nBoite 82\n18-20 Rue Ramus\n75020 PARIS",
  2772. accessibility: [
  2773. "Sous-titrage", "lecture labiale", "BIM"
  2774. ],
  2775. lat: 48.8738,
  2776. lng: 2.4088
  2777. }, {
  2778. department: "78",
  2779. name: "Durd'Oreille",
  2780. description: "Conférences informations professionnels audition. Rencontres amicales, témoignages, partages expériences, sorties culturelles lieux accessibles DSME. Cours lecture labiale sur demande. Actions promotion accessibilité BIM lieux publics et culturels.",
  2781. phone: "06 37 88 59 45",
  2782. sms: "",
  2783. email: "durdoreille7892@gmail.com",
  2784. website: "https://durdoreille.fr/",
  2785. address: "62 Allée la Fontaine\n78170 La Celle Saint Cloud",
  2786. accessibility: [
  2787. "Sous-titrage", "lecture labiale", "BIM"
  2788. ],
  2789. lat: 48.8433,
  2790. lng: 2.1378
  2791. }, {
  2792. department: "84",
  2793. name: "Surdi 84",
  2794. description: "Association devenus sourds et malentendants oralistes. Séances lecture labiale avec orthophoniste professionnelle. Interventions collèges et écoles journées handicap. Prochainement EHPAD. Participation stands et forums.",
  2795. phone: "06.04.40.76.73",
  2796. sms: "",
  2797. email: "surdi84@gmail.com",
  2798. website: "https://surdi-84.webnode.fr/",
  2799. address: "309 rue Pierre Bonnard\n84000 Avignon",
  2800. accessibility: [
  2801. "Sous-titrage", "lecture labiale", "BIM"
  2802. ],
  2803. lat: 43.9493,
  2804. lng: 4.8059
  2805. }, {
  2806. department: "85",
  2807. name: "ARDDS 85",
  2808. description: "Promotion lecture labiale. 4 demi-journées annuelles découverte, initiation, entraînement lecture labiale. Sensibilisation, information, prévention troubles audition (écoles, lycées, bibliothèques). Soutien moral malentendants/entourage. Actions accessibilité lieux publics Vendée (tests BIM).",
  2809. phone: "06 08 97 44 33",
  2810. sms: "",
  2811. email: "ardds85@orange.fr",
  2812. website: "",
  2813. address: "Maison des Associations de Vendée\n184, boulevard Aristide Briand\n85000 La Roche-sur-Yon",
  2814. accessibility: [
  2815. "Sous-titrage", "lecture labiale", "BIM"
  2816. ],
  2817. lat: 46.6704,
  2818. lng: -1.4281
  2819. }, {
  2820. department: "87",
  2821. name: "ARDDS 87",
  2822. description: "Informer les adhérents et leur transférer les informations.",
  2823. phone: "06.78.32.23.33",
  2824. sms: "",
  2825. email: "section87@ardds.org",
  2826. website: "https://www.facebook.com/p/Devenus-Sourds-Limousin-100064922112575/?locale=zh_CN",
  2827. address: "16, rue Alfred de Vigny\n87100 LIMOGES",
  2828. accessibility: [
  2829. "Sous-titrage", "lecture labiale", "BIM"
  2830. ],
  2831. lat: 45.8336,
  2832. lng: 1.2611
  2833. }
  2834. ];
  2835. let map;
  2836. let markers = {}; // Stocker les marqueurs par ID d'association
  2837. // Initialisation de la carte
  2838. function initMap() { // Utiliser Leaflet (gratuit) au lieu de Google Maps
  2839. map = L.map('interactive-map').setView([
  2840. 46.603354, 1.888334
  2841. ], 6); // Centre de la France
  2842. L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {attribution: '© OpenStreetMap contributors'}).addTo(map);
  2843. // Ajouter les marqueurs
  2844. associations.forEach((association, index) => {
  2845. if (association.lat && association.lng) {
  2846. const marker = L.marker([association.lat, association.lng]);
  2847. // Ajouter l'événement de clic sur le marqueur
  2848. marker.on('click', function() {
  2849.     const associationId = `association-${index}`;
  2850.     const associationCard = document.querySelector(`[data-association-id="${associationId}"]`);
  2851.     
  2852.     if (associationCard) {
  2853.         // Retirer l'état actif de toutes les cartes
  2854.         document.querySelectorAll('.association-card').forEach(c => c.classList.remove('active'));
  2855.         
  2856.         // Activer la carte correspondante
  2857.         associationCard.classList.add('active');
  2858.         
  2859.         // Scroller vers la carte dans la sidebar
  2860.         const sidebar = document.querySelector('.associations-sidebar');
  2861.         const cardOffsetTop = associationCard.offsetTop - sidebar.offsetTop;
  2862.         
  2863.         sidebar.scrollTo({
  2864.             top: cardOffsetTop - 20, // 20px de marge
  2865.             behavior: 'smooth'
  2866.         });
  2867.         
  2868.         // Sur mobile, scroller vers la sidebar si elle n'est pas visible
  2869.         if (window.innerWidth <= 992) {
  2870.             setTimeout(() => {
  2871.                 const sidebarTop = sidebar.getBoundingClientRect().top + window.pageYOffset;
  2872.                 window.scrollTo({
  2873.                     top: sidebarTop - 20,
  2874.                     behavior: 'smooth'
  2875.                 });
  2876.             }, 150);
  2877.         }
  2878.     }
  2879. });
  2880. marker.addTo(map);
  2881. // Stocker le marqueur avec l'index comme clé
  2882. markers[`association-${index}`] = marker;
  2883. }
  2884. });
  2885. }
  2886. // Affichage en liste
  2887. function displayAssociationsList() {
  2888. const grid = document.getElementById('associations-grid');
  2889. grid.innerHTML = '';
  2890. associations.forEach((association, index) => {
  2891. const card = document.createElement('div');
  2892. card.className = 'association-card';
  2893. card.dataset.associationId = `association-${index}`;
  2894. card.innerHTML = `
  2895.             <div class="association-header">
  2896.                 <h3 class="association-name">${association.name}</h3>
  2897.                 <span class="department-badge">${association.department}</span>
  2898.             </div>
  2899.             
  2900.             ${association.description ? `<p class="association-description">${association.description}</p>` : ''}
  2901.             
  2902.             <div class="association-contacts">
  2903.                 ${association.phone ? `<div class="contact-item">📞 <a href="tel:${association.phone}">${association.phone}</a></div>` : ''}
  2904.                 ${association.email ? `<div class="contact-item">✉️ <a href="mailto:${association.email}">${association.email}</a></div>` : ''}
  2905.                 ${association.website ? `<div class="contact-item">🌐 <a href="${association.website}" target="_blank">Site web</a></div>` : ''}
  2906.             </div>
  2907.             
  2908.             ${association.address ? `<div class="contact-item">📍 ${association.address}</div>` : ''}
  2909.             
  2910.             <div class="accessibility-types">
  2911.                 ${association.accessibility.map(type => `<span class="accessibility-badge">${type}</span>`).join('')}
  2912.             </div>
  2913.         `;
  2914. // Ajouter l'événement de clic pour interagir avec la carte
  2915. card.addEventListener('click', function() {
  2916.     const associationId = this.dataset.associationId;
  2917.     const marker = markers[associationId];
  2918.     
  2919.     if (marker && association.lat && association.lng) {
  2920.         // Centrer la carte sur le marqueur
  2921.         map.setView([association.lat, association.lng], 12);
  2922.         
  2923.         // Effet visuel sur la carte sélectionnée
  2924.         document.querySelectorAll('.association-card').forEach(c => c.classList.remove('active'));
  2925.         this.classList.add('active');
  2926.         
  2927.         // Sur mobile, faire un scroll vers la carte si elle n'est pas visible
  2928.         if (window.innerWidth <= 992) {
  2929.             setTimeout(() => {
  2930.                 document.getElementById('interactive-map').scrollIntoView({ 
  2931.                     behavior: 'smooth', 
  2932.                     block: 'start',
  2933.                     inline: 'nearest'
  2934.                 });
  2935.             }, 200);
  2936.         }
  2937.     }
  2938. });
  2939. grid.appendChild(card);
  2940. });
  2941. }
  2942. // Initialisation de la carte et de la liste
  2943. document.addEventListener('DOMContentLoaded', function () {
  2944.     // Charger Leaflet
  2945.     const leafletCSS = document.createElement('link');
  2946.     leafletCSS.rel = 'stylesheet';
  2947.     leafletCSS.href = 'https://unpkg.com/leaflet@1.9.4/dist/leaflet.css';
  2948.     document.head.appendChild(leafletCSS);
  2949.     const leafletJS = document.createElement('script');
  2950.     leafletJS.src = 'https://unpkg.com/leaflet@1.9.4/dist/leaflet.js';
  2951.     leafletJS.onload = function() {
  2952.         initMap();
  2953.         displayAssociationsList(); // Afficher la liste directement
  2954.     };
  2955.     document.head.appendChild(leafletJS);
  2956.     // Géolocalisation pour RDV audioprothésiste
  2957.     const findProButton = document.getElementById('findProButton');
  2958.     
  2959.     if (findProButton) {
  2960.         findProButton.addEventListener('click', function() {
  2961.             this.disabled = true;
  2962.             this.textContent = 'Localisation en cours...';
  2963.             
  2964.             if (navigator.geolocation) {
  2965.                 navigator.geolocation.getCurrentPosition(
  2966.                     function(position) {
  2967.                         const latitude = position.coords.latitude;
  2968.                         const longitude = position.coords.longitude;
  2969.                         
  2970.                         // Récupérer la ville via geocoding inverse (optionnel)
  2971.                         fetch(`https://api.opencagedata.com/geocode/v1/json?q=${latitude}+${longitude}&key=YOUR_API_KEY&language=fr&pretty=1`)
  2972.                             .then(response => response.json())
  2973.                             .then(data => {
  2974.                                 let cityName = '';
  2975.                                 let postalCode = '';
  2976.                                 
  2977.                                 if (data.results && data.results.length > 0) {
  2978.                                     const components = data.results[0].components;
  2979.                                     cityName = components.city || components.town || components.village || '';
  2980.                                     postalCode = components.postcode || '';
  2981.                                 }
  2982.                                 
  2983.                                 // Construire l'URL MyAudio avec géolocalisation
  2984.                                 let myaudioUrl = `https://www.myaudio.fr/search?latitude=${latitude}&longitude=${longitude}`;
  2985.                                 if (postalCode) {
  2986.                                     myaudioUrl += `&ville=${postalCode}`;
  2987.                                 }
  2988.                                 
  2989.                                 // Rediriger vers MyAudio
  2990.                                 window.open(myaudioUrl, '_blank');
  2991.                                 
  2992.                                 // Remettre le bouton en état normal
  2993.                                 findProButton.disabled = false;
  2994.                                 findProButton.textContent = 'Trouver un audioprothésiste';
  2995.                             })
  2996.                             .catch(error => {
  2997.                                 // Si le geocoding échoue, utiliser juste les coordonnées
  2998.                                 const myaudioUrl = `https://www.myaudio.fr/search?latitude=${latitude}&longitude=${longitude}`;
  2999.                                 window.open(myaudioUrl, '_blank');
  3000.                                 
  3001.                                 findProButton.disabled = false;
  3002.                                 findProButton.textContent = 'Trouver un audioprothésiste';
  3003.                             });
  3004.                     },
  3005.                     function(error) {
  3006.                         // Géolocalisation refusée ou échouée
  3007.                         let errorMessage = 'Impossible d\'accéder à votre localisation. ';
  3008.                         
  3009.                         switch(error.code) {
  3010.                             case error.PERMISSION_DENIED:
  3011.                                 errorMessage += 'Vous avez refusé la géolocalisation.';
  3012.                                 break;
  3013.                             case error.POSITION_UNAVAILABLE:
  3014.                                 errorMessage += 'Position indisponible.';
  3015.                                 break;
  3016.                             case error.TIMEOUT:
  3017.                                 errorMessage += 'Délai d\'attente dépassé.';
  3018.                                 break;
  3019.                         }
  3020.                         
  3021.                         alert(errorMessage + ' Vous allez être redirigé vers la recherche générale.');
  3022.                         
  3023.                         // Rediriger vers la page de recherche générale
  3024.                         window.open('https://www.myaudio.fr/search', '_blank');
  3025.                         
  3026.                         // Remettre le bouton en état normal
  3027.                         findProButton.disabled = false;
  3028.                         findProButton.textContent = 'Trouver un audioprothésiste';
  3029.                     },
  3030.                     {
  3031.                         enableHighAccuracy: true,
  3032.                         timeout: 10000,
  3033.                         maximumAge: 300000 // 5 minutes
  3034.                     }
  3035.                 );
  3036.             } else {
  3037.                 // Navigateur ne supporte pas la géolocalisation
  3038.                 alert('Votre navigateur ne supporte pas la géolocalisation. Vous allez être redirigé vers la recherche générale.');
  3039.                 window.open('https://www.myaudio.fr/search', '_blank');
  3040.                 
  3041.                 findProButton.disabled = false;
  3042.                 findProButton.textContent = 'Trouver un audioprothésiste';
  3043.             }
  3044.         });
  3045.     }
  3046. });
  3047.         </script>
  3048.     </body>
  3049. </html>