{"id":145,"date":"2026-01-13T15:47:53","date_gmt":"2026-01-13T14:47:53","guid":{"rendered":"http:\/\/traveltennis.com\/?page_id=145"},"modified":"2026-01-20T09:51:57","modified_gmt":"2026-01-20T08:51:57","slug":"ton-projet-tennis","status":"publish","type":"page","link":"http:\/\/traveltennis.com\/en\/ton-projet-tennis\/","title":{"rendered":"2.2. Ton Projet Tennis"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"145\" class=\"elementor elementor-145\">\n\t\t\t\t<div class=\"elementor-element elementor-element-db7a0b9 e-flex e-con-boxed e-con e-parent\" data-id=\"db7a0b9\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f6ea546 elementor-widget elementor-widget-html\" data-id=\"f6ea546\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section style=\"max-width:1140px; margin:24px auto; padding:0 20px;\">\n\n <!-- HERO AVEC PHOTO \u00c0 DROITE (pleine hauteur) + DIAGONALE TYPE EXEMPLE + D\u00c9GRAD\u00c9 -->\n<div style=\"border-radius:18px; background:linear-gradient(135deg,#000 0%, #0E0E0E 50%, #000 100%); color:#fff; overflow:hidden;\">\n  <div class=\"tt-hero-projet2\">\n\n    <!-- ZONE TEXTE -->\n    <div class=\"tt-hero-projet2__text\">\n      <div style=\"display:inline-block; padding:6px 12px; border-radius:999px; background:rgba(255,255,255,0.10); font-size:14px; margin-bottom:14px;\">\n        Accompagnement \u2022 Vision long terme \u2022 Performance\n      <\/div>\n\n      <h1 style=\"margin:0 0 14px; font-size:44px; line-height:1.08; color:#E76F1D;\">\n        Ton projet tennis\n      <\/h1>\n\n      <p style=\"margin:0; font-size:18px; line-height:1.7; opacity:0.92; max-width:760px;\">\n        Chaque enfant progresse \u00e0 son rythme. Chaque histoire est diff\u00e9rente.\n        <strong>Notre mission :<\/strong> aider les familles \u00e0 construire un projet tennis clair, structur\u00e9 et r\u00e9aliste, sans br\u00fbler les \u00e9tapes.\n        <strong>Nous aidons les familles \u00e0 faire les bons choix, au bon moment, dans le parcours tennis de leur enfant.<\/strong>\n      <\/p>\n    <\/div>\n\n    <!-- ZONE PHOTO (absolue, pleine hauteur) -->\n    <div class=\"tt-hero-projet2__media\" aria-hidden=\"true\">\n      <div class=\"tt-hero-projet2__mediaClip\">\n        <img decoding=\"async\" src=\"http:\/\/traveltennis.com\/wp-content\/uploads\/2026\/01\/eb6d910f-451a-4af9-afaf-95292a6e4335-md.jpg\" alt=\"\">\n        <div class=\"tt-hero-projet2__shade\"><\/div>\n      <\/div>\n    <\/div>\n\n  <\/div>\n<\/div>\n\n<style>\n\/* HERO layout *\/\n.tt-hero-projet2{\n  position: relative;\n  display: block;\n  min-height: 320px;              \/* \u2705 donne une vraie hauteur au bandeau *\/\n}\n\n\/* zone texte : on met du padding ici (pas sur toute la rang\u00e9e) *\/\n.tt-hero-projet2__text{\n  position: relative;\n  z-index: 2;\n  padding: 70px 22px;\n  padding-right: 40%;             \/* \u2705 r\u00e9serve la place de la photo (\u2248 1\/3) *\/\n  min-width: 280px;\n}\n\n\/* zone media : colle \u00e0 droite, pleine hauteur *\/\n.tt-hero-projet2__media{\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;                      \/* \u2705 pleine hauteur *\/\n  width: 36%;                     \/* \u2248 1\/3 (ajuste 34-38% si besoin) *\/\n  z-index: 1;\n}\n\n\/* \u2705 Clip diagonale \u201ccomme ton exemple\u201d sur le conteneur photo *\/\n.tt-hero-projet2__mediaClip{\n  position: absolute;\n  inset: 0;\n  overflow: hidden;\n  \/* diagonale sur le bord GAUCHE de la photo *\/\n  -webkit-clip-path: polygon(\n    18% 0,     \/* haut gauche rentr\u00e9 *\/\n    100% 0,    \/* haut droit *\/\n    100% 100%, \/* bas droit *\/\n    0 100%,    \/* bas gauche *\/\n    0 78%      \/* point gauche bas qui cr\u00e9e la pente *\/\n  );\n  clip-path: polygon(\n    18% 0,\n    100% 0,\n    100% 100%,\n    0 100%,\n    0 78%\n  );\n}\n\n\/* image : elle remplit la hauteur du rectangle *\/\n.tt-hero-projet2__mediaClip img{\n  width: 100%;\n  height: 100%;\n  object-fit: cover;              \/* \u2705 la photo s\u2019adapte \u00e0 la hauteur *\/\n  display: block;\n  transform: scale(1.02);\n}\n\n\/* \u2705 d\u00e9grad\u00e9 premium : fondre la photo dans le noir *\/\n.tt-hero-projet2__shade{\n  position: absolute;\n  inset: 0;\n  pointer-events: none;\n  background:\n    linear-gradient(90deg,\n      rgba(0,0,0,0.75) 0%,\n      rgba(0,0,0,0.35) 35%,\n      rgba(0,0,0,0.00) 70%\n    ),\n    linear-gradient(180deg,\n      rgba(0,0,0,0.00) 0%,\n      rgba(0,0,0,0.18) 60%,\n      rgba(0,0,0,0.40) 100%\n    );\n}\n\n\/* responsive : sur mobile, photo dessous + rectangle *\/\n@media (max-width: 900px){\n  .tt-hero-projet2{\n    min-height: unset;\n  }\n  .tt-hero-projet2__text{\n    padding: 56px 18px 18px;\n    padding-right: 18px;\n  }\n  .tt-hero-projet2__media{\n    position: relative;\n    width: 100%;\n    height: 260px;\n  }\n  .tt-hero-projet2__mediaClip{\n    clip-path: none;\n    -webkit-clip-path: none;\n  }\n}\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f038f14 e-flex e-con-boxed e-con e-parent\" data-id=\"f038f14\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-35c721f elementor-widget elementor-widget-html\" data-id=\"35c721f\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t  <!-- INTRO -->\n  <div style=\"margin-top:22px; background:#fff; border:1px solid rgba(11,45,69,0.10); border-radius:18px; padding:22px; box-shadow:0 10px 22px rgba(0,0,0,0.06);\">\n    <h2 style=\"margin:0 0 10px; font-size:26px; color:#0B2D45;\">Une vision globale et \u00e9volutive<\/h2>\n    <p style=\"margin:0; color:rgba(11,45,69,0.82); line-height:1.7;\">\n      Chez Travel Tennis, nous accompagnons les joueurs <strong>par tranche d\u2019\u00e2ge<\/strong>, en tenant compte de leur d\u00e9veloppement physique, mental, scolaire et sportif \u2014 mais aussi de ce que vivent les familles au quotidien.\n      L\u2019objectif n\u2019est pas d\u2019aller trop vite, mais d\u2019avancer <strong>avec coh\u00e9rence<\/strong>, \u00e9tape apr\u00e8s \u00e9tape, pour construire un parcours solide et durable.\n    <\/p>\n  <\/div>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-40853d0 e-flex e-con-boxed e-con e-parent\" data-id=\"40853d0\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5b33250 elementor-widget elementor-widget-html\" data-id=\"5b33250\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- PROGRAMMES PAR \u00c2GE -->\n<div style=\"display:grid; gap:18px; margin-top:18px;\">\n\n  <!-- 4\u20136 ans -->\n  <div class=\"tt-program-card\" style=\"background:#F4F6F8; border-radius:18px; border:1px solid rgba(11,45,69,0.10); --tt-photo:url('http:\/\/traveltennis.com\/wp-content\/uploads\/2026\/01\/2F54C883-A411-4D01-A120-C360A8CFB15B_1_105_c.jpeg');\">\n    <div class=\"tt-program-card__content\">\n      <h3 style=\"margin:0 0 6px; font-size:22px; color:#0B2D45;\">Programme 4 \u2013 6 ans: Les pitchoun's<\/h3>\n      <strong style=\"color:#1F5F3B;\">D\u00e9couverte du mini tennis<\/strong>\n      <p style=\"margin:10px 0 0; color:rgba(11,45,69,0.82); line-height:1.7;\">\n        \u00c0 cet \u00e2ge, le tennis doit rester un jeu. Le programme est bas\u00e9 sur le <strong>mini-tennis<\/strong>, la motricit\u00e9, la coordination et le plaisir de taper dans la balle \u2014 pour donner \u00e0 l\u2019enfant l\u2019envie de jouer\u2026 et de revenir.\n      <\/p>\n      <ul style=\"margin:10px 0 0; padding-left:18px; line-height:1.8; color:rgba(11,45,69,0.88);\">\n        <li>D\u00e9couverte du tennis par le jeu<\/li>\n        <li>D\u00e9veloppement moteur & coordination<\/li>\n        <li>Premiers rep\u00e8res : prise, posture, d\u00e9placements<\/li>\n        <li>Confiance, plaisir et envie de progresser<\/li>\n      <\/ul>\n    <\/div>\n    <div class=\"tt-program-card__media\" aria-hidden=\"true\"><\/div>\n  <\/div>\n<\/div>\n\n<style>\n\/* PROGRAM CARD : texte \u00e0 gauche (2\/3) + photo \u00e0 droite (1\/3), sans chevauchement *\/\n.tt-program-card{\n  display: grid;\n  grid-template-columns: 2fr 1fr; \/* 2\/3 + 1\/3 *\/\n  gap: 0;\n  overflow: hidden; \/* respecte border-radius *\/\n  padding: 0 !important; \/* padding d\u00e9plac\u00e9 dans le contenu *\/\n}\n\n\/* zone texte : padding identique \u00e0 avant *\/\n.tt-program-card__content{\n  padding: 22px;\n  min-width: 0; \/* \u00e9vite d\u00e9bordement dans la colonne image *\/\n}\n\n\/* zone photo : prend toute la hauteur et remplit *\/\n.tt-program-card__media{\n  min-height: 100%;\n  background-image: var(--tt-photo);\n  background-size: cover;\n  background-position: center;\n}\n\n\/* \u2705 Effet \u201ctransparent -> plein\u201d LONG & DOUX sur l\u2019image (de gauche vers droite) *\/\n.tt-program-card__media{\n  -webkit-mask-image: linear-gradient(90deg,\n    rgba(0,0,0,0) 0%,\n    rgba(0,0,0,0.15) 20%,\n    rgba(0,0,0,0.35) 40%,\n    rgba(0,0,0,0.65) 65%,\n    rgba(0,0,0,1) 85%,\n    rgba(0,0,0,1) 100%\n  );\n  mask-image: linear-gradient(90deg,\n    rgba(0,0,0,0) 0%,\n    rgba(0,0,0,0.15) 20%,\n    rgba(0,0,0,0.35) 40%,\n    rgba(0,0,0,0.65) 65%,\n    rgba(0,0,0,1) 85%,\n    rgba(0,0,0,1) 100%\n  );\n}\n\n\/* Mobile : image en dessous, effet \u201ctransparent -> plein\u201d du haut vers le bas *\/\n@media (max-width: 900px){\n  .tt-program-card{\n    grid-template-columns: 1fr;\n  }\n  .tt-program-card__media{\n    height: 240px;\n    -webkit-mask-image: linear-gradient(180deg,\n      rgba(0,0,0,0) 0%,\n      rgba(0,0,0,0.15) 20%,\n      rgba(0,0,0,0.35) 40%,\n      rgba(0,0,0,0.65) 65%,\n      rgba(0,0,0,1) 85%,\n      rgba(0,0,0,1) 100%\n    );\n    mask-image: linear-gradient(180deg,\n      rgba(0,0,0,0) 0%,\n      rgba(0,0,0,0.15) 20%,\n      rgba(0,0,0,0.35) 40%,\n      rgba(0,0,0,0.65) 65%,\n      rgba(0,0,0,1) 85%,\n      rgba(0,0,0,1) 100%\n    );\n  }\n}\n<\/style>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-685db3b e-flex e-con-boxed e-con e-parent\" data-id=\"685db3b\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3d7071d elementor-widget elementor-widget-html\" data-id=\"3d7071d\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- =========================\nPROGRAMME 7\u201310 + BOUTON \"Faire un test rapide\" + POPUP QUIZ 7\u201310\n\u2705 Le test ne s\u2019affiche pas dans la page\n\u2705 Un bouton ouvre une popup (modal)\n\u2705 On r\u00e9pond question par question\n\u2705 Synth\u00e8se \u00e0 la fin + bouton fermer\n========================= -->\n\n<!-- 7\u201310 ans -->\n<div class=\"tt-program-card\" style=\"background:#fff; border-radius:18px; border:1px solid rgba(11,45,69,0.10); box-shadow:0 10px 22px rgba(0,0,0,0.05); --tt-photo:url('http:\/\/traveltennis.com\/wp-content\/uploads\/2026\/01\/041EAEAD-D7FC-4CE3-9109-0783A238D8A9_1_105_c.jpeg');\">\n  <div class=\"tt-program-card__content\">\n    <h3 style=\"margin:0 0 6px; font-size:22px; color:#0B2D45;\">Programme 7 \u2013 10 ans<\/h3>\n    <strong style=\"color:#E76F1D;\">Tennis Galaxie : poser les bases d\u2019un programme orient\u00e9 comp\u00e9tition<\/strong>\n    <p style=\"margin:10px 0 0; color:rgba(11,45,69,0.82); line-height:1.7;\">\n      Cette phase est essentielle pour construire le futur joueur : apprentissage technique structur\u00e9, introduction progressive au match (formats adapt\u00e9s),\n      et premi\u00e8res habitudes de pr\u00e9paration \u2014 sans mettre le r\u00e9sultat au-dessus du plaisir et de la progression.\n    <\/p>\n    <ul style=\"margin:10px 0 0; padding-left:18px; line-height:1.8; color:rgba(11,45,69,0.88);\">\n      <li>Bases techniques : r\u00e9gularit\u00e9, trajectoires, zones<\/li>\n      <li>D\u00e9couverte des matchs & r\u00e8gles<\/li>\n      <li>Groupes par niveau + objectifs simples<\/li>\n      <li>Premiers tournois \/ rencontres selon profil<\/li>\n    <\/ul>\n\n    <!-- \u2705 BOUTON -->\n    <div style=\"margin-top:14px; display:flex; gap:10px; flex-wrap:wrap;\">\n      <button type=\"button\" data-tt710-open\n style=\"padding:12px 14px; border-radius:12px; border:none; cursor:pointer; background:#E76F1D; color:#fff; font-weight:900; box-shadow:0 10px 22px rgba(231,111,29,0.25);\">\n        Faire un test rapide (2 min)\n      <\/button>\n    <\/div>\n  <\/div>\n\n  <div class=\"tt-program-card__media\" aria-hidden=\"true\"><\/div>\n<\/div>\n\n<!-- =========================\nPOPUP (MODAL) QUIZ 7\u201310\n========================= -->\n<div id=\"tt710Modal\" class=\"tt-modal\" aria-hidden=\"true\" role=\"dialog\" aria-modal=\"true\">\n  <div class=\"tt-modal__backdrop\" data-tt710-close><\/div>\n\n  <div class=\"tt-modal__panel\" role=\"document\">\n    <div class=\"tt-modal__header\">\n      <div>\n        <div class=\"tt-badge\">Questionnaire 7\u201310 ans \u2022 2 minutes<\/div>\n        <div class=\"tt-title\">Motivation tennis (7\u201310 ans)<\/div>\n        <div class=\"tt-subtitle\">Coche la r\u00e9ponse qui te ressemble le plus. Il n\u2019y a pas de bonne ou de mauvaise r\u00e9ponse.<\/div>\n      <\/div>\n      <button class=\"tt-close\" type=\"button\" aria-label=\"Fermer\" data-tt710-close>\u2715<\/button>\n    <\/div>\n\n    <!-- Progress -->\n    <div class=\"tt-progressWrap\">\n      <div class=\"tt-progress\">\n        <div id=\"tt710ProgBar\" class=\"tt-progress__bar\"><\/div>\n      <\/div>\n      <div id=\"tt710ProgText\" class=\"tt-progress__txt\">1 \/ 18<\/div>\n    <\/div>\n\n    <!-- Question card -->\n    <div id=\"tt710Card\" class=\"tt-card\">\n      <div class=\"tt-card__top\">\n        <div>\n          <div id=\"tt710Section\" class=\"tt-section\">\u2014<\/div>\n          <div id=\"tt710Question\" class=\"tt-question\">\u2014<\/div>\n        <\/div>\n        <div class=\"tt-chip\">\u00c0 cocher<\/div>\n      <\/div>\n\n      <div id=\"tt710Options\" class=\"tt-options\"><\/div>\n\n      <div class=\"tt-nav\">\n        <button id=\"tt710Prev\" type=\"button\" class=\"tt-btn tt-btn--ghost\">\u2190 Pr\u00e9c\u00e9dent<\/button>\n        <div id=\"tt710Hint\" class=\"tt-hint\">Choisis une r\u00e9ponse pour continuer.<\/div>\n        <button id=\"tt710Next\" type=\"button\" class=\"tt-btn tt-btn--primary\">Suivant \u2192<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- Result -->\n    <div id=\"tt710Result\" class=\"tt-result\" style=\"display:none;\">\n      <div class=\"tt-result__head\">\n        <div class=\"tt-title\" style=\"font-size:20px; margin:0;\">Ta synth\u00e8se<\/div>\n        <p id=\"tt710Summary\" class=\"tt-result__summary\"><\/p>\n      <\/div>\n\n      <div class=\"tt-scoreGrid\">\n        <div class=\"tt-scoreCard\">\n          <div class=\"tt-scoreTitle\">Plaisir de jouer<\/div>\n          <div id=\"tt710ScoreFun\" class=\"tt-scoreText\"><\/div>\n        <\/div>\n        <div class=\"tt-scoreCard\">\n          <div class=\"tt-scoreTitle\">Envie d\u2019apprendre<\/div>\n          <div id=\"tt710ScoreLearn\" class=\"tt-scoreText\"><\/div>\n        <\/div>\n        <div class=\"tt-scoreCard\">\n          <div class=\"tt-scoreTitle\">\u00c9motions & erreurs<\/div>\n          <div id=\"tt710ScoreErrors\" class=\"tt-scoreText\"><\/div>\n        <\/div>\n        <div class=\"tt-scoreCard\">\n          <div class=\"tt-scoreTitle\">Confiance & soutien<\/div>\n          <div id=\"tt710ScoreSupport\" class=\"tt-scoreText\"><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"tt-result__actions\">\n        <button id=\"tt710Restart\" type=\"button\" class=\"tt-btn tt-btn--ghost\">Refaire le test<\/button>\n        <button id=\"tt710Copy\" type=\"button\" class=\"tt-btn tt-btn--success\">Copier la synth\u00e8se<\/button>\n        <button type=\"button\" data-tt710-close class=\"tt-btn tt-btn--primary\">Fermer<\/button>\n      <\/div>\n\n      <p class=\"tt-footnote\">Note : ce questionnaire donne une tendance. Pour aider au mieux l\u2019enfant, l\u2019observation et l\u2019\u00e9change restent essentiels.<\/p>\n    <\/div>\n\n  <\/div>\n<\/div>\n\n<style>\n\/* ===== Modal styles (isol\u00e9s) ===== *\/\n.tt-modal{ position:fixed; inset:0; display:none; z-index:9999; }\n.tt-modal[aria-hidden=\"false\"]{ display:block; }\n.tt-modal__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,0.55); }\n.tt-modal__panel{\n  position:relative;\n  width:min(920px, calc(100% - 24px));\n  max-height: calc(100vh - 24px);\n  overflow:auto;\n  margin:12px auto;\n  background:#fff;\n  border-radius:18px;\n  border:1px solid rgba(11,45,69,0.12);\n  box-shadow:0 20px 60px rgba(0,0,0,0.30);\n  padding:16px;\n}\n.tt-modal__header{\n  display:flex; gap:10px; justify-content:space-between; align-items:flex-start;\n  padding:6px 6px 12px;\n  border-bottom:1px solid rgba(11,45,69,0.10);\n}\n.tt-close{\n  border:none; background:#F4F6F8; cursor:pointer;\n  border-radius:12px; padding:10px 12px; font-weight:900; color:#0B2D45;\n}\n.tt-badge{\n  display:inline-block; padding:6px 12px; border-radius:999px;\n  background:rgba(11,45,69,0.06); color:#0B2D45; font-size:13px; font-weight:900;\n}\n.tt-title{ font-size:24px; font-weight:900; color:#0B2D45; margin-top:8px; }\n.tt-subtitle{ font-size:13px; color:rgba(11,45,69,0.65); margin-top:4px; line-height:1.6; }\n\n\/* Progress *\/\n.tt-progressWrap{ display:flex; align-items:center; gap:12px; margin:14px 6px 10px; }\n.tt-progress{ flex:1; height:10px; background:rgba(11,45,69,0.08); border-radius:999px; overflow:hidden; }\n.tt-progress__bar{ height:100%; width:0%; background:#1F5F3B; border-radius:999px; transition:width .25s ease; }\n.tt-progress__txt{ min-width:92px; font-weight:900; font-size:13px; color:#0B2D45; }\n\n\/* Card *\/\n.tt-card{\n  margin:10px 6px 6px;\n  background:#F4F6F8; border-radius:18px; padding:16px;\n  border:1px solid rgba(11,45,69,0.10);\n}\n.tt-card__top{ display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }\n.tt-section{ font-size:12px; letter-spacing:0.02em; text-transform:uppercase; color:rgba(11,45,69,0.65); font-weight:900; }\n.tt-question{ margin-top:6px; font-size:18px; line-height:1.5; color:#0B2D45; font-weight:900; }\n.tt-chip{\n  display:inline-block; padding:6px 10px; border-radius:999px;\n  background:rgba(11,45,69,0.06); color:#0B2D45; font-weight:900; font-size:12px;\n}\n.tt-options{ margin-top:14px; display:grid; gap:10px; }\n.tt-option{\n  display:flex; align-items:flex-start; gap:10px;\n  background:#fff; border:1px solid rgba(11,45,69,0.10);\n  border-radius:14px; padding:12px; cursor:pointer;\n}\n.tt-option input{ margin-top:4px; transform:scale(1.15); }\n\n\/* Nav \/ buttons *\/\n.tt-nav{ display:flex; gap:10px; justify-content:space-between; align-items:center; margin-top:14px; flex-wrap:wrap; }\n.tt-hint{ font-size:13px; color:rgba(11,45,69,0.70); }\n\n.tt-btn{\n  padding:11px 14px; border-radius:12px;\n  cursor:pointer; font-weight:900;\n  display:inline-flex; align-items:center; gap:8px;\n}\n.tt-btn--ghost{ border:1px solid rgba(11,45,69,0.14); background:#fff; color:#0B2D45; }\n.tt-btn--primary{ border:none; background:#E76F1D; color:#fff; box-shadow:0 10px 22px rgba(231,111,29,0.25); }\n.tt-btn--success{ border:none; background:#1F5F3B; color:#fff; box-shadow:0 10px 22px rgba(31,95,59,0.25); }\n\n\/* Result *\/\n.tt-result{ margin:10px 6px 6px; }\n.tt-result__summary{ margin:10px 0 12px; line-height:1.7; color:rgba(11,45,69,0.82); }\n.tt-scoreGrid{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; }\n.tt-scoreCard{\n  background:#F4F6F8; border:1px solid rgba(11,45,69,0.10);\n  border-radius:16px; padding:14px;\n}\n.tt-scoreTitle{ font-weight:900; color:#0B2D45; }\n.tt-scoreText{ margin-top:6px; font-size:14px; color:rgba(11,45,69,0.82); }\n.tt-result__actions{ display:flex; gap:10px; margin-top:14px; flex-wrap:wrap; }\n.tt-footnote{ margin:10px 0 0; font-size:12px; color:rgba(11,45,69,0.60); line-height:1.5; }\n\n@media (max-width: 900px){\n  .tt-scoreGrid{ grid-template-columns:1fr; }\n}\n<\/style>\n\n<script>\n(function(){\n  \/\/ ===== OPEN\/CLOSE MODAL =====\n  const modal = document.getElementById(\"tt710Modal\");\n  const openBtn = document.querySelector(\"[data-tt710-open]\");\n  const closeEls = modal.querySelectorAll(\"[data-tt710-close]\");\n\n  function openModal(){\n    modal.setAttribute(\"aria-hidden\",\"false\");\n    document.documentElement.style.overflow = \"hidden\";\n    document.body.style.overflow = \"hidden\";\n    resetQuiz(false); \/\/ ouvre au d\u00e9but, sans forcer reset des r\u00e9ponses si tu veux conserver; ici on reset\n  }\n  function closeModal(){\n    modal.setAttribute(\"aria-hidden\",\"true\");\n    document.documentElement.style.overflow = \"\";\n    document.body.style.overflow = \"\";\n  }\n\n  openBtn.addEventListener(\"click\", openModal);\n  closeEls.forEach(el => el.addEventListener(\"click\", closeModal));\n\n  \/\/ Fermer avec ESC\n  document.addEventListener(\"keydown\", (e)=>{\n    if (e.key === \"Escape\" && modal.getAttribute(\"aria-hidden\") === \"false\"){\n      closeModal();\n    }\n  });\n\n  \/\/ ===== QUIZ LOGIC (7\u201310) =====\n  const scale = [\n    { label:\"\ud83d\ude42 Pas du tout vrai\", val:1 },\n    { label:\"\ud83d\ude10 Un peu vrai\", val:2 },\n    { label:\"\ud83d\ude00 Tr\u00e8s vrai\", val:3 },\n  ];\n\n  const questions = [\n    { section:\"Plaisir\", text:\"J\u2019aime jouer au tennis.\", axes:{ fun:+1 } },\n    { section:\"Plaisir\", text:\"Je suis content(e) quand je vais \u00e0 l\u2019entra\u00eenement.\", axes:{ fun:+1 } },\n    { section:\"Plaisir\", text:\"J\u2019aimerais jouer au tennis m\u00eame sans comp\u00e9tition.\", axes:{ fun:+1 } },\n    { section:\"Plaisir\", text:\"Je m\u2019amuse quand je joue, m\u00eame si je perds.\", axes:{ fun:+1, errors:+1 } },\n\n    { section:\"Entra\u00eenement\", text:\"J\u2019aime apprendre de nouveaux coups.\", axes:{ learn:+1 } },\n    { section:\"Entra\u00eenement\", text:\"Quand c\u2019est difficile, j\u2019essaie encore.\", axes:{ learn:+1 } },\n    { section:\"Entra\u00eenement\", text:\"J\u2019aime quand l\u2019entra\u00eenement ressemble \u00e0 un jeu.\", axes:{ fun:+1 } },\n    { section:\"Entra\u00eenement\", text:\"Je me fatigue vite \u00e0 l\u2019entra\u00eenement.\", axes:{ learn:+1 }, reverse:true },\n\n    { section:\"Matchs\", text:\"J\u2019aime jouer des matchs.\", axes:{ fun:+1 } },\n    { section:\"Matchs\", text:\"J\u2019ai peur de perdre un match.\", axes:{ support:+1 }, reverse:false },\n    { section:\"Matchs\", text:\"Quand je perds, j\u2019ai envie de rejouer.\", axes:{ learn:+1, errors:+1 } },\n    { section:\"Matchs\", text:\"Je suis fier\/fi\u00e8re quand j\u2019ai bien jou\u00e9, m\u00eame si je n\u2019ai pas gagn\u00e9.\", axes:{ learn:+1 } },\n\n    { section:\"\u00c9motions\", text:\"Quand je rate, \u00e7a me met en col\u00e8re.\", axes:{ errors:+1 }, reverse:false },\n    { section:\"\u00c9motions\", text:\"J\u2019accepte de faire des erreurs pour apprendre.\", axes:{ errors:+1 }, reverse:true },\n    { section:\"\u00c9motions\", text:\"Quand je fais une erreur, je continue quand m\u00eame.\", axes:{ errors:+1 }, reverse:true },\n\n    { section:\"Soutien\", text:\"Je joue mieux quand on m\u2019encourage.\", axes:{ support:+1 } },\n    { section:\"Soutien\", text:\"J\u2019ai peur de d\u00e9cevoir mes parents quand je perds.\", axes:{ support:+1 }, reverse:false },\n    { section:\"Soutien\", text:\"J\u2019aime quand mes parents me disent que j\u2019ai bien essay\u00e9.\", axes:{ support:+1 }, reverse:true },\n  ];\n\n  const axes = { fun:{}, learn:{}, errors:{}, support:{} };\n\n  let idx = 0;\n  let answers = new Array(questions.length).fill(null);\n\n  const elSection = document.getElementById(\"tt710Section\");\n  const elQ = document.getElementById(\"tt710Question\");\n  const elOpts = document.getElementById(\"tt710Options\");\n  const elPrev = document.getElementById(\"tt710Prev\");\n  const elNext = document.getElementById(\"tt710Next\");\n  const elHint = document.getElementById(\"tt710Hint\");\n  const elProgBar = document.getElementById(\"tt710ProgBar\");\n  const elProgText = document.getElementById(\"tt710ProgText\");\n  const elCard = document.getElementById(\"tt710Card\");\n  const elResult = document.getElementById(\"tt710Result\");\n\n  const elSummary = document.getElementById(\"tt710Summary\");\n  const elScoreFun = document.getElementById(\"tt710ScoreFun\");\n  const elScoreLearn = document.getElementById(\"tt710ScoreLearn\");\n  const elScoreErrors = document.getElementById(\"tt710ScoreErrors\");\n  const elScoreSupport = document.getElementById(\"tt710ScoreSupport\");\n  const elRestart = document.getElementById(\"tt710Restart\");\n  const elCopy = document.getElementById(\"tt710Copy\");\n\n  function pct(done,total){ return Math.round((done\/total)*100); }\n\n  function render(){\n    elProgBar.style.width = pct(idx, questions.length) + \"%\";\n    elProgText.textContent = (idx+1) + \" \/ \" + questions.length;\n\n    elPrev.disabled = (idx === 0);\n    elPrev.style.opacity = (idx === 0) ? 0.5 : 1;\n\n    const q = questions[idx];\n    elSection.textContent = q.section;\n    elQ.textContent = (idx+1) + \". \" + q.text;\n\n    elOpts.innerHTML = \"\";\n    scale.forEach((s, i) => {\n      const id = \"tt710Opt_\" + idx + \"_\" + i;\n\n      const wrap = document.createElement(\"label\");\n      wrap.className = \"tt-option\";\n      wrap.setAttribute(\"for\", id);\n\n      const input = document.createElement(\"input\");\n      input.type = \"radio\";\n      input.name = \"tt710Q_\" + idx;\n      input.id = id;\n      input.value = String(s.val);\n      if (answers[idx] === s.val) input.checked = true;\n\n      input.addEventListener(\"change\", () => {\n        answers[idx] = s.val;\n        elHint.textContent = \"R\u00e9ponse enregistr\u00e9e \u2713\";\n        elHint.style.color = \"rgba(31,95,59,0.95)\";\n      });\n\n      const txt = document.createElement(\"div\");\n      txt.innerHTML = \"<div style='font-weight:900; color:#0B2D45;'>\" + s.label + \"<\/div>\";\n\n      wrap.appendChild(input);\n      wrap.appendChild(txt);\n      elOpts.appendChild(wrap);\n    });\n\n    if (answers[idx] === null){\n      elHint.textContent = \"Choisis une r\u00e9ponse pour continuer.\";\n      elHint.style.color = \"rgba(11,45,69,0.70)\";\n    } else {\n      elHint.textContent = \"R\u00e9ponse enregistr\u00e9e \u2713\";\n      elHint.style.color = \"rgba(31,95,59,0.95)\";\n    }\n\n    elNext.textContent = (idx === questions.length-1) ? \"Voir ma synth\u00e8se \u2192\" : \"Suivant \u2192\";\n  }\n\n  function next(){\n    if (answers[idx] === null){\n      elHint.textContent = \"Il faut choisir une r\u00e9ponse \ud83d\ude42\";\n      elHint.style.color = \"#E11D48\";\n      return;\n    }\n    if (idx < questions.length-1){\n      idx++;\n      render();\n    } else {\n      showResult();\n    }\n  }\n\n  function prev(){\n    if (idx > 0){\n      idx--;\n      render();\n    }\n  }\n\n  function scoreAxes(){\n    const sums = { fun:0, learn:0, errors:0, support:0 };\n    const counts = { fun:0, learn:0, errors:0, support:0 };\n\n    questions.forEach((q, i) => {\n      const a = answers[i];\n      if (a === null) return;\n\n      const val = q.reverse ? (4 - a) : a; \/\/ 1<->3, 2 stays 2\n      Object.keys(q.axes).forEach(ax => {\n        sums[ax] += val;\n        counts[ax] += 1;\n      });\n    });\n\n    const out = {};\n    Object.keys(axes).forEach(ax => {\n      const c = counts[ax] || 0;\n      if (!c) { out[ax] = 0; return; }\n      const min = 1 * c;\n      const max = 3 * c;\n      out[ax] = Math.round(((sums[ax] - min) \/ (max - min)) * 100);\n    });\n    return out;\n  }\n\n  function level(p){\n    if (p >= 70) return \"fort\";\n    if (p >= 40) return \"moyen\";\n    return \"fragile\";\n  }\n\n  function showResult(){\n    const s = scoreAxes();\n\n    let profile = \"Enfant en progression\";\n    let tips = [];\n\n    if (s.fun >= 70 && s.errors >= 55 && s.support >= 50){\n      profile = \"L\u2019enfant joueur\";\n      tips = [\n        \"Garder du jeu et du plaisir : c\u2019est son moteur principal.\",\n        \"Proposer des d\u00e9fis simples (1 objectif) plut\u00f4t que parler de r\u00e9sultat.\",\n        \"Varier matchs, jeux, ateliers pour nourrir l\u2019envie.\"\n      ];\n    } else if (s.support < 40 && s.fun >= 45){\n      profile = \"L\u2019enfant sensible au regard\";\n      tips = [\n        \"Renforcer la s\u00e9curit\u00e9 : encourager l\u2019effort, pas le score.\",\n        \"Apr\u00e8s un match : demander \u201ctu as aim\u00e9 quoi ?\u201d avant \u201ctu as gagn\u00e9 ?\u201d.\",\n        \"Cr\u00e9er un rituel rassurant : une phrase positive + un petit objectif.\"\n      ];\n    } else if (s.errors < 40){\n      profile = \"L\u2019enfant \u00e9motionnel\";\n      tips = [\n        \"Apprendre \u00e0 \u201crater pour apprendre\u201d (normaliser l\u2019erreur).\",\n        \"Faire des jeux o\u00f9 l\u2019erreur est pr\u00e9vue (et valoris\u00e9e).\",\n        \"Utiliser des mots simples : \u201con essaie, on ajuste, on recommence\u201d.\"\n      ];\n    } else if (s.fun < 40){\n      profile = \"L\u2019enfant en perte d\u2019envie\";\n      tips = [\n        \"Revenir au plaisir : moins de pression, plus de jeu.\",\n        \"Raccourcir les objectifs : petites victoires rapides \u00e0 l\u2019entra\u00eenement.\",\n        \"Changer le format (jeux, d\u00e9fis, doubles) pendant quelques semaines.\"\n      ];\n    } else {\n      profile = \"L\u2019enfant volontaire\";\n      tips = [\n        \"Encourager l\u2019effort et la pers\u00e9v\u00e9rance (pas besoin d\u2019en faire plus).\",\n        \"Fixer des objectifs tr\u00e8s concrets : \u201c3 \u00e9changes de plus\u201d, \u201cbien se placer\u201d.\",\n        \"Garder un bon \u00e9quilibre entra\u00eenement \/ repos \/ plaisir.\"\n      ];\n    }\n\n    elSummary.innerHTML =\n      \"<strong>Profil :<\/strong> \" + profile + \"<br>\" +\n      \"Plaisir : \" + level(s.fun) + \" \u2022 Apprentissage : \" + level(s.learn) + \" \u2022 Erreurs\/\u00e9motions : \" + level(s.errors) + \" \u2022 Soutien : \" + level(s.support) + \".\" +\n      \"<br><br><strong>Conseils :<\/strong><br>\u2022 \" + tips.join(\"<br>\u2022 \");\n\n    elScoreFun.textContent =\n      s.fun + \"\/100 \u2014 \" + (s.fun>=70 ? \"Le tennis fait vraiment plaisir.\" : s.fun>=40 ? \"Le plaisir est pr\u00e9sent, mais variable.\" : \"Le plaisir semble fragile : \u00e0 renforcer.\");\n    elScoreLearn.textContent =\n      s.learn + \"\/100 \u2014 \" + (s.learn>=70 ? \"Belle envie d\u2019apprendre et d\u2019essayer.\" : s.learn>=40 ? \"Envie correcte, \u00e0 soutenir par des objectifs simples.\" : \"L\u2019effort est difficile : simplifier et rendre plus ludique.\");\n    elScoreErrors.textContent =\n      s.errors + \"\/100 \u2014 \" + (s.errors>=70 ? \"Les erreurs sont plut\u00f4t bien v\u00e9cues.\" : s.errors>=40 ? \"Les \u00e9motions montent parfois : normal \u00e0 cet \u00e2ge.\" : \"Les erreurs d\u00e9clenchent vite frustration : \u00e0 accompagner.\");\n    elScoreSupport.textContent =\n      s.support + \"\/100 \u2014 \" + (s.support>=70 ? \"Le soutien est un vrai moteur.\" : s.support>=40 ? \"Besoin de soutien surtout en match.\" : \"Le regard\/pression peut peser : \u00e0 s\u00e9curiser.\");\n\n    elCard.style.display = \"none\";\n    elResult.style.display = \"block\";\n    elProgBar.style.width = \"100%\";\n    elProgText.textContent = \"Termin\u00e9\";\n  }\n\n  function resetQuiz(keepOpen){\n    idx = 0;\n    answers = new Array(questions.length).fill(null);\n    elResult.style.display = \"none\";\n    elCard.style.display = \"block\";\n    render();\n    if (!keepOpen) {\n      \/\/ noop\n    }\n  }\n\n  \/\/ Events quiz\n  elNext.addEventListener(\"click\", next);\n  elPrev.addEventListener(\"click\", prev);\n\n  elRestart.addEventListener(\"click\", () => resetQuiz(true));\n\n  elCopy.addEventListener(\"click\", async () => {\n    const text = modal.innerText.replace(\/\\n{3,}\/g,\"\\n\\n\").trim();\n    try{\n      await navigator.clipboard.writeText(text);\n      elCopy.textContent = \"Copi\u00e9 \u2713\";\n      setTimeout(()=>{ elCopy.textContent = \"Copier la synth\u00e8se\"; }, 1400);\n    }catch(e){\n      elCopy.textContent = \"Copie impossible\";\n      setTimeout(()=>{ elCopy.textContent = \"Copier la synth\u00e8se\"; }, 1400);\n    }\n  });\n\n  \/\/ Init (modal stays closed)\n  render();\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f54712b e-flex e-con-boxed e-con e-parent\" data-id=\"f54712b\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3d3d807 elementor-widget elementor-widget-html\" data-id=\"3d3d807\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- =========================\nPROGRAMME 11\u201314 + BOUTON \"Faire un test rapide\" + POPUP QUIZ 11\u201314\n\u2705 M\u00eame pr\u00e9sentation \/ UX que le quiz 7\u201310 (modal + question par question + synth\u00e8se)\n\u2705 Le test ne s\u2019affiche pas dans la page\n\u2705 Un bouton ouvre une popup, refermable (croix, clic dehors, ESC, bouton fermer)\n========================= -->\n\n<!-- 11\u201314 ans -->\n<div class=\"tt-program-card\" style=\"background:#F4F6F8; border-radius:18px; border:1px solid rgba(11,45,69,0.10); --tt-photo:url('http:\/\/traveltennis.com\/wp-content\/uploads\/2026\/01\/3878F82B-7276-4D05-A96F-BD051BEB4AF0_1_105_c.jpeg');\">\n  <div class=\"tt-program-card__content\">\n    <h3 style=\"margin:0 0 6px; font-size:22px; color:#0B2D45;\">Programme 11 \u2013 14 ans<\/h3>\n    <strong style=\"color:#1F5F3B;\">Structuration du projet sportif (3 niveaux)<\/strong>\n    <p style=\"margin:10px 0 14px; color:rgba(11,45,69,0.82); line-height:1.7;\">\n      P\u00e9riode charni\u00e8re : mont\u00e9e en intensit\u00e9, construction du mental en comp\u00e9tition et choix du bon calendrier.\n      Nous adaptons l\u2019accompagnement selon le niveau, l\u2019ambition et le rythme de progression \u2014 pour que le joueur avance avec confiance, et que la famille garde une vraie visibilit\u00e9.\n    <\/p>\n\n    <div style=\"display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px;\">\n      <div style=\"background:#fff; padding:14px; border-radius:14px; border:1px solid rgba(11,45,69,0.08);\">\n        <strong style=\"color:#0B2D45;\">Niveau Comp\u00e9tition<\/strong>\n        <p style=\"margin:6px 0 0; font-size:14px; line-height:1.6; color:rgba(11,45,69,0.82);\">\n          Progresser en club + tournois locaux, avec un cadre structur\u00e9 et des objectifs clairs.\n        <\/p>\n      <\/div>\n      <div style=\"background:#fff; padding:14px; border-radius:14px; border:1px solid rgba(11,45,69,0.08);\">\n        <strong style=\"color:#0B2D45;\">R\u00e9gional \/ National<\/strong>\n        <p style=\"margin:6px 0 0; font-size:14px; line-height:1.6; color:rgba(11,45,69,0.82);\">\n          Calendrier comp\u00e9titif, suivi individualis\u00e9, travail tactique, routines de performance.\n        <\/p>\n      <\/div>\n      <div style=\"background:#fff; padding:14px; border-radius:14px; border:1px solid rgba(11,45,69,0.08);\">\n        <strong style=\"color:#0B2D45;\">International<\/strong>\n        <p style=\"margin:6px 0 0; font-size:14px; line-height:1.6; color:rgba(11,45,69,0.82);\">\n          Exposition internationale : stages, tournois et confrontation \u00e0 d\u2019autres styles de jeu.\n        <\/p>\n      <\/div>\n    <\/div>\n\n    <!-- \u2705 BOUTON -->\n    <div style=\"margin-top:14px; display:flex; gap:10px; flex-wrap:wrap;\">\n      <button type=\"button\" data-tt1114-open\n style=\"padding:12px 14px; border-radius:12px; border:none; cursor:pointer; background:#1F5F3B; color:#fff; font-weight:900; box-shadow:0 10px 22px rgba(31,95,59,0.25);\">\n        Faire un test rapide (2\u20133 min)\n      <\/button>\n    <\/div>\n\n  <\/div>\n  <div class=\"tt-program-card__media\" aria-hidden=\"true\"><\/div>\n<\/div>\n\n<!-- =========================\nPOPUP (MODAL) QUIZ 11\u201314\n\u26a0\ufe0f Utilise les m\u00eames classes CSS du quiz 7\u201310 : tt-modal, tt-card, tt-btn, etc.\n=> Si tu as d\u00e9j\u00e0 coll\u00e9 le CSS modal du quiz 7\u201310, NE LE RECOLLE PAS.\n========================= -->\n<div id=\"tt1114Modal\" class=\"tt-modal\" aria-hidden=\"true\" role=\"dialog\" aria-modal=\"true\">\n  <div class=\"tt-modal__backdrop\" data-tt1114-close><\/div>\n\n  <div class=\"tt-modal__panel\" role=\"document\">\n    <div class=\"tt-modal__header\">\n      <div>\n        <div class=\"tt-badge\">Questionnaire 11\u201314 ans \u2022 2\u20133 minutes<\/div>\n        <div class=\"tt-title\">Profil motivationnel tennis (11\u201314 ans)<\/div>\n        <div class=\"tt-subtitle\">Coche ce qui te ressemble le plus. Il n\u2019y a pas de bonne ou de mauvaise r\u00e9ponse.<\/div>\n      <\/div>\n      <button class=\"tt-close\" type=\"button\" aria-label=\"Fermer\" data-tt1114-close>\u2715<\/button>\n    <\/div>\n\n    <!-- Progress -->\n    <div class=\"tt-progressWrap\">\n      <div class=\"tt-progress\">\n        <div id=\"tt1114ProgBar\" class=\"tt-progress__bar\"><\/div>\n      <\/div>\n      <div id=\"tt1114ProgText\" class=\"tt-progress__txt\">1 \/ 20<\/div>\n    <\/div>\n\n    <!-- Question card -->\n    <div id=\"tt1114Card\" class=\"tt-card\">\n      <div class=\"tt-card__top\">\n        <div>\n          <div id=\"tt1114Section\" class=\"tt-section\">\u2014<\/div>\n          <div id=\"tt1114Question\" class=\"tt-question\">\u2014<\/div>\n        <\/div>\n        <div class=\"tt-chip\">\u00c0 cocher<\/div>\n      <\/div>\n\n      <div id=\"tt1114Options\" class=\"tt-options\"><\/div>\n\n      <div class=\"tt-nav\">\n        <button id=\"tt1114Prev\" type=\"button\" class=\"tt-btn tt-btn--ghost\">\u2190 Pr\u00e9c\u00e9dent<\/button>\n        <div id=\"tt1114Hint\" class=\"tt-hint\">Choisis une r\u00e9ponse pour continuer.<\/div>\n        <button id=\"tt1114Next\" type=\"button\" class=\"tt-btn tt-btn--primary\">Suivant \u2192<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- Result -->\n    <div id=\"tt1114Result\" class=\"tt-result\" style=\"display:none;\">\n      <div class=\"tt-result__head\">\n        <div class=\"tt-title\" style=\"font-size:20px; margin:0;\">Ta synth\u00e8se<\/div>\n        <p id=\"tt1114Summary\" class=\"tt-result__summary\"><\/p>\n      <\/div>\n\n      <div class=\"tt-scoreGrid\">\n        <div class=\"tt-scoreCard\">\n          <div class=\"tt-scoreTitle\">Plaisir \/ motivation interne<\/div>\n          <div id=\"tt1114ScoreIntrinsic\" class=\"tt-scoreText\"><\/div>\n        <\/div>\n        <div class=\"tt-scoreCard\">\n          <div class=\"tt-scoreTitle\">Progr\u00e8s vs R\u00e9sultat<\/div>\n          <div id=\"tt1114ScoreOrientation\" class=\"tt-scoreText\"><\/div>\n        <\/div>\n        <div class=\"tt-scoreCard\">\n          <div class=\"tt-scoreTitle\">Pression \/ peur de d\u00e9cevoir<\/div>\n          <div id=\"tt1114ScorePressure\" class=\"tt-scoreText\"><\/div>\n        <\/div>\n        <div class=\"tt-scoreCard\">\n          <div class=\"tt-scoreTitle\">Autonomie & sens<\/div>\n          <div id=\"tt1114ScoreAutonomy\" class=\"tt-scoreText\"><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"tt-result__actions\">\n        <button id=\"tt1114Restart\" type=\"button\" class=\"tt-btn tt-btn--ghost\">Refaire le test<\/button>\n        <button id=\"tt1114Copy\" type=\"button\" class=\"tt-btn tt-btn--success\">Copier la synth\u00e8se<\/button>\n        <button type=\"button\" data-tt1114-close class=\"tt-btn tt-btn--primary\">Fermer<\/button>\n      <\/div>\n\n      <p class=\"tt-footnote\">\n        Note : ce questionnaire donne une tendance motivationnelle. Pour un accompagnement pr\u00e9cis, un \u00e9change avec le joueur et la famille reste essentiel.\n      <\/p>\n    <\/div>\n\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n  \/\/ ===== OPEN\/CLOSE MODAL =====\n  const modal = document.getElementById(\"tt1114Modal\");\n  const openBtn = document.querySelector(\"[data-tt1114-open]\");\n  const closeEls = modal.querySelectorAll(\"[data-tt1114-close]\");\n\n  function openModal(){\n    modal.setAttribute(\"aria-hidden\",\"false\");\n    document.documentElement.style.overflow = \"hidden\";\n    document.body.style.overflow = \"hidden\";\n    resetQuiz();\n  }\n  function closeModal(){\n    modal.setAttribute(\"aria-hidden\",\"true\");\n    document.documentElement.style.overflow = \"\";\n    document.body.style.overflow = \"\";\n  }\n  openBtn.addEventListener(\"click\", openModal);\n  closeEls.forEach(el => el.addEventListener(\"click\", closeModal));\n\n  \/\/ Fermer avec ESC (sans casser celui du 7\u201310)\n  document.addEventListener(\"keydown\", (e)=>{\n    if (e.key === \"Escape\" && modal.getAttribute(\"aria-hidden\") === \"false\"){\n      closeModal();\n    }\n  });\n\n  \/\/ ===== QUIZ LOGIC (11\u201314) =====\n  const scale = [\n    { label:\"Pas du tout d\u2019accord\", val:1 },\n    { label:\"Plut\u00f4t pas d\u2019accord\", val:2 },\n    { label:\"Plut\u00f4t d\u2019accord\", val:3 },\n    { label:\"Tout \u00e0 fait d\u2019accord\", val:4 },\n  ];\n\n  const questions = [\n    { section:\"Pourquoi joues-tu ?\", text:\"J\u2019aime jouer au tennis, m\u00eame quand personne ne me regarde.\", axes:{ intrinsic:+1 } },\n    { section:\"Pourquoi joues-tu ?\", text:\"Je joue surtout pour progresser et m\u2019am\u00e9liorer.\", axes:{ mastery:+1 } },\n    { section:\"Pourquoi joues-tu ?\", text:\"Gagner des matchs est tr\u00e8s important pour moi.\", axes:{ outcome:+1 } },\n    { section:\"Pourquoi joues-tu ?\", text:\"Je joue surtout parce que mes parents ou mon coach pensent que je peux aller loin.\", axes:{ external:+1, pressure:+1 } },\n    { section:\"Pourquoi joues-tu ?\", text:\"J\u2019aime le tennis parce que je me sens bien quand je joue.\", axes:{ intrinsic:+1 } },\n\n    { section:\"Entra\u00eenement\", text:\"J\u2019ai envie d\u2019aller \u00e0 l\u2019entra\u00eenement, m\u00eame quand c\u2019est difficile.\", axes:{ intrinsic:+1 } },\n    { section:\"Entra\u00eenement\", text:\"Je pr\u00e9f\u00e8re un entra\u00eenement difficile \u00e0 un entra\u00eenement facile.\", axes:{ mastery:+1 } },\n    { section:\"Entra\u00eenement\", text:\"Je me d\u00e9courage vite quand je n\u2019y arrive pas.\", axes:{ pressure:+1 }, reverse:true },\n    { section:\"Entra\u00eenement\", text:\"J\u2019aime apprendre de nouvelles choses, m\u00eame si je fais des erreurs.\", axes:{ mastery:+1 } },\n\n    { section:\"Comp\u00e9tition\", text:\"J\u2019aime jouer des matchs, m\u00eame si je sais que je peux perdre.\", axes:{ mastery:+1 } },\n    { section:\"Comp\u00e9tition\", text:\"Perdre un match me fait douter de moi.\", axes:{ pressure:+1 } },\n    { section:\"Comp\u00e9tition\", text:\"Je joue mieux quand je me sens soutenu(e), m\u00eame sans gagner.\", axes:{ autonomy:+1 } },\n    { section:\"Comp\u00e9tition\", text:\"J\u2019ai peur de d\u00e9cevoir quand je perds.\", axes:{ pressure:+1 } },\n\n    { section:\"Regard des autres\", text:\"Je me compare souvent aux autres joueurs de mon \u00e2ge.\", axes:{ pressure:+1 } },\n    { section:\"Regard des autres\", text:\"Le classement est important pour savoir si je progresse.\", axes:{ outcome:+1 } },\n    { section:\"Regard des autres\", text:\"Je joue diff\u00e9remment quand mes parents me regardent.\", axes:{ pressure:+1 } },\n    { section:\"Regard des autres\", text:\"J\u2019aimerais parfois jouer sans penser au r\u00e9sultat.\", axes:{ mastery:+1 } },\n\n    { section:\"Projet & sens\", text:\"J\u2019aimerais continuer le tennis longtemps.\", axes:{ intrinsic:+1 } },\n    { section:\"Projet & sens\", text:\"Je sais pourquoi je fais tous ces efforts.\", axes:{ autonomy:+1 } },\n    { section:\"Projet & sens\", text:\"J\u2019ai parfois l\u2019impression de jouer pour les autres plus que pour moi.\", axes:{ external:+1, pressure:+1 }, reverse:true },\n  ];\n\n  const axisKeys = [\"intrinsic\",\"mastery\",\"outcome\",\"pressure\",\"autonomy\",\"external\"];\n\n  let idx = 0;\n  let answers = new Array(questions.length).fill(null);\n\n  \/\/ DOM\n  const elSection = document.getElementById(\"tt1114Section\");\n  const elQ = document.getElementById(\"tt1114Question\");\n  const elOpts = document.getElementById(\"tt1114Options\");\n  const elPrev = document.getElementById(\"tt1114Prev\");\n  const elNext = document.getElementById(\"tt1114Next\");\n  const elHint = document.getElementById(\"tt1114Hint\");\n  const elProgBar = document.getElementById(\"tt1114ProgBar\");\n  const elProgText = document.getElementById(\"tt1114ProgText\");\n  const elCard = document.getElementById(\"tt1114Card\");\n  const elResult = document.getElementById(\"tt1114Result\");\n\n  const elSummary = document.getElementById(\"tt1114Summary\");\n  const elScoreIntrinsic = document.getElementById(\"tt1114ScoreIntrinsic\");\n  const elScoreOrientation = document.getElementById(\"tt1114ScoreOrientation\");\n  const elScorePressure = document.getElementById(\"tt1114ScorePressure\");\n  const elScoreAutonomy = document.getElementById(\"tt1114ScoreAutonomy\");\n  const elRestart = document.getElementById(\"tt1114Restart\");\n  const elCopy = document.getElementById(\"tt1114Copy\");\n\n  function pct(done,total){ return Math.round((done\/total)*100); }\n\n  function render(){\n    elProgBar.style.width = pct(idx, questions.length) + \"%\";\n    elProgText.textContent = (idx+1) + \" \/ \" + questions.length;\n\n    elPrev.disabled = (idx === 0);\n    elPrev.style.opacity = (idx === 0) ? 0.5 : 1;\n\n    const q = questions[idx];\n    elSection.textContent = q.section;\n    elQ.textContent = (idx+1) + \". \" + q.text;\n\n    elOpts.innerHTML = \"\";\n    scale.forEach((s, i) => {\n      const id = \"tt1114Opt_\" + idx + \"_\" + i;\n\n      const wrap = document.createElement(\"label\");\n      wrap.className = \"tt-option\";\n      wrap.setAttribute(\"for\", id);\n\n      const input = document.createElement(\"input\");\n      input.type = \"radio\";\n      input.name = \"tt1114Q_\" + idx;\n      input.id = id;\n      input.value = String(s.val);\n      if (answers[idx] === s.val) input.checked = true;\n\n      input.addEventListener(\"change\", () => {\n        answers[idx] = s.val;\n        elHint.textContent = \"R\u00e9ponse enregistr\u00e9e \u2713\";\n        elHint.style.color = \"rgba(31,95,59,0.95)\";\n      });\n\n      const txt = document.createElement(\"div\");\n      txt.innerHTML = \"<div style='font-weight:900; color:#0B2D45;'>\" + s.label + \"<\/div>\";\n\n      wrap.appendChild(input);\n      wrap.appendChild(txt);\n      elOpts.appendChild(wrap);\n    });\n\n    if (answers[idx] === null){\n      elHint.textContent = \"Choisis une r\u00e9ponse pour continuer.\";\n      elHint.style.color = \"rgba(11,45,69,0.70)\";\n    } else {\n      elHint.textContent = \"R\u00e9ponse enregistr\u00e9e \u2713\";\n      elHint.style.color = \"rgba(31,95,59,0.95)\";\n    }\n\n    elNext.textContent = (idx === questions.length-1) ? \"Voir ma synth\u00e8se \u2192\" : \"Suivant \u2192\";\n  }\n\n  function next(){\n    if (answers[idx] === null){\n      elHint.textContent = \"Il faut choisir une r\u00e9ponse \ud83d\ude42\";\n      elHint.style.color = \"#E11D48\";\n      return;\n    }\n    if (idx < questions.length-1){\n      idx++;\n      render();\n    } else {\n      showResult();\n    }\n  }\n\n  function prev(){\n    if (idx > 0){\n      idx--;\n      render();\n    }\n  }\n\n  function scoreAxes(){\n    const sums = {}; const counts = {};\n    axisKeys.forEach(k => { sums[k]=0; counts[k]=0; });\n\n    questions.forEach((q, i) => {\n      const a = answers[i];\n      if (a === null) return;\n      const val = q.reverse ? (5 - a) : a; \/\/ 1<->4, 2<->3\n      Object.keys(q.axes).forEach(ax => {\n        sums[ax] += val;\n        counts[ax] += 1;\n      });\n    });\n\n    const out = {};\n    axisKeys.forEach(ax => {\n      const c = counts[ax] || 0;\n      if (!c) { out[ax]=0; return; }\n      const min = 1*c;\n      const max = 4*c;\n      out[ax] = Math.round(((sums[ax]-min)\/(max-min))*100);\n    });\n    return out;\n  }\n\n  function labelLevel(p){\n    if (p >= 70) return \"\u00e9lev\u00e9\";\n    if (p >= 40) return \"mod\u00e9r\u00e9\";\n    return \"faible\";\n  }\n\n  function showResult(){\n    const s = scoreAxes();\n\n    \/\/ Orientation (progr\u00e8s vs r\u00e9sultat)\n    let orientation = \"plut\u00f4t \u00e9quilibr\u00e9e\";\n    if (s.mastery - s.outcome >= 12) orientation = \"plut\u00f4t PROGR\u00c8S (ma\u00eetrise)\";\n    if (s.outcome - s.mastery >= 12) orientation = \"plut\u00f4t R\u00c9SULTAT (performance)\";\n\n    \/\/ Profils + conseils\n    let profile = \"Joueur en progression\";\n    let tips = [];\n\n    if (s.intrinsic >= 70 && s.pressure < 50){\n      profile = \"Le joueur passionn\u00e9\";\n      tips = [\n        \"Garde le plaisir au centre : c\u2019est ton carburant sur la dur\u00e9e.\",\n        \"Fixe-toi des objectifs simples de progression (un point technique, un point mental).\",\n        \"Joue des matchs pour apprendre, pas seulement pour gagner.\"\n      ];\n    } else if (s.pressure >= 70 && s.external >= 55){\n      profile = \"Le joueur sous pression\";\n      tips = [\n        \"Ton jeu d\u00e9pend beaucoup du regard des autres : on s\u00e9curise ton mental.\",\n        \"Mets en place 2 routines : respiration + mot-cl\u00e9 (ex : \u201ccalme\u201d, \u201cavance\u201d).\",\n        \"Clarifie tes objectifs \u00e0 toi : ce que TU veux, pas seulement ce qu\u2019on attend.\"\n      ];\n    } else if (s.outcome >= 70 && s.pressure >= 55){\n      profile = \"Le comp\u00e9titeur sensible au r\u00e9sultat\";\n      tips = [\n        \"Ton moteur \u201cgagner\u201d est fort, mais il faut le stabiliser.\",\n        \"Transforme le r\u00e9sultat en objectifs d\u2019action (tactique, attitude, intensit\u00e9).\",\n        \"Apr\u00e8s un match : 2 r\u00e9ussites + 1 axe d\u2019am\u00e9lioration (pas plus).\"\n      ];\n    } else if (s.intrinsic < 45){\n      profile = \"Le joueur en questionnement\";\n      tips = [\n        \"Ta motivation a besoin de sens : clarifie ce qui te donne envie de jouer.\",\n        \"Varie les formats : d\u00e9fis, jeux, matchs \u00e0 th\u00e8me, objectifs simples.\",\n        \"R\u00e9duis la pression sur le score pour retrouver l\u2019envie et la confiance.\"\n      ];\n    } else {\n      profile = \"Le joueur en construction\";\n      tips = [\n        \"Tu es sur une base saine : consolide tes routines et ton plaisir.\",\n        \"Garde un \u00e9quilibre entra\u00eenement \/ comp\u00e9tition \/ r\u00e9cup\u00e9ration.\",\n        \"Fixe des objectifs de progr\u00e8s avant chaque tournoi.\"\n      ];\n    }\n\n    elSummary.innerHTML =\n      \"<strong>Profil :<\/strong> \" + profile + \"<br>\" +\n      \"<strong>Lecture rapide :<\/strong> motivation interne \" + labelLevel(s.intrinsic) +\n      \", pression \" + labelLevel(s.pressure) +\n      \", autonomie \" + labelLevel(s.autonomy) + \".\" +\n      \"<br><br><strong>Conseils :<\/strong><br>\u2022 \" + tips.join(\"<br>\u2022 \");\n\n    elScoreIntrinsic.textContent =\n      s.intrinsic + \"\/100 \u2014 \" + (s.intrinsic>=70 ? \"Tu joues surtout par plaisir et int\u00e9r\u00eat.\" : s.intrinsic>=40 ? \"Le plaisir est pr\u00e9sent, mais il varie.\" : \"Le plaisir semble fragile : \u00e0 renforcer.\");\n    elScorePressure.textContent =\n      s.pressure + \"\/100 \u2014 \" + (s.pressure>=70 ? \"Tu ressens souvent de la pression (r\u00e9sultat, regard, peur de d\u00e9cevoir).\" : s.pressure>=40 ? \"Tu es parfois sous pression, surtout en match.\" : \"Tu g\u00e8res plut\u00f4t bien la pression.\");\n    elScoreAutonomy.textContent =\n      s.autonomy + \"\/100 \u2014 \" + (s.autonomy>=70 ? \"Tu comprends bien pourquoi tu fais ces efforts.\" : s.autonomy>=40 ? \"Ton projet peut \u00eatre clarifi\u00e9.\" : \"Ton projet manque peut-\u00eatre de sens : \u00e0 clarifier.\");\n    elScoreOrientation.textContent =\n      \"Progr\u00e8s : \" + s.mastery + \"\/100 \u2022 R\u00e9sultat : \" + s.outcome + \"\/100 \u2014 Orientation \" + orientation + \".\";\n\n    elCard.style.display = \"none\";\n    elResult.style.display = \"block\";\n    elProgBar.style.width = \"100%\";\n    elProgText.textContent = \"Termin\u00e9\";\n  }\n\n  function resetQuiz(){\n    idx = 0;\n    answers = new Array(questions.length).fill(null);\n    elResult.style.display = \"none\";\n    elCard.style.display = \"block\";\n    render();\n  }\n\n  \/\/ Events\n  elNext.addEventListener(\"click\", next);\n  elPrev.addEventListener(\"click\", prev);\n\n  elRestart.addEventListener(\"click\", () => resetQuiz());\n\n  elCopy.addEventListener(\"click\", async () => {\n    const text = modal.innerText.replace(\/\\n{3,}\/g,\"\\n\\n\").trim();\n    try{\n      await navigator.clipboard.writeText(text);\n      elCopy.textContent = \"Copi\u00e9 \u2713\";\n      setTimeout(()=>{ elCopy.textContent = \"Copier la synth\u00e8se\"; }, 1400);\n    }catch(e){\n      elCopy.textContent = \"Copie impossible\";\n      setTimeout(()=>{ elCopy.textContent = \"Copier la synth\u00e8se\"; }, 1400);\n    }\n  });\n\n  \/\/ Init (modal stays closed)\n  render();\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-add12b9 e-flex e-con-boxed e-con e-parent\" data-id=\"add12b9\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-84b33d3 elementor-widget elementor-widget-html\" data-id=\"84b33d3\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- =========================\nPROGRAMME 15\u201318 (TON BLOC) + BOUTON + POPUP TEST D\u2019ORIENTATION 15\u201318\n\u2705 M\u00eame r\u00e8gles que pr\u00e9c\u00e9demment :\n- bouton dans la card\n- popup (modal) sans quitter la page\n- fermeture : croix \/ clic dehors \/ ESC \/ bouton Fermer\n- m\u00eame pr\u00e9sentation (classes tt-modal \/ tt-card \/ tt-btn\u2026)\n\u26a0\ufe0f IMPORTANT : le CSS du modal est d\u00e9j\u00e0 fourni par ton test 7\u201310.\n=> NE RECOLLE PAS le CSS modal ici si tu l\u2019as d\u00e9j\u00e0 sur la page.\n========================= -->\n\n<!-- 15\u201318 ans -->\n<div class=\"tt-program-card\" style=\"background:#fff; border-radius:18px; border:1px solid rgba(11,45,69,0.10); box-shadow:0 10px 22px rgba(0,0,0,0.05); --tt-photo:url('http:\/\/traveltennis.com\/wp-content\/uploads\/2026\/01\/EF64EAD0-2B7A-4713-ABCE-85F652C89F05_1_105_c.jpeg');\">\n  <div class=\"tt-program-card__content\">\n    <h3 style=\"margin:0 0 6px; font-size:22px; color:#0B2D45;\">Programme 15 \u2013 18 ans<\/h3>\n    <strong style=\"color:#E76F1D;\">Choisir sa voie<\/strong>\n    <p style=\"margin:10px 0 14px; color:rgba(11,45,69,0.82); line-height:1.7;\">\n      \u00c0 l\u2019adolescence, le projet doit devenir clair. Nous accompagnons les joueurs et leurs familles\n      dans les <strong>choix strat\u00e9giques<\/strong> : progression, \u00e9quilibre, \u00e9tudes, exposition internationale \u2014 pour avancer avec lucidit\u00e9, sans se perdre dans le doute ou la pression.\n    <\/p>\n\n    <div style=\"display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px;\">\n      <div style=\"background:#F4F6F8; padding:14px; border-radius:14px; border:1px solid rgba(11,45,69,0.08);\">\n        <strong style=\"color:#0B2D45;\">Les m\u00e9tiers du tennis<\/strong>\n        <p style=\"margin:6px 0 0; font-size:14px; line-height:1.6; color:rgba(11,45,69,0.82);\">\n          Explorer les diff\u00e9rentes voies professionnelles du tennis : enseignement, pr\u00e9paration physique, arbitrage,\n          management sportif ou encadrement, en lien avec le parcours et les comp\u00e9tences du joueur.\n        <\/p>\n      <\/div>\n      <div style=\"background:#F4F6F8; padding:14px; border-radius:14px; border:1px solid rgba(11,45,69,0.08);\">\n        <strong style=\"color:#0B2D45;\">L'universit\u00e9 am\u00e9ricaine<\/strong>\n        <p style=\"margin:6px 0 0; font-size:14px; line-height:1.6; color:rgba(11,45,69,0.82);\">\n          Projet sport + \u00e9tudes : compr\u00e9hension du syst\u00e8me US, visibilit\u00e9, strat\u00e9gie de recrutement.\n        <\/p>\n      <\/div>\n      <div style=\"background:#F4F6F8; padding:14px; border-radius:14px; border:1px solid rgba(11,45,69,0.08);\">\n        <strong style=\"color:#0B2D45;\">Le circuit professionnel<\/strong>\n        <p style=\"margin:6px 0 0; font-size:14px; line-height:1.6; color:rgba(11,45,69,0.82);\">\n          Projet haut niveau : structuration, exigences, planification et accompagnement.\n        <\/p>\n      <\/div>\n    <\/div>\n\n    <!-- \u2705 BOUTON \u201cFaire un test rapide\u201d -->\n    <div style=\"margin-top:14px; display:flex; gap:10px; flex-wrap:wrap;\">\n      <button type=\"button\" data-tt1518-open\n style=\"padding:12px 14px; border-radius:12px; border:none; cursor:pointer; background:#0B2D45; color:#fff; font-weight:900; box-shadow:0 10px 22px rgba(11,45,69,0.25);\">\n        Faire un test rapide (2\u20133 min)\n      <\/button>\n    <\/div>\n\n  <\/div>\n  <div class=\"tt-program-card__media\" aria-hidden=\"true\"><\/div>\n<\/div>\n\n<!-- =========================\nPOPUP (MODAL) TEST 15\u201318\n========================= -->\n<div id=\"tt1518Modal\" class=\"tt-modal\" aria-hidden=\"true\" role=\"dialog\" aria-modal=\"true\">\n  <div class=\"tt-modal__backdrop\" data-tt1518-close><\/div>\n\n  <div class=\"tt-modal__panel\" role=\"document\">\n    <div class=\"tt-modal__header\">\n      <div>\n        <div class=\"tt-badge\">Questionnaire 15\u201318 ans \u2022 2\u20133 minutes<\/div>\n        <div class=\"tt-title\">Test d\u2019orientation : quelle fili\u00e8re te correspond ?<\/div>\n        <div class=\"tt-subtitle\">\n          Objectif : t\u2019aider \u00e0 te projeter entre <strong>les m\u00e9tiers du tennis<\/strong>, <strong>l\u2019universit\u00e9 am\u00e9ricaine<\/strong> et <strong>le circuit pro<\/strong>.\n        <\/div>\n      <\/div>\n      <button class=\"tt-close\" type=\"button\" aria-label=\"Fermer\" data-tt1518-close>\u2715<\/button>\n    <\/div>\n\n    <!-- Progress -->\n    <div class=\"tt-progressWrap\">\n      <div class=\"tt-progress\">\n        <div id=\"tt1518ProgBar\" class=\"tt-progress__bar\"><\/div>\n      <\/div>\n      <div id=\"tt1518ProgText\" class=\"tt-progress__txt\">1 \/ 18<\/div>\n    <\/div>\n\n    <!-- Question card -->\n    <div id=\"tt1518Card\" class=\"tt-card\">\n      <div class=\"tt-card__top\">\n        <div>\n          <div id=\"tt1518Section\" class=\"tt-section\">\u2014<\/div>\n          <div id=\"tt1518Question\" class=\"tt-question\">\u2014<\/div>\n        <\/div>\n        <div class=\"tt-chip\">\u00c0 cocher<\/div>\n      <\/div>\n\n      <div id=\"tt1518Options\" class=\"tt-options\"><\/div>\n\n      <div class=\"tt-nav\">\n        <button id=\"tt1518Prev\" type=\"button\" class=\"tt-btn tt-btn--ghost\">\u2190 Pr\u00e9c\u00e9dent<\/button>\n        <div id=\"tt1518Hint\" class=\"tt-hint\">Choisis une r\u00e9ponse pour continuer.<\/div>\n        <button id=\"tt1518Next\" type=\"button\" class=\"tt-btn tt-btn--primary\">Suivant \u2192<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- Result -->\n    <div id=\"tt1518Result\" class=\"tt-result\" style=\"display:none;\">\n      <div class=\"tt-result__head\">\n        <div class=\"tt-title\" style=\"font-size:20px; margin:0;\">Ta recommandation<\/div>\n        <p id=\"tt1518Summary\" class=\"tt-result__summary\"><\/p>\n      <\/div>\n\n      <div class=\"tt-scoreGrid\">\n        <div class=\"tt-scoreCard\">\n          <div class=\"tt-scoreTitle\">M\u00e9tiers du tennis<\/div>\n          <div id=\"tt1518ScoreJobs\" class=\"tt-scoreText\"><\/div>\n        <\/div>\n        <div class=\"tt-scoreCard\">\n          <div class=\"tt-scoreTitle\">Universit\u00e9 am\u00e9ricaine<\/div>\n          <div id=\"tt1518ScoreUs\" class=\"tt-scoreText\"><\/div>\n        <\/div>\n        <div class=\"tt-scoreCard\">\n          <div class=\"tt-scoreTitle\">Circuit professionnel<\/div>\n          <div id=\"tt1518ScorePro\" class=\"tt-scoreText\"><\/div>\n        <\/div>\n        <div class=\"tt-scoreCard\">\n          <div class=\"tt-scoreTitle\">Clart\u00e9 \/ engagement<\/div>\n          <div id=\"tt1518ScoreClarity\" class=\"tt-scoreText\"><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"tt-result__actions\">\n        <button id=\"tt1518Restart\" type=\"button\" class=\"tt-btn tt-btn--ghost\">Refaire le test<\/button>\n        <button id=\"tt1518Copy\" type=\"button\" class=\"tt-btn tt-btn--success\">Copier la synth\u00e8se<\/button>\n        <button type=\"button\" data-tt1518-close class=\"tt-btn tt-btn--primary\">Fermer<\/button>\n      <\/div>\n\n      <p class=\"tt-footnote\">\n        Note : ce test propose une orientation. La meilleure d\u00e9cision se prend avec un diagnostic sportif + scolaire et un \u00e9change famille \/ coach.\n      <\/p>\n    <\/div>\n\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n  \/\/ ===== OPEN\/CLOSE MODAL =====\n  const modal = document.getElementById(\"tt1518Modal\");\n  const openBtn = document.querySelector(\"[data-tt1518-open]\");\n  const closeEls = modal.querySelectorAll(\"[data-tt1518-close]\");\n\n  function openModal(){\n    modal.setAttribute(\"aria-hidden\",\"false\");\n    document.documentElement.style.overflow = \"hidden\";\n    document.body.style.overflow = \"hidden\";\n    resetQuiz();\n  }\n  function closeModal(){\n    modal.setAttribute(\"aria-hidden\",\"true\");\n    document.documentElement.style.overflow = \"\";\n    document.body.style.overflow = \"\";\n  }\n\n  openBtn.addEventListener(\"click\", openModal);\n  closeEls.forEach(el => el.addEventListener(\"click\", closeModal));\n\n  document.addEventListener(\"keydown\", (e)=>{\n    if (e.key === \"Escape\" && modal.getAttribute(\"aria-hidden\") === \"false\"){\n      closeModal();\n    }\n  });\n\n  \/\/ ===== QUIZ DATA (15\u201318 ORIENTATION) =====\n  const scale = [\n    { label:\"Pas du tout vrai\", val:1 },\n    { label:\"Plut\u00f4t pas vrai\", val:2 },\n    { label:\"Plut\u00f4t vrai\", val:3 },\n    { label:\"Tout \u00e0 fait vrai\", val:4 },\n  ];\n\n  \/\/ Axes: jobs \/ us \/ pro + clarity\n  const questions = [\n    { section:\"Ambition\", text:\"Je veux garder le tennis au centre de ma vie, m\u00eame si je ne deviens pas pro.\", axes:{ jobs:1, us:1, clarity:1 } },\n    { section:\"Ambition\", text:\"Mon objectif principal est de tenter une carri\u00e8re sur le circuit (ITF\/ATP\/WTA).\", axes:{ pro:2, clarity:1 } },\n    { section:\"Ambition\", text:\"Je veux un projet qui combine tennis + dipl\u00f4me solide.\", axes:{ us:2, jobs:1, clarity:1 } },\n\n    { section:\"R\u00e9alit\u00e9\", text:\"Je suis pr\u00eat(e) \u00e0 mettre beaucoup de volume d\u2019entra\u00eenement et \u00e0 accepter une vie tr\u00e8s exigeante.\", axes:{ pro:2, clarity:1 } },\n    { section:\"R\u00e9alit\u00e9\", text:\"L\u2019\u00e9cole \/ les \u00e9tudes comptent vraiment et je veux garder de bonnes options.\", axes:{ us:2, jobs:1, clarity:1 } },\n    { section:\"R\u00e9alit\u00e9\", text:\"J\u2019aime transmettre, coacher, aider les autres \u00e0 progresser.\", axes:{ jobs:2, clarity:1 } },\n\n    { section:\"Pression\", text:\"Je supporte bien l\u2019incertitude (voyages, r\u00e9sultats, s\u00e9lection) sans perdre l\u2019envie.\", axes:{ pro:2, clarity:1 } },\n    { section:\"Pression\", text:\"J\u2019ai besoin d\u2019un cadre stable (planning, \u00e9quipe, environnement) pour donner le meilleur.\", axes:{ us:2, jobs:1, clarity:1 } },\n    { section:\"Pression\", text:\"Je pr\u00e9f\u00e8re construire un projet long terme plut\u00f4t que tout miser sur 12\u201318 mois.\", axes:{ us:2, jobs:2, clarity:1 } },\n\n    { section:\"Profil\", text:\"Je me vois bien dans un r\u00f4le autour du tennis (coach, pr\u00e9pa physique, arbitrage, management).\", axes:{ jobs:2, clarity:1 } },\n    { section:\"Profil\", text:\"J\u2019ai envie de vivre une exp\u00e9rience internationale structur\u00e9e (campus, \u00e9quipe, comp\u00e9tition).\", axes:{ us:2, clarity:1 } },\n    { section:\"Profil\", text:\"Je veux me mesurer aux meilleurs et je suis attir\u00e9(e) par la confrontation la plus forte.\", axes:{ pro:2, clarity:1 } },\n\n    { section:\"Organisation\", text:\"J\u2019ai (ou je peux construire) une \u00e9quipe d\u2019encadrement solide autour de moi.\", axes:{ pro:2, clarity:1 } },\n    { section:\"Organisation\", text:\"Je peux viser un bon niveau scolaire\/anglais et pr\u00e9parer un dossier (vid\u00e9os, contacts, tournois).\", axes:{ us:2, clarity:1 } },\n    { section:\"Organisation\", text:\"Je peux m\u2019investir dans des dipl\u00f4mes\/qualifs tennis \u00e0 c\u00f4t\u00e9 (assistant coach, arbitrage, etc.).\", axes:{ jobs:2, clarity:1 } },\n\n    { section:\"Moteur\", text:\"Ce qui me motive le plus, c\u2019est la progression quotidienne et le travail bien fait.\", axes:{ pro:1, us:1, jobs:1, clarity:1 } },\n    { section:\"Moteur\", text:\"Ce qui me motive le plus, c\u2019est la performance et les r\u00e9sultats visibles (classement, points).\", axes:{ pro:2, clarity:1 } },\n    { section:\"Moteur\", text:\"Ce qui me motive le plus, c\u2019est d\u2019avoir un projet qui a du sens et qui reste \u00e9quilibr\u00e9.\", axes:{ us:2, jobs:2, clarity:1 } },\n  ];\n\n  \/\/ State\n  let idx = 0;\n  let answers = new Array(questions.length).fill(null);\n\n  \/\/ DOM\n  const elSection = document.getElementById(\"tt1518Section\");\n  const elQ = document.getElementById(\"tt1518Question\");\n  const elOpts = document.getElementById(\"tt1518Options\");\n  const elPrev = document.getElementById(\"tt1518Prev\");\n  const elNext = document.getElementById(\"tt1518Next\");\n  const elHint = document.getElementById(\"tt1518Hint\");\n  const elProgBar = document.getElementById(\"tt1518ProgBar\");\n  const elProgText = document.getElementById(\"tt1518ProgText\");\n  const elCard = document.getElementById(\"tt1518Card\");\n  const elResult = document.getElementById(\"tt1518Result\");\n\n  const elSummary = document.getElementById(\"tt1518Summary\");\n  const elScoreJobs = document.getElementById(\"tt1518ScoreJobs\");\n  const elScoreUs = document.getElementById(\"tt1518ScoreUs\");\n  const elScorePro = document.getElementById(\"tt1518ScorePro\");\n  const elScoreClarity = document.getElementById(\"tt1518ScoreClarity\");\n  const elRestart = document.getElementById(\"tt1518Restart\");\n  const elCopy = document.getElementById(\"tt1518Copy\");\n\n  function pct(done,total){ return Math.round((done\/total)*100); }\n\n  function render(){\n    elProgBar.style.width = pct(idx, questions.length) + \"%\";\n    elProgText.textContent = (idx+1) + \" \/ \" + questions.length;\n\n    elPrev.disabled = (idx === 0);\n    elPrev.style.opacity = (idx === 0) ? 0.5 : 1;\n\n    const q = questions[idx];\n    elSection.textContent = q.section;\n    elQ.textContent = (idx+1) + \". \" + q.text;\n\n    elOpts.innerHTML = \"\";\n    scale.forEach((s, i) => {\n      const id = \"tt1518Opt_\" + idx + \"_\" + i;\n\n      const wrap = document.createElement(\"label\");\n      wrap.className = \"tt-option\";\n      wrap.setAttribute(\"for\", id);\n\n      const input = document.createElement(\"input\");\n      input.type = \"radio\";\n      input.name = \"tt1518Q_\" + idx;\n      input.id = id;\n      input.value = String(s.val);\n      if (answers[idx] === s.val) input.checked = true;\n\n      input.addEventListener(\"change\", () => {\n        answers[idx] = s.val;\n        elHint.textContent = \"R\u00e9ponse enregistr\u00e9e \u2713\";\n        elHint.style.color = \"rgba(31,95,59,0.95)\";\n      });\n\n      const txt = document.createElement(\"div\");\n      txt.innerHTML = \"<div style='font-weight:900; color:#0B2D45;'>\" + s.label + \"<\/div>\";\n\n      wrap.appendChild(input);\n      wrap.appendChild(txt);\n      elOpts.appendChild(wrap);\n    });\n\n    if (answers[idx] === null){\n      elHint.textContent = \"Choisis une r\u00e9ponse pour continuer.\";\n      elHint.style.color = \"rgba(11,45,69,0.70)\";\n    } else {\n      elHint.textContent = \"R\u00e9ponse enregistr\u00e9e \u2713\";\n      elHint.style.color = \"rgba(31,95,59,0.95)\";\n    }\n\n    elNext.textContent = (idx === questions.length-1) ? \"Voir ma recommandation \u2192\" : \"Suivant \u2192\";\n  }\n\n  function next(){\n    if (answers[idx] === null){\n      elHint.textContent = \"Il faut choisir une r\u00e9ponse \ud83d\ude42\";\n      elHint.style.color = \"#E11D48\";\n      return;\n    }\n    if (idx < questions.length-1){\n      idx++;\n      render();\n    } else {\n      showResult();\n    }\n  }\n\n  function prev(){\n    if (idx > 0){\n      idx--;\n      render();\n    }\n  }\n\n  function compute(){\n    let jobs=0, us=0, pro=0, clarity=0;\n    let jobsMax=0, usMax=0, proMax=0, clarityMax=0;\n\n    questions.forEach((q, i) => {\n      \/\/ max\n      if (q.axes.jobs) jobsMax += q.axes.jobs * 4;\n      if (q.axes.us) usMax += q.axes.us * 4;\n      if (q.axes.pro) proMax += q.axes.pro * 4;\n      if (q.axes.clarity) clarityMax += q.axes.clarity * 4;\n\n      const a = answers[i];\n      if (a === null) return;\n      const val = a;\n\n      if (q.axes.jobs) jobs += q.axes.jobs * val;\n      if (q.axes.us) us += q.axes.us * val;\n      if (q.axes.pro) pro += q.axes.pro * val;\n      if (q.axes.clarity) clarity += q.axes.clarity * val;\n    });\n\n    const toPct = (v, max) => max ? Math.round((v\/max)*100) : 0;\n    return {\n      jobs: toPct(jobs, jobsMax),\n      us: toPct(us, usMax),\n      pro: toPct(pro, proMax),\n      clarity: toPct(clarity, clarityMax),\n    };\n  }\n\n  function level(p){\n    if (p >= 70) return \"fort\";\n    if (p >= 45) return \"moyen\";\n    return \"\u00e0 clarifier\";\n  }\n\n  function showResult(){\n    const s = compute();\n\n    const arr = [\n      { key:\"jobs\", label:\"Les m\u00e9tiers du tennis\", score:s.jobs },\n      { key:\"us\", label:\"L\u2019universit\u00e9 am\u00e9ricaine\", score:s.us },\n      { key:\"pro\", label:\"Le circuit professionnel\", score:s.pro },\n    ].sort((a,b)=>b.score-a.score);\n\n    const top = arr[0];\n    const second = arr[1];\n    const gap = top.score - second.score;\n\n    let strength = \"orientation probable\";\n    if (gap >= 12) strength = \"orientation claire\";\n    if (gap < 8) strength = \"orientation mixte (2 pistes proches)\";\n\n    let why = [];\n    let nextSteps = [];\n    let watch = [];\n\n    if (top.key === \"pro\"){\n      why = [\n        \"Tu es attir\u00e9(e) par le haut niveau, la confrontation et l\u2019exigence quotidienne.\",\n        \"Tu sembles pr\u00eat(e) \u00e0 accepter l\u2019incertitude (r\u00e9sultats, voyages, s\u00e9lection).\"\n      ];\n      nextSteps = [\n        \"Faire un plan 6\u201312 mois : volume, tournois, objectifs mesurables.\",\n        \"Renforcer l\u2019\u00e9quipe (coach, physique, soins, mental) et les routines.\",\n        \"Transformer le r\u00e9sultat en objectifs d\u2019action (sch\u00e9mas, intensit\u00e9, attitude).\"\n      ];\n      watch = [\n        \"V\u00e9rifier ressources (encadrement\/temps\/budget) pour \u00e9viter un projet \u201c\u00e0 moiti\u00e9\u201d.\",\n        \"Si ta clart\u00e9 est basse : cadrer vite, sinon risque de pression\/fatigue mentale.\"\n      ];\n    } else if (top.key === \"us\"){\n      why = [\n        \"Tu recherches un cadre structur\u00e9 et un projet solide tennis + \u00e9tudes.\",\n        \"L\u2019international et la logique \u201c\u00e9quipe \/ campus\u201d semblent te correspondre.\"\n      ];\n      nextSteps = [\n        \"Pr\u00e9parer dossier : vid\u00e9os, calendrier, r\u00e9sultats, objectifs, contacts.\",\n        \"Planifier l\u2019anglais + exigences scolaires le plus t\u00f4t possible.\",\n        \"D\u00e9finir une shortlist d\u2019universit\u00e9s coh\u00e9rentes (sport + dipl\u00f4me).\"\n      ];\n      watch = [\n        \"Le timing compte : mieux vaut anticiper 12\u201318 mois.\",\n        \"Ne choisis pas uniquement pour le tennis : regarde le dipl\u00f4me et le campus.\"\n      ];\n    } else { \/\/ jobs\n      why = [\n        \"Tu te projettes dans un projet durable autour du tennis, au-del\u00e0 de la performance pure.\",\n        \"Tu as de l\u2019int\u00e9r\u00eat pour transmettre \/ encadrer \/ comprendre le sport.\"\n      ];\n      nextSteps = [\n        \"Explorer 2\u20133 m\u00e9tiers (immersion, stage, observation) pour choisir concr\u00e8tement.\",\n        \"Identifier formations\/certifications compatibles (assistant coach, arbitrage, etc.).\",\n        \"Garder une pratique sportive adapt\u00e9e (jouer pour progresser et rester \u201csur le terrain\u201d).\"\n      ];\n      watch = [\n        \"\u00c9viter un choix \u201cpar d\u00e9faut\u201d : clarifier ce que tu aimes vraiment dans le tennis.\",\n        \"Construire un plan d\u2019\u00e9tudes\/pro : c\u2019est le c\u0153ur de cette fili\u00e8re.\"\n      ];\n    }\n\n    if (s.clarity < 45){\n      watch.unshift(\"Ta clart\u00e9\/engagement est plut\u00f4t faible : avant de trancher, fais un diagnostic (niveau, charge, envies, contraintes) avec un adulte\/coach.\");\n    }\n\n    elScoreJobs.textContent = s.jobs + \"\/100 \u2014 \" + level(s.jobs);\n    elScoreUs.textContent   = s.us + \"\/100 \u2014 \" + level(s.us);\n    elScorePro.textContent  = s.pro + \"\/100 \u2014 \" + level(s.pro);\n    elScoreClarity.textContent = s.clarity + \"\/100 \u2014 \" + (s.clarity>=70 ? \"tr\u00e8s clair\" : s.clarity>=45 ? \"assez clair\" : \"\u00e0 clarifier\");\n\n    let mixLine = \"\";\n    if (strength.includes(\"mixte\")){\n      mixLine = \"<br><br><strong>Piste 2 proche :<\/strong> \" + second.label + \" (\" + second.score + \"\/100).\";\n    }\n\n    elSummary.innerHTML =\n      \"<strong>Recommandation :<\/strong> <span style='color:#0B2D45;'>\" + top.label + \"<\/span> \u2014 <strong>\" + strength + \"<\/strong>.\" +\n      mixLine +\n      \"<br><br><strong>Pourquoi :<\/strong><br>\u2022 \" + why.join(\"<br>\u2022 \") +\n      \"<br><br><strong>Prochaines \u00e9tapes :<\/strong><br>\u2022 \" + nextSteps.join(\"<br>\u2022 \") +\n      \"<br><br><strong>Points d\u2019attention :<\/strong><br>\u2022 \" + watch.join(\"<br>\u2022 \");\n\n    elCard.style.display = \"none\";\n    elResult.style.display = \"block\";\n    elProgBar.style.width = \"100%\";\n    elProgText.textContent = \"Termin\u00e9\";\n  }\n\n  function resetQuiz(){\n    idx = 0;\n    answers = new Array(questions.length).fill(null);\n    elResult.style.display = \"none\";\n    elCard.style.display = \"block\";\n    render();\n  }\n\n  \/\/ Events\n  elNext.addEventListener(\"click\", next);\n  elPrev.addEventListener(\"click\", prev);\n  elRestart.addEventListener(\"click\", resetQuiz);\n\n  elCopy.addEventListener(\"click\", async () => {\n    const text = modal.innerText.replace(\/\\n{3,}\/g,\"\\n\\n\").trim();\n    try{\n      await navigator.clipboard.writeText(text);\n      elCopy.textContent = \"Copi\u00e9 \u2713\";\n      setTimeout(()=>{ elCopy.textContent = \"Copier la synth\u00e8se\"; }, 1400);\n    }catch(e){\n      elCopy.textContent = \"Copie impossible\";\n      setTimeout(()=>{ elCopy.textContent = \"Copier la synth\u00e8se\"; }, 1400);\n    }\n  });\n\n  \/\/ Init\n  render();\n})();\n<\/script>\n\n<!-- ton <\/div> final (ne change rien) -->\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-35bf031 e-flex e-con-boxed e-con e-parent\" data-id=\"35bf031\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-247b1ba elementor-widget elementor-widget-html\" data-id=\"247b1ba\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t  <!-- CTA + FORMULAIRE -->\n  <section id=\"contact\" style=\"margin-top:24px; padding:70px 20px; background:linear-gradient(135deg,#000 0%, #0E0E0E 50%, #000 100%); color:#fff; border-radius:16px;\">\n    <div style=\"max-width:980px; margin:0 auto; display:grid; grid-template-columns: 1fr 1fr; gap:18px; align-items:start;\">\n\n      <div>\n        <h2 style=\"margin:0 0 10px; font-size:34px; color:#E76F1D; text-shadow:0 0 18px rgba(231,111,29,0.35);\">\n          Construisons le projet de votre enfant\n        <\/h2>\n        <p style=\"margin:0; opacity:0.9; line-height:1.7;\">\n          D\u00e9crivez l\u2019\u00e2ge, le niveau, les objectifs et le contexte (club, rythme d\u2019entra\u00eenement, tournois).\n          Nous vous recontactons rapidement pour d\u00e9finir un plan clair, adapt\u00e9 \u00e0 votre enfant et \u00e0 votre r\u00e9alit\u00e9.\n        <\/p>\n\n        <div style=\"margin-top:16px; display:grid; gap:10px; opacity:0.95;\">\n          <div>\u2705 Diagnostic & objectifs<\/div>\n          <div>\u2705 Plan d\u2019action personnalis\u00e9<\/div>\n          <div>\u2705 Suivi et ajustements<\/div>\n        <\/div>\n      <\/div>\n\n      <div style=\"background:#fff; border-radius:16px; padding:18px; color:#0F172A;\">\n        <form action=\"#\" method=\"post\" style=\"display:grid; gap:12px;\" data-trp-original-action=\"#\">\n          \n          <label style=\"font-weight:800; font-size:13px;\">Pr\u00e9nom *<\/label>\n          <input type=\"text\" name=\"prenom\" required style=\"padding:12px; border-radius:10px; border:1px solid #CBD5E1;\">\n\n          <label style=\"font-weight:800; font-size:13px;\">Nom *<\/label>\n          <input type=\"text\" name=\"nom\" required style=\"padding:12px; border-radius:10px; border:1px solid #CBD5E1;\">\n\n          <label style=\"font-weight:800; font-size:13px;\">Email *<\/label>\n          <input type=\"email\" name=\"email\" required style=\"padding:12px; border-radius:10px; border:1px solid #CBD5E1;\">\n\n          <label style=\"font-weight:800; font-size:13px;\">T\u00e9l\u00e9phone<\/label>\n          <input type=\"tel\" name=\"telephone\" style=\"padding:12px; border-radius:10px; border:1px solid #CBD5E1;\">\n\n          <input type=\"hidden\" name=\"page\" value=\"Ton projet tennis\">\n\n          <label style=\"font-weight:800; font-size:13px;\">Tranche d\u2019\u00e2ge<\/label>\n          <select name=\"tranche_age\" style=\"padding:12px; border-radius:10px; border:1px solid #CBD5E1;\">\n            <option value=\"\">S\u00e9lectionner<\/option>\n            <option value=\"4-6\">4\u20136 ans<\/option>\n            <option value=\"7-10\">7\u201310 ans<\/option>\n            <option value=\"11-14\">11\u201314 ans<\/option>\n            <option value=\"15-18\">15\u201318 ans<\/option>\n          <\/select>\n\n          <label style=\"font-weight:800; font-size:13px;\">Objectif principal<\/label>\n          <select name=\"objectif\" style=\"padding:12px; border-radius:10px; border:1px solid #CBD5E1;\">\n            <option value=\"\">S\u00e9lectionner<\/option>\n            <option value=\"progression\">Progression \/ comp\u00e9tition<\/option>\n            <option value=\"regional_national\">R\u00e9gional \/ national<\/option>\n            <option value=\"international\">International<\/option>\n            <option value=\"universite_us\">Universit\u00e9 am\u00e9ricaine<\/option>\n            <option value=\"circuit_pro\">Circuit professionnel<\/option>\n            <option value=\"plaisir\">Comp\u00e9tition par plaisir<\/option>\n          <\/select>\n\n          <label style=\"font-weight:800; font-size:13px;\">Votre message *<\/label>\n          <textarea name=\"message\" rows=\"5\" required style=\"padding:12px; border-radius:10px; border:1px solid #CBD5E1;\"><\/textarea>\n\n          <button type=\"submit\" style=\"margin-top:6px; padding:13px 16px; border-radius:12px; border:none; cursor:pointer; background:#1F5F3B; color:#fff; font-weight:900; box-shadow:0 10px 22px rgba(31,95,59,0.30);\">\n            Envoyer la demande\n          <\/button>\n\n          <p style=\"margin:0; font-size:12px; color:#64748B;\">\n            * Champs obligatoires. Vos informations restent confidentielles.\n          <\/p>\n        <input type=\"hidden\" name=\"trp-form-language\" value=\"en\"\/><\/form>\n      <\/div>\n\n    <\/div>\n  <\/section>\n\n<\/section>\n\n<style>\n\/* HERO : texte \u00e0 gauche + photo \u00e0 droite *\/\n.tt-hero-projet{\n  display:flex;\n  align-items:stretch;\n  gap:0;\n}\n\n\/* texte *\/\n.tt-hero-projet__text{\n  flex:2;\n  min-width:280px;\n  padding-right:22px;\n}\n\n\/* photo *\/\n.tt-hero-projet__photo{\n  flex:1; \/* \u2248 1\/3 *\/\n  position:relative;\n  min-height:260px;\n  overflow:hidden;\n  border-left:1px solid rgba(255,255,255,0.14); \/* \u2705 trait vertical *\/\n}\n\n\/* \u2705 diagonale uniquement c\u00f4t\u00e9 droit *\/\n.tt-hero-projet__photo img{\n  width:100%;\n  height:100%;\n  object-fit:cover;\n  display:block;\n  -webkit-clip-path: polygon(0 0, 100% 0, 100% 72%, 86% 100%, 0 100%);\n  clip-path: polygon(0 0, 100% 0, 100% 72%, 86% 100%, 0 100%);\n}\n\n\/* \u2705 d\u00e9grad\u00e9 premium *\/\n.tt-hero-projet__shade{\n  position:absolute;\n  inset:0;\n  pointer-events:none;\n  background:\n    linear-gradient(90deg,\n      rgba(0,0,0,0.70) 0%,\n      rgba(0,0,0,0.35) 32%,\n      rgba(0,0,0,0.00) 70%\n    ),\n    linear-gradient(180deg,\n      rgba(0,0,0,0.00) 0%,\n      rgba(0,0,0,0.15) 60%,\n      rgba(0,0,0,0.35) 100%\n    );\n}\n\n\/* Responsive pour les blocs 11\u201314 et 15\u201318 *\/\n@media (max-width: 980px){\n  \/* cartes 3 colonnes -> 1 colonne *\/\n  section[style*=\"max-width:1140px\"] div[style*=\"grid-template-columns:repeat(3\"]{\n    grid-template-columns: 1fr !important;\n  }\n}\n\n\/* Mobile : photo dessous + rectangle *\/\n@media (max-width: 900px){\n  .tt-hero-projet{ flex-direction: column; }\n  .tt-hero-projet__text{\n    padding-right:0;\n    padding-bottom:16px;\n  }\n  .tt-hero-projet__photo{\n    border-left:none;\n    border-top:1px solid rgba(255,255,255,0.14);\n    border-radius:14px;\n  }\n  .tt-hero-projet__photo img{\n    clip-path:none;\n    -webkit-clip-path:none;\n  }\n}\n\n\/* CTA\/form responsive *\/\n@media (max-width: 980px){\n  #contact > div{ grid-template-columns: 1fr !important; }\n}\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Accompagnement \u2022 Vision long terme \u2022 Performance Ton projet tennis Chaque enfant progresse \u00e0 son rythme. Chaque histoire est diff\u00e9rente. [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-145","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"http:\/\/traveltennis.com\/en\/wp-json\/wp\/v2\/pages\/145","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/traveltennis.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/traveltennis.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/traveltennis.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/traveltennis.com\/en\/wp-json\/wp\/v2\/comments?post=145"}],"version-history":[{"count":31,"href":"http:\/\/traveltennis.com\/en\/wp-json\/wp\/v2\/pages\/145\/revisions"}],"predecessor-version":[{"id":688,"href":"http:\/\/traveltennis.com\/en\/wp-json\/wp\/v2\/pages\/145\/revisions\/688"}],"wp:attachment":[{"href":"http:\/\/traveltennis.com\/en\/wp-json\/wp\/v2\/media?parent=145"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}