{"id":28,"date":"2026-04-20T15:25:16","date_gmt":"2026-04-20T15:25:16","guid":{"rendered":"https:\/\/nitif.com\/?page_id=28"},"modified":"2026-05-05T15:26:27","modified_gmt":"2026-05-05T15:26:27","slug":"acceuil","status":"publish","type":"page","link":"https:\/\/nitif.com\/","title":{"rendered":"Accueil"},"content":{"rendered":"\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@300;400;500;600;700;800&#038;display=swap\" rel=\"stylesheet\">\n\n<style>\n\/* =========================================================\n   NITIF V10.4 \u2014 UNIFIED LANDING PAGE\n   Version: 10.2 \u00b7 May 2026 \u00b7 publish-ready patch\n   \n   Architecture:\n   1. WordPress reset & base layout\n   2. Design tokens (colors, fonts, shadows, radii)\n   3. Shared atoms (.nitif-card, .nitif-eyebrow, .nitif-title, .nitif-btn)\n   4. Header & navigation\n   5. Hero section\n   6. Premium strip\n   7. Pillar cards (Fit \u00b7 Fed \u00b7 Focus)\n   8. Seasonal wheel V8 (legacy interactive cycle \u2014 can be removed if V9 wheel is used)\n   9. CTA + Footer\n   10. Responsive breakpoints\n   11. V10 SECTIONS \u2014 M\u00e9thode, D\u00e9fis, Boxes, Ressources, Spirale, Communaut\u00e9\n   \n   Usage in WordPress:\n   - Either paste in <style> block at top of HTML\n   - Or upload as theme stylesheet and reference via <link>\n========================================================= *\/\n\nhtml, body{\n  margin:0 !important;\n  padding:0 !important;\n  background:#05070d !important;\n  overflow-x:hidden !important;\n  max-width:100% !important;\n}\n\nhtml{\n  scrollbar-gutter:auto;\n}\n\nbody .entry-title,\nbody .page-title,\nbody .wp-block-post-title,\nbody h1.entry-title,\nbody .post-title,\nbody .page-header,\nbody header.entry-header{\n  display:none !important;\n}\n\nbody .site,\nbody .site-content,\nbody .content-area,\nbody .site-main,\nbody main,\nbody article,\nbody .entry-content,\nbody .post-content,\nbody .inside-article,\nbody .wp-site-blocks,\nbody .wp-block-post-content,\nbody .wp-block-group,\nbody .wp-block-template-part,\nbody .is-layout-constrained,\nbody .is-layout-flow,\nbody .wp-block-html{\n  margin:0 !important;\n  padding:0 !important;\n  max-width:none !important;\n  width:100% !important;\n  background:#05070d !important;\n  box-shadow:none !important;\n}\n\nbody .entry-content > *,\nbody .wp-block-post-content > *,\nbody .is-layout-constrained > *{\n  max-width:none !important;\n  margin-left:0 !important;\n  margin-right:0 !important;\n}\n\n:root{\n  --nitif-bg:#05070d;\n  --nitif-bg-2:#08101a;\n  --nitif-bg-3:#0c1520;\n  --nitif-surface:rgba(255,255,255,0.045);\n  --nitif-surface-2:rgba(255,255,255,0.028);\n  --nitif-border:rgba(255,255,255,0.10);\n  --nitif-border-soft:rgba(255,255,255,0.07);\n  --nitif-teal:#00cfc0;\n  --nitif-teal-2:#00aebf;\n  --nitif-white:#ffffff;\n  --nitif-text:#eef7fa;\n  --nitif-text-2:rgba(238,247,250,0.82);\n  --nitif-text-3:rgba(238,247,250,0.64);\n  --nitif-text-4:rgba(238,247,250,0.44);\n  --winter:#7cdfff;\n  --spring:#6bd7a3;\n  --summer:#00cfc0;\n  --autumn:#e0b06a;\n  --shadow:0 28px 80px rgba(0,0,0,0.34);\n  --radius-xl:30px;\n  --radius-lg:24px;\n  --radius-md:16px;\n}\n\n.nitif-page,\n.nitif-page *{\n  box-sizing:border-box;\n  font-family:'Poppins',system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif !important;\n}\n\n.nitif-page{\n  position:relative;\n  width:100% !important;\n  max-width:100% !important;\n  margin-left:0 !important;\n  margin-right:0 !important;\n  min-height:100vh;\n  color:var(--nitif-text);\n  overflow-x:hidden !important;\n  overflow-y:visible;\n  background:\n    radial-gradient(circle at 18% 14%, rgba(0,207,192,0.08), transparent 26%),\n    radial-gradient(circle at 84% 12%, rgba(0,174,191,0.08), transparent 24%),\n    linear-gradient(180deg, #04060b 0%, #070b12 46%, #05070d 100%);\n}\n\n.nitif-page::before{\n  content:\"\";\n  position:absolute;\n  inset:0;\n  z-index:0;\n  pointer-events:none;\n  opacity:.16;\n  background-image:radial-gradient(circle at center, rgba(0,207,192,0.055) 0 1px, transparent 1.5px);\n  background-size:58px 58px;\n}\n\n.nitif-page::after{\n  content:\"\";\n  position:absolute;\n  width:920px;\n  height:920px;\n  right:-360px;\n  bottom:-180px;\n  z-index:0;\n  opacity:.08;\n  pointer-events:none;\n  background-repeat:no-repeat;\n  background-position:center;\n  background-size:contain;\n  background-image:url(\"data:image\/svg+xml,%3Csvg viewBox='0 0 600 600' xmlns='http:\/\/www.w3.org\/2000\/svg' fill='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='120' y1='110' x2='500' y2='500'%3E%3Cstop stop-color='%2379EDFF'\/%3E%3Cstop offset='0.48' stop-color='%2300CFC0'\/%3E%3Cstop offset='1' stop-color='%230087A9'\/%3E%3C\/linearGradient%3E%3C\/defs%3E%3Cpath d='M148 372C146 256 236 156 350 154C420 153 479 201 479 267C479 318 440 356 392 356C352 356 323 329 323 295C323 267 345 247 370 247C390 247 404 261 404 278C404 292 393 302 381 302' stroke='url(%23g)' stroke-width='10' stroke-linecap='round'\/%3E%3Cpath d='M177 349C171 271 223 204 298 188C345 178 386 191 413 223' stroke='url(%23g)' stroke-opacity='.85' stroke-width='2'\/%3E%3Cpath d='M205 333C202 283 232 238 279 220C314 206 347 211 370 235' stroke='url(%23g)' stroke-opacity='.65' stroke-width='2'\/%3E%3Cpath d='M233 321C232 291 250 262 279 248C300 237 323 241 339 256' stroke='url(%23g)' stroke-opacity='.5' stroke-width='2'\/%3E%3C\/svg%3E\");\n  animation:nitifSlowDrift 46s linear infinite;\n}\n\n@keyframes nitifSlowDrift{\n  0%{ transform:rotate(0deg) scale(1); }\n  50%{ transform:rotate(3deg) scale(1.02); }\n  100%{ transform:rotate(0deg) scale(1); }\n}\n\n.nitif-page > *{ position:relative; z-index:1; }\n\n.nitif-container{\n  width:min(1160px, calc(100% - 48px));\n  margin:0 auto;\n}\n\n.nitif-section{ padding:92px 0; }\n\n.nitif-card{\n  background:linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.025));\n  border:1px solid var(--nitif-border);\n  border-radius:var(--radius-lg);\n  box-shadow:var(--shadow);\n  backdrop-filter:blur(14px);\n  -webkit-backdrop-filter:blur(14px);\n}\n\n.nitif-eyebrow{\n  display:inline-flex;\n  align-items:center;\n  gap:10px;\n  margin-bottom:18px;\n  color:var(--nitif-teal);\n  font-size:12px;\n  font-weight:700;\n  letter-spacing:.16em;\n  text-transform:uppercase;\n}\n\n.nitif-eyebrow::before,\n.nitif-eyebrow::after{\n  content:\"\";\n  width:28px;\n  height:1px;\n  background:rgba(0,207,192,.34);\n}\n\n.nitif-title{\n  margin:0 0 18px;\n  font-size:clamp(34px, 6vw, 76px);\n  line-height:1.02;\n  letter-spacing:-.045em;\n  font-weight:800;\n  color:#fff;\n}\n\n.nitif-title .accent{\n  background:linear-gradient(90deg, var(--nitif-teal) 0%, #5be1ff 100%);\n  -webkit-background-clip:text;\n  background-clip:text;\n  -webkit-text-fill-color:transparent;\n  color:transparent;\n}\n\n.nitif-subtitle{\n  max-width:880px;\n  margin:0;\n  color:var(--nitif-text-2);\n  font-size:clamp(16px, 1.9vw, 19px);\n  line-height:1.9;\n}\n\n.nitif-btns{\n  display:flex;\n  flex-wrap:wrap;\n  gap:14px;\n  margin-top:34px;\n}\n\n.nitif-btn{\n  display:inline-flex;\n  align-items:center;\n  justify-content:center;\n  min-height:52px;\n  padding:14px 28px;\n  border-radius:999px;\n  text-decoration:none !important;\n  font-size:14px;\n  font-weight:700;\n  transition:.22s ease;\n}\n\n.nitif-btn-primary{\n  color:#031012 !important;\n  background:linear-gradient(90deg, var(--nitif-teal), var(--nitif-teal-2));\n  box-shadow:0 14px 32px rgba(0,207,192,0.24);\n}\n\n.nitif-btn-primary:hover{\n  transform:translateY(-2px);\n  box-shadow:0 22px 42px rgba(0,207,192,0.30);\n}\n\n.nitif-btn-secondary{\n  color:var(--nitif-text-2) !important;\n  border:1px solid rgba(255,255,255,0.16);\n  background:rgba(255,255,255,0.03);\n}\n\n.nitif-btn-secondary:hover{\n  color:var(--nitif-teal) !important;\n  border-color:rgba(0,207,192,0.38);\n  transform:translateY(-2px);\n}\n\n.nitif-page a:not(.nitif-btn-primary):hover,\n.nitif-nav a:hover,\n.nitif-footer a:hover{\n  color:var(--nitif-teal) !important;\n}\n\n\/* ===== Header ===== *\/\n.nitif-top-strip{\n  position:sticky;\n  top:0;\n  z-index:20;\n  background:rgba(4,7,12,0.84);\n  border-bottom:1px solid rgba(255,255,255,0.06);\n  backdrop-filter:blur(14px);\n  -webkit-backdrop-filter:blur(14px);\n}\n\n.nitif-top-strip-inner{\n  min-height:74px;\n  display:flex;\n  align-items:center;\n  justify-content:space-between;\n  gap:20px;\n}\n\n.nitif-brand{\n  display:flex;\n  align-items:center;\n  gap:12px;\n  text-decoration:none !important;\n  color:#fff !important;\n  font-size:20px;\n  font-weight:800;\n  letter-spacing:.08em;\n  flex:0 0 auto;\n}\n\n.nitif-logo-slot{\n  width:42px;\n  height:42px;\n  display:grid;\n  place-items:center;\n  border-radius:12px;\n  background:\n    radial-gradient(circle at 30% 25%, rgba(255,255,255,.10), transparent 34%),\n    linear-gradient(135deg, rgba(0,207,192,.16), rgba(0,174,191,.06));\n  border:1px solid rgba(0,207,192,.22);\n  overflow:hidden;\n}\n\n.nitif-logo-slot svg{ width:28px; height:28px; display:block; }\n\n.nitif-nav{\n  display:flex;\n  align-items:center;\n  gap:20px;\n}\n\n.nitif-nav a{\n  color:var(--nitif-text-3) !important;\n  text-decoration:none !important;\n  font-size:12px;\n  font-weight:700;\n  letter-spacing:.10em;\n  text-transform:uppercase;\n  white-space:nowrap;\n}\n\n.nitif-top-cta{\n  padding:12px 22px;\n  border-radius:999px;\n  color:#031012 !important;\n  background:linear-gradient(90deg, var(--nitif-teal), var(--nitif-teal-2));\n}\n.nitif-top-cta:hover{ color:#031012 !important; }\n\n\/* ===== Hero ===== *\/\n.nitif-hero{ padding:92px 0 72px; }\n.nitif-hero-copy{ max-width:970px; }\n\n.nitif-kicker{\n  display:inline-flex;\n  align-items:center;\n  gap:10px;\n  margin-bottom:18px;\n  padding:8px 14px;\n  border-radius:999px;\n  color:var(--nitif-teal);\n  background:rgba(0,207,192,0.085);\n  border:1px solid rgba(0,207,192,0.24);\n  font-size:12px;\n  font-weight:700;\n  letter-spacing:.12em;\n  text-transform:uppercase;\n}\n\n.nitif-kicker-dot{\n  width:7px;\n  height:7px;\n  border-radius:50%;\n  background:var(--nitif-teal);\n  box-shadow:0 0 18px rgba(0,207,192,.75);\n}\n\n.nitif-hero-proof{\n  display:grid;\n  grid-template-columns:repeat(4, 1fr);\n  gap:14px;\n  margin-top:40px;\n  max-width:760px;\n}\n\n.nitif-proof-item{\n  padding:18px 12px;\n  text-align:center;\n  border-radius:18px;\n  background:rgba(255,255,255,0.034);\n  border:1px solid rgba(255,255,255,0.08);\n}\n\n.nitif-proof-value{\n  margin-bottom:8px;\n  color:#fff;\n  font-size:28px;\n  font-weight:800;\n  line-height:1;\n}\n\n.nitif-proof-value span{ color:var(--nitif-teal); }\n\n.nitif-proof-label{\n  color:var(--nitif-text-4);\n  font-size:10px;\n  line-height:1.45;\n  letter-spacing:.08em;\n  text-transform:uppercase;\n}\n\n.nitif-hero-note{\n  margin-top:18px;\n  color:var(--nitif-text-4);\n  font-size:12px;\n  line-height:1.75;\n  max-width:780px;\n}\n\n\/* ===== Premium strip ===== *\/\n.nitif-premium-grid{\n  display:grid;\n  grid-template-columns:repeat(3,1fr);\n  gap:16px;\n}\n\n.nitif-premium-item{\n  position:relative;\n  overflow:hidden;\n  padding:26px 22px;\n}\n\n.nitif-premium-item::before{\n  content:\"\";\n  position:absolute;\n  right:-45px;\n  top:-45px;\n  width:150px;\n  height:150px;\n  border-radius:50%;\n  background:radial-gradient(circle, rgba(0,207,192,0.16), transparent 72%);\n}\n\n.nitif-premium-item h3{\n  margin:0 0 10px;\n  color:#fff;\n  font-size:18px;\n  font-weight:700;\n  position:relative;\n}\n\n.nitif-premium-item p{\n  margin:0;\n  color:var(--nitif-text-3);\n  font-size:14px;\n  line-height:1.78;\n  position:relative;\n}\n\n\/* ===== Community cards ===== *\/\na.nitif-community-card{\n  text-decoration:none !important;\n  color:inherit !important;\n  display:block;\n  transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease;\n}\na.nitif-community-card:hover{\n  transform:translateY(-3px);\n  border-color:rgba(0,207,192,0.32);\n  box-shadow:0 32px 86px rgba(0,207,192,0.10), var(--shadow);\n}\n\n.nitif-community-tag{\n  display:inline-block;\n  margin-bottom:14px;\n  padding:5px 11px;\n  border-radius:999px;\n  background:rgba(0,207,192,0.10);\n  border:1px solid rgba(0,207,192,0.22);\n  color:var(--nitif-teal);\n  font-size:10px;\n  font-weight:700;\n  letter-spacing:.12em;\n  text-transform:uppercase;\n  position:relative;\n}\n\n.nitif-community-cta{\n  margin-top:16px;\n  color:var(--nitif-teal);\n  font-size:13px;\n  font-weight:700;\n  letter-spacing:.04em;\n  position:relative;\n}\n\n.nitif-community-cta-soft{\n  color:var(--nitif-text-4);\n}\n\n\/* ===== Fit Fed Focus system ===== *\/\n.nitif-system-header{\n  max-width:850px;\n  margin:0 auto 36px;\n  text-align:center;\n}\n.nitif-system-header .nitif-subtitle{ margin:0 auto; }\n\n.nitif-pillar-grid{\n  display:grid;\n  grid-template-columns:repeat(3, 1fr);\n  gap:18px;\n}\n\n.nitif-pillar-card{\n  position:relative;\n  padding:30px 24px;\n  overflow:hidden;\n  min-height:310px;\n}\n\n.nitif-pillar-card::before{\n  content:\"\";\n  position:absolute;\n  width:220px;\n  height:220px;\n  right:-90px;\n  top:-90px;\n  border-radius:50%;\n  background:radial-gradient(circle, rgba(0,207,192,.16), transparent 68%);\n}\n\n.nitif-pillar-code{\n  position:relative;\n  color:var(--nitif-teal);\n  font-size:12px;\n  font-weight:800;\n  letter-spacing:.18em;\n  text-transform:uppercase;\n}\n\n.nitif-pillar-card h3{\n  position:relative;\n  margin:12px 0 10px;\n  color:#fff;\n  font-size:34px;\n  line-height:1;\n  font-weight:800;\n  letter-spacing:-.03em;\n}\n\n.nitif-pillar-card p{\n  position:relative;\n  margin:0 0 18px;\n  color:var(--nitif-text-3);\n  font-size:14px;\n  line-height:1.78;\n}\n\n.nitif-pillar-card ul{\n  position:relative;\n  list-style:none;\n  margin:0;\n  padding:0;\n  display:grid;\n  gap:9px;\n}\n\n.nitif-pillar-card li{\n  color:var(--nitif-text-2);\n  font-size:13px;\n  line-height:1.5;\n}\n\n.nitif-pillar-card li::before{\n  content:\"\";\n  display:inline-block;\n  width:6px;\n  height:6px;\n  margin-right:8px;\n  border-radius:50%;\n  background:var(--nitif-teal);\n  box-shadow:0 0 10px rgba(0,207,192,.55);\n}\n\n\/* ===== Seasonal wheel \/ circular flow chart ===== *\/\n.nitif-season-header{\n  text-align:center;\n  max-width:860px;\n  margin:0 auto 42px;\n}\n.nitif-season-header .nitif-subtitle{ margin:0 auto; }\n\n.nitif-cycle-layout{\n  display:grid;\n  grid-template-columns:1.05fr .95fr;\n  gap:24px;\n  align-items:stretch;\n}\n\n.nitif-cycle-stage{\n  position:relative;\n  min-height:620px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  padding:26px;\n  overflow:hidden;\n}\n\n.nitif-cycle-stage::before{\n  content:\"\";\n  position:absolute;\n  inset:0;\n  background:radial-gradient(circle at 50% 48%, rgba(0,207,192,.06), transparent 32%);\n  pointer-events:none;\n}\n\n.nitif-season-wheel{\n  width:100%;\n  max-width:620px;\n  height:auto;\n  display:block;\n  position:relative;\n  z-index:1;\n  margin:0 auto;\n  overflow:visible;\n}\n\n.nitif-wheel-segment{\n  cursor:pointer;\n  transition:opacity .24s ease, transform .24s ease;\n  transform-origin:280px 280px;\n}\n\n.nitif-wheel-segment .seg-body{\n  opacity:.88;\n  transition:opacity .24s ease, filter .24s ease;\n}\n\n.nitif-wheel-segment .seg-num{\n  fill:#ffffff;\n  font-size:22px;\n  font-weight:800;\n  letter-spacing:.04em;\n  pointer-events:none;\n}\n\n.nitif-wheel-segment .seg-label{\n  fill:rgba(238,247,250,.88);\n  font-size:15px;\n  font-weight:700;\n  pointer-events:none;\n}\n\n.nitif-wheel-segment:hover .seg-body,\n.nitif-wheel-segment.is-active .seg-body{\n  opacity:1;\n  filter:brightness(1.08);\n}\n\n.nitif-cycle-core{\n  position:absolute;\n  left:50%;\n  top:50%;\n  width:178px;\n  height:178px;\n  transform:translate(-50%, -50%);\n  border-radius:50%;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  text-align:center;\n  padding:20px;\n  z-index:2;\n  background:linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.025));\n  border:1px solid rgba(255,255,255,.10);\n  box-shadow:0 12px 40px rgba(0,0,0,.32);\n  backdrop-filter:blur(12px);\n  -webkit-backdrop-filter:blur(12px);\n  animation:nitifCenterPulse 4.6s ease-in-out infinite;\n}\n\n@keyframes nitifCenterPulse{\n  0%,100%{ transform:translate(-50%, -50%) scale(1); box-shadow:0 12px 40px rgba(0,0,0,.32); }\n  50%{ transform:translate(-50%, -50%) scale(1.03); box-shadow:0 16px 48px rgba(0,207,192,.12); }\n}\n\n.nitif-cycle-core h4{\n  margin:0 0 8px;\n  color:#fff;\n  font-size:30px;\n  line-height:1.04;\n  font-weight:800;\n}\n.nitif-cycle-core p{\n  margin:0;\n  color:rgba(238,247,250,.48);\n  font-size:11px;\n  line-height:1.55;\n  letter-spacing:.03em;\n}\n\n.nitif-phase-panel{\n  padding:28px 24px;\n  display:flex;\n  flex-direction:column;\n  justify-content:center;\n  min-height:620px;\n  transition:border-color .24s ease, box-shadow .24s ease;\n  border-color:rgba(255,255,255,.10);\n}\n\n.nitif-phase-topline{\n  margin-bottom:16px;\n  color:rgba(238,247,250,.42);\n  font-size:11px;\n  font-weight:700;\n  letter-spacing:.14em;\n  text-transform:uppercase;\n}\n\n.nitif-phase-name{\n  margin:0 0 10px;\n  color:#fff;\n  font-size:42px;\n  line-height:1.02;\n  font-weight:800;\n}\n\n.nitif-phase-badge{\n  display:inline-flex;\n  align-self:flex-start;\n  margin-bottom:18px;\n  padding:8px 14px;\n  border-radius:999px;\n  color:#00cfc0;\n  background:rgba(0,207,192,.10);\n  font-size:12px;\n  font-weight:700;\n  letter-spacing:.04em;\n  text-transform:uppercase;\n}\n\n.nitif-phase-text{\n  margin:0 0 24px;\n  color:rgba(238,247,250,.82);\n  font-size:16px;\n  line-height:1.95;\n}\n\n.nitif-phase-meta{\n  display:grid;\n  grid-template-columns:1fr 1fr;\n  gap:14px;\n  margin-bottom:18px;\n}\n\n.nitif-phase-meta .meta{\n  padding:16px;\n  border-radius:18px;\n  background:rgba(255,255,255,.03);\n  border:1px solid rgba(255,255,255,.07);\n}\n\n.nitif-phase-meta span{\n  display:block;\n  margin-bottom:7px;\n  color:rgba(238,247,250,.42);\n  font-size:10px;\n  line-height:1.4;\n  letter-spacing:.11em;\n  text-transform:uppercase;\n}\n\n.nitif-phase-meta strong{\n  color:#fff;\n  font-size:15px;\n  line-height:1.45;\n  font-weight:700;\n}\n\n.nitif-phase-foot{\n  color:rgba(238,247,250,.48);\n  font-size:13px;\n  line-height:1.75;\n}\n\n.nitif-phase-pills{\n  display:flex;\n  flex-wrap:wrap;\n  gap:10px;\n  margin-top:22px;\n}\n\n.nitif-phase-chip{\n  border:1px solid rgba(255,255,255,.10);\n  background:rgba(255,255,255,.03);\n  color:rgba(238,247,250,.70);\n  border-radius:999px;\n  padding:9px 13px;\n  font-size:12px;\n  font-weight:700;\n  cursor:pointer;\n  transition:.2s ease;\n}\n\n.nitif-phase-chip:hover,\n.nitif-phase-chip.is-active{\n  color:#041012;\n  background:#00cfc0;\n  border-color:#00cfc0;\n}\n\n\/* ===== Challenge cards grid ===== *\/\n.nitif-challenge-header{\n  text-align:center;\n  max-width:760px;\n  margin:0 auto 36px;\n}\n.nitif-challenge-header .nitif-subtitle{ margin:0 auto; }\n\n.nitif-challenge-grid{\n  display:grid;\n  grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));\n  gap:18px;\n  margin:24px 0;\n}\n.nitif-challenge-card{\n  position:relative;\n  padding:26px 24px;\n  border-radius:var(--radius-md);\n  background:linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.02));\n  border:1px solid var(--nitif-border);\n  transition:.24s ease;\n  overflow:hidden;\n}\n.nitif-challenge-card::before{\n  content:\"\";\n  position:absolute;\n  top:0; left:0;\n  width:0;\n  height:3px;\n  background:linear-gradient(90deg, var(--nitif-teal), #5be1ff);\n  transition:width 0.4s ease;\n}\n.nitif-challenge-card:hover::before{ width:100%; }\n.nitif-challenge-card:hover{\n  border-color:rgba(0,207,192,0.35);\n  transform:translateY(-3px);\n  box-shadow:0 28px 60px rgba(0,0,0,0.25);\n}\n.nitif-challenge-card .ch-duration{\n  display:inline-flex;\n  align-items:center;\n  gap:8px;\n  font-size:10px;\n  font-weight:700;\n  letter-spacing:.18em;\n  text-transform:uppercase;\n  color:var(--nitif-teal);\n}\n.nitif-challenge-card .ch-duration::before{\n  content:\"\";\n  width:6px;\n  height:6px;\n  border-radius:50%;\n  background:var(--nitif-teal);\n  box-shadow:0 0 12px rgba(0,207,192,.7);\n}\n.nitif-challenge-card .ch-title{\n  margin:10px 0 8px;\n  color:#fff;\n  font-size:22px;\n  font-weight:800;\n  line-height:1.15;\n  letter-spacing:-.01em;\n}\n.nitif-challenge-card .ch-desc{\n  color:var(--nitif-text-3);\n  font-size:14px;\n  line-height:1.7;\n  margin-bottom:16px;\n}\n.nitif-challenge-card .ch-meta{\n  display:flex;\n  flex-wrap:wrap;\n  gap:12px;\n  padding-top:14px;\n  border-top:1px solid var(--nitif-border-soft);\n  font-size:11px;\n  color:var(--nitif-text-4);\n  letter-spacing:.06em;\n  text-transform:uppercase;\n}\n.nitif-challenge-card .ch-meta strong{\n  color:var(--nitif-text-2);\n  font-weight:700;\n}\n\n\/* ===== Products \/ Boxes ===== *\/\n.nitif-box-grid{\n  display:grid;\n  grid-template-columns:repeat(4, 1fr);\n  gap:16px;\n}\n.nitif-box-card{\n  padding:24px 20px;\n  min-height:230px;\n  position:relative;\n  overflow:hidden;\n}\n.nitif-box-card::after{\n  content:\"\";\n  position:absolute;\n  width:150px;\n  height:150px;\n  right:-70px;\n  bottom:-70px;\n  border-radius:50%;\n  background:radial-gradient(circle, rgba(0,207,192,.13), transparent 70%);\n}\n.nitif-box-tag{\n  color:var(--nitif-teal);\n  font-size:10px;\n  font-weight:800;\n  letter-spacing:.16em;\n  text-transform:uppercase;\n}\n.nitif-box-card h3{\n  position:relative;\n  margin:10px 0 8px;\n  color:#fff;\n  font-size:22px;\n  line-height:1.15;\n}\n.nitif-box-card p{\n  position:relative;\n  margin:0 0 18px;\n  color:var(--nitif-text-3);\n  font-size:13px;\n  line-height:1.65;\n}\n.nitif-box-mini{\n  position:relative;\n  display:flex;\n  flex-wrap:wrap;\n  gap:8px;\n}\n.nitif-box-mini span{\n  border:1px solid rgba(255,255,255,.09);\n  background:rgba(255,255,255,.03);\n  color:var(--nitif-text-3);\n  border-radius:999px;\n  padding:7px 9px;\n  font-size:10.5px;\n  font-weight:700;\n}\n\n\/* ===== PDF \/ Guide download blocks ===== *\/\n.nitif-download{\n  display:grid;\n  grid-template-columns:104px 1fr auto;\n  gap:20px;\n  align-items:center;\n  padding:18px 22px;\n  border-radius:var(--radius-md);\n  background:linear-gradient(180deg, rgba(255,255,255,0.045), rgba(255,255,255,0.018));\n  border:1px solid var(--nitif-border);\n  margin:14px 0;\n  transition:.22s ease;\n}\n.nitif-download:hover{\n  border-color:rgba(0,207,192,0.35);\n  transform:translateY(-2px);\n  box-shadow:0 22px 42px rgba(0,207,192,0.10);\n}\n.nitif-download .dl-cover{\n  position:relative;\n  width:104px;\n  height:138px;\n  border-radius:8px;\n  background:radial-gradient(circle at 30% 20%, rgba(0,207,192,0.18), transparent 50%), linear-gradient(135deg, #08101a, #0c1520);\n  border:1px solid rgba(0,207,192,0.20);\n  display:grid;\n  place-items:center;\n  color:var(--nitif-teal);\n  font-size:10px;\n  font-weight:700;\n  letter-spacing:.18em;\n  text-transform:uppercase;\n  overflow:hidden;\n}\n.nitif-download .dl-cover::after{\n  content:\"\";\n  position:absolute;\n  top:0; left:0;\n  width:100%;\n  height:3px;\n  background:linear-gradient(90deg, var(--nitif-teal), var(--nitif-teal-2));\n}\n.nitif-download .dl-meta .dl-tag{\n  font-size:10px;\n  letter-spacing:.18em;\n  text-transform:uppercase;\n  color:var(--nitif-teal);\n  font-weight:700;\n}\n.nitif-download .dl-meta h4{\n  margin:6px 0 6px;\n  color:#fff;\n  font-size:18px;\n  font-weight:700;\n  line-height:1.2;\n}\n.nitif-download .dl-meta p{\n  margin:0;\n  color:var(--nitif-text-3);\n  font-size:13px;\n  line-height:1.6;\n}\n.nitif-download .dl-action{ white-space:nowrap; }\n\n\/* ===== Interactive widget \/ app embed wrapper ===== *\/\n.nitif-widget{\n  position:relative;\n  margin:32px 0;\n  border-radius:var(--radius-md);\n  overflow:hidden;\n  border:1px solid var(--nitif-border);\n  background:rgba(255,255,255,0.025);\n  box-shadow:var(--shadow);\n}\n.nitif-widget .widget-bar{\n  display:flex;\n  align-items:center;\n  justify-content:space-between;\n  padding:12px 18px;\n  background:linear-gradient(90deg, rgba(0,207,192,0.10), rgba(0,207,192,0.03));\n  color:var(--nitif-teal);\n  font-size:11px;\n  font-weight:700;\n  letter-spacing:.16em;\n  text-transform:uppercase;\n  border-bottom:1px solid var(--nitif-border-soft);\n}\n.nitif-widget .widget-bar::before{\n  content:\"\u25c6\";\n  margin-right:10px;\n  color:var(--nitif-teal);\n}\n.nitif-widget iframe,\n.nitif-widget .widget-body{\n  width:100%;\n  min-height:380px;\n  border:none;\n  display:block;\n  background:transparent;\n}\n.widget-placeholder{\n  min-height:380px;\n  display:grid;\n  place-items:center;\n  padding:36px;\n  text-align:center;\n  color:var(--nitif-text-3);\n}\n.widget-placeholder strong{\n  display:block;\n  color:#fff;\n  font-size:24px;\n  margin-bottom:10px;\n}\n\n\/* ===== Article \/ blog post cards ===== *\/\n.nitif-articles-grid{\n  display:grid;\n  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));\n  gap:20px;\n  margin:32px 0;\n}\n.nitif-article-card{\n  position:relative;\n  border-radius:var(--radius-md);\n  overflow:hidden;\n  background:linear-gradient(180deg, rgba(255,255,255,0.045), rgba(255,255,255,0.018));\n  border:1px solid var(--nitif-border);\n  transition:.24s ease;\n  text-decoration:none !important;\n  color:inherit !important;\n  display:block;\n}\n.nitif-article-card:hover{\n  border-color:rgba(0,207,192,0.32);\n  transform:translateY(-3px);\n  box-shadow:0 28px 60px rgba(0,0,0,0.25);\n}\n.nitif-article-card .ac-image{\n  width:100%;\n  aspect-ratio:16\/9;\n  background:linear-gradient(135deg, #08101a, #0c1520);\n  position:relative;\n  overflow:hidden;\n}\n.nitif-article-card .ac-image::after{\n  content:\"\";\n  position:absolute;\n  inset:0;\n  background:radial-gradient(circle at 70% 30%, rgba(0,207,192,0.15), transparent 60%);\n}\n.nitif-article-card .ac-body{ padding:22px; }\n.nitif-article-card .ac-tag{\n  font-size:10px;\n  font-weight:700;\n  letter-spacing:.18em;\n  text-transform:uppercase;\n  color:var(--nitif-teal);\n}\n.nitif-article-card .ac-title{\n  margin:8px 0;\n  color:#fff;\n  font-size:19px;\n  font-weight:700;\n  line-height:1.25;\n  letter-spacing:-.005em;\n}\n.nitif-article-card .ac-excerpt{\n  color:var(--nitif-text-3);\n  font-size:13.5px;\n  line-height:1.65;\n  margin-bottom:12px;\n}\n.nitif-article-card .ac-foot{\n  display:flex;\n  justify-content:space-between;\n  gap:10px;\n  font-size:11px;\n  color:var(--nitif-text-4);\n  letter-spacing:.06em;\n  text-transform:uppercase;\n}\n\n\/* ===== Email capture ===== *\/\n.nitif-capture-box{\n  max-width:780px;\n  margin:0 auto;\n  padding:42px 28px;\n  text-align:center;\n  border-radius:var(--radius-lg);\n  background:linear-gradient(180deg, rgba(0,207,192,0.06), rgba(0,207,192,0.015));\n  border:1px solid rgba(0,207,192,0.22);\n  box-shadow:var(--shadow);\n}\n.nitif-capture-box h3{\n  margin:0 0 12px;\n  color:#fff;\n  font-size:clamp(24px, 3.4vw, 34px);\n  font-weight:800;\n  line-height:1.08;\n  letter-spacing:-.02em;\n}\n.nitif-capture-box p{\n  max-width:560px;\n  margin:0 auto 22px;\n  color:var(--nitif-text-3);\n  font-size:15px;\n  line-height:1.75;\n}\n.nitif-capture-form{\n  display:flex;\n  flex-wrap:wrap;\n  gap:10px;\n  justify-content:center;\n  max-width:540px;\n  margin:0 auto;\n}\n.nitif-capture-form input[type=\"email\"]{\n  flex:1;\n  min-width:240px;\n  padding:14px 20px;\n  border-radius:999px;\n  background:rgba(255,255,255,0.045);\n  border:1px solid var(--nitif-border);\n  color:#fff;\n  font-family:inherit;\n  font-size:14px;\n  font-weight:500;\n  transition:.22s ease;\n}\n.nitif-capture-form input[type=\"email\"]:focus{\n  outline:none;\n  border-color:var(--nitif-teal);\n  background:rgba(0,207,192,0.05);\n}\n.nitif-capture-form input[type=\"email\"]::placeholder{ color:var(--nitif-text-4); }\n.nitif-capture-form button{\n  padding:14px 28px;\n  border-radius:999px;\n  border:none;\n  background:linear-gradient(90deg, var(--nitif-teal), var(--nitif-teal-2));\n  color:#031012;\n  font-family:inherit;\n  font-size:14px;\n  font-weight:700;\n  letter-spacing:.04em;\n  cursor:pointer;\n  transition:.22s ease;\n  box-shadow:0 14px 32px rgba(0,207,192,0.24);\n}\n.nitif-capture-form button:hover{\n  transform:translateY(-2px);\n  box-shadow:0 22px 42px rgba(0,207,192,0.30);\n}\n.nitif-capture-privacy{\n  margin-top:14px;\n  color:var(--nitif-text-4);\n  font-size:11px;\n  letter-spacing:.04em;\n}\n\n\/* ===== Philosophy section ===== *\/\n.nitif-philo-grid{\n  display:grid;\n  grid-template-columns:.92fr 1.08fr;\n  gap:28px;\n  align-items:center;\n}\n.nitif-philo-visual{\n  min-height:520px;\n  display:grid;\n  place-items:center;\n  position:relative;\n  overflow:hidden;\n}\n.nitif-philo-visual::after{\n  content:\"\";\n  position:absolute;\n  inset:0;\n  background-image:\n    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),\n    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);\n  background-size:42px 42px;\n  mask-image:radial-gradient(circle at center, black 34%, transparent 86%);\n}\n.nitif-philo-visual svg{\n  width:86%;\n  opacity:.70;\n  animation:nitifBreath 22s ease-in-out infinite;\n}\n@keyframes nitifBreath{\n  0%,100%{ transform:scale(1) rotate(0deg); opacity:.62; }\n  50%{ transform:scale(1.02) rotate(1.3deg); opacity:.76; }\n}\n.nitif-philo-points{\n  display:grid;\n  gap:15px;\n  margin-top:28px;\n}\n.nitif-point{ padding:22px 20px; }\n.nitif-point-row{\n  display:grid;\n  grid-template-columns:56px 1fr;\n  gap:14px;\n  align-items:flex-start;\n}\n.nitif-point-index{\n  width:42px;\n  height:42px;\n  border-radius:50%;\n  display:grid;\n  place-items:center;\n  color:#041012;\n  background:linear-gradient(180deg, #5be1ff, var(--nitif-teal));\n  font-size:16px;\n  font-weight:800;\n  box-shadow:0 0 22px rgba(0,207,192,.18);\n}\n.nitif-point h4{\n  margin:0 0 8px;\n  color:#fff;\n  font-size:18px;\n  line-height:1.2;\n  font-weight:750;\n}\n.nitif-point p{\n  margin:0;\n  color:var(--nitif-text-3);\n  font-size:14px;\n  line-height:1.78;\n}\n\n\/* ===== CTA ===== *\/\n.nitif-cta-box{\n  max-width:900px;\n  margin:0 auto;\n  padding:42px 28px;\n  text-align:center;\n}\n.nitif-cta-box .nitif-subtitle{\n  margin:0 auto;\n  max-width:650px;\n}\n.nitif-cta-mini{\n  display:flex;\n  justify-content:center;\n  gap:12px;\n  flex-wrap:wrap;\n  margin:26px 0 0;\n}\n.nitif-cta-pill{\n  padding:10px 14px;\n  border-radius:999px;\n  color:var(--nitif-text-2);\n  background:rgba(255,255,255,.035);\n  border:1px solid rgba(255,255,255,.08);\n  font-size:12px;\n}\n\n\/* ===== Footer ===== *\/\n.nitif-footer{\n  padding:38px 0 44px;\n  border-top:1px solid rgba(255,255,255,.08);\n}\n.nitif-footer-grid{\n  display:grid;\n  grid-template-columns:1.2fr 1fr 1fr;\n  gap:24px;\n  margin-bottom:24px;\n}\n.nitif-wordmark{\n  margin-bottom:8px;\n  color:#fff;\n  font-size:24px;\n  font-weight:800;\n  letter-spacing:.08em;\n}\n.nitif-wordmark span{ color:var(--nitif-teal); }\n.nitif-footer p,\n.nitif-footer li,\n.nitif-footer a{\n  color:var(--nitif-text-4);\n  font-size:13px;\n  line-height:1.8;\n  text-decoration:none;\n}\n.nitif-footer h5{\n  margin:0 0 10px;\n  color:#fff;\n  font-size:13px;\n  font-weight:750;\n  letter-spacing:.08em;\n  text-transform:uppercase;\n}\n.nitif-footer ul{\n  list-style:none;\n  margin:0;\n  padding:0;\n}\n.nitif-footer-bottom{\n  display:flex;\n  justify-content:space-between;\n  gap:14px;\n  flex-wrap:wrap;\n  padding-top:16px;\n  border-top:1px solid rgba(255,255,255,.08);\n  color:var(--nitif-text-4);\n  font-size:11px;\n  line-height:1.7;\n}\n\n\/* ===== Responsive ===== *\/\n@media(max-width:1100px){\n  .nitif-premium-grid,\n  .nitif-pillar-grid,\n  .nitif-box-grid{\n    grid-template-columns:1fr 1fr;\n  }\n  .nitif-cycle-layout,\n  .nitif-philo-grid,\n  .nitif-footer-grid{\n    grid-template-columns:1fr;\n  }\n  .nitif-cycle-stage,\n  .nitif-phase-panel{\n    min-height:auto;\n  }\n  .nitif-philo-visual{\n    min-height:420px;\n  }\n}\n\n@media(max-width:760px){\n  .nitif-container{\n    width:min(1160px, calc(100% - 30px));\n  }\n  .nitif-section{\n    padding:74px 0;\n  }\n  .nitif-top-strip-inner{\n    min-height:auto;\n    padding:12px 0 10px;\n    flex-direction:column;\n    align-items:flex-start;\n    justify-content:flex-start;\n    gap:10px;\n  }\n  .nitif-nav{\n    width:100%;\n    display:flex;\n    gap:10px;\n    overflow-x:auto;\n    overflow-y:hidden;\n    padding:0 0 6px;\n    -webkit-overflow-scrolling:touch;\n    scrollbar-width:none;\n  }\n  .nitif-nav::-webkit-scrollbar{ display:none; }\n  .nitif-nav a{\n    display:inline-flex !important;\n    flex:0 0 auto;\n    font-size:10.5px;\n    letter-spacing:.07em;\n    padding:8px 0;\n  }\n  .nitif-top-cta{\n    padding:9px 14px !important;\n    font-size:10.5px !important;\n  }\n  .nitif-hero{\n    padding-top:62px;\n  }\n  .nitif-hero-proof,\n  .nitif-pillar-grid,\n  .nitif-box-grid{\n    grid-template-columns:1fr;\n  }\n  .nitif-cycle-stage{\n    padding:16px 8px;\n    width:100%;\n    display:flex;\n    justify-content:center;\n    overflow:visible;\n  }\n  .nitif-season-wheel{\n    width:100%;\n    max-width:420px;\n    margin:0 auto;\n    transform:none;\n  }\n  .nitif-cycle-core{\n    width:145px;\n    height:145px;\n    padding:16px;\n  }\n  .nitif-cycle-core h4{ font-size:23px; }\n  .nitif-cycle-core p{ font-size:10px; }\n  .nitif-phase-meta{ grid-template-columns:1fr; }\n  .nitif-phase-name{ font-size:34px; }\n  .nitif-wheel-segment .seg-num{ font-size:18px; }\n  .nitif-wheel-segment .seg-label{ font-size:12.5px; }\n  .nitif-download{ grid-template-columns:88px 1fr; }\n  .nitif-download .dl-action{ grid-column:1 \/ -1; margin-top:6px; }\n  .nitif-download .dl-cover{ width:88px; height:118px; }\n}\n\n@media(max-width:520px){\n  .nitif-page::after{\n    width:720px;\n    height:720px;\n    right:-330px;\n    bottom:-120px;\n  }\n  .nitif-title{\n    font-size:clamp(31px, 10vw, 48px);\n  }\n  .nitif-hero-proof{\n    grid-template-columns:1fr;\n  }\n  .nitif-cycle-stage{\n    padding-left:0;\n    padding-right:0;\n  }\n  .nitif-season-wheel{\n    max-width:350px;\n  }\n}\n\n\/* =========================================================\n   V10 SECTIONS\n   The following sections are scoped to their own classes\n   (.nitif-method-v9, .nitif-defis-v9, .nitif-v9-section)\n   so they don't conflict with V8 styles above.\n========================================================= *\/\n\n\/* ---------- scoped reset for this section only ---------- *\/\n.nitif-method-v9 *{box-sizing:border-box;}\n.nitif-method-v9{\n  font-family:'Poppins',sans-serif;\n  background:#05070d;\n  color:#e8eaee;\n  padding:120px 24px 140px;\n  position:relative;\n  overflow:hidden;\n}\n\n\/* atmospheric backdrop \u2014 minimal, premium *\/\n.nitif-method-v9::before{\n  content:\"\";\n  position:absolute;\n  top:-200px; left:50%;\n  transform:translateX(-50%);\n  width:1200px; height:1200px;\n  background:radial-gradient(circle, rgba(0,207,192,0.08) 0%, rgba(0,207,192,0) 60%);\n  pointer-events:none;\n  z-index:0;\n}\n\n.nitif-method-v9 .container{\n  max-width:1240px;\n  margin:0 auto;\n  position:relative;\n  z-index:1;\n}\n\n\/* ---------- header ---------- *\/\n.nitif-eyebrow-v9{\n  font-size:11px;\n  font-weight:600;\n  letter-spacing:3.5px;\n  text-transform:uppercase;\n  color:#00cfc0;\n  margin-bottom:18px;\n}\n\n.nitif-h2-v9{\n  font-size:clamp(34px, 5vw, 56px);\n  font-weight:700;\n  line-height:1.05;\n  letter-spacing:-0.02em;\n  margin:0 0 24px;\n  color:#fff;\n}\n.nitif-h2-v9 .accent{\n  background:linear-gradient(135deg, #00cfc0 0%, #7ce8df 100%);\n  -webkit-background-clip:text;\n  -webkit-text-fill-color:transparent;\n  background-clip:text;\n}\n\n.nitif-lede-v9{\n  font-size:18px;\n  font-weight:300;\n  line-height:1.55;\n  color:#a8b0bd;\n  max-width:680px;\n  margin:0 0 80px;\n}\n\n\/* ---------- wheel layout ---------- *\/\n.wheel-grid{\n  display:grid;\n  grid-template-columns:1fr 1.1fr;\n  gap:80px;\n  align-items:center;\n}\n\n@media (max-width:1024px){\n  .wheel-grid{\n    grid-template-columns:1fr;\n    gap:60px;\n  }\n}\n\n.wheel-stage{\n  position:relative;\n  aspect-ratio:1;\n  max-width:560px;\n  margin:0 auto;\n  width:100%;\n}\n\n\/* ---------- SVG donut ---------- *\/\n.season-wheel{\n  width:100%;\n  height:100%;\n  overflow:visible;\n}\n\n.season-segment{\n  cursor:pointer;\n  transition:opacity 0.35s ease, filter 0.35s ease;\n  transform-origin:center;\n}\n.season-segment:hover,\n.season-segment.is-active{\n  filter:brightness(1.15) drop-shadow(0 0 24px rgba(0,207,192,0.35));\n}\n.season-wheel.has-active .season-segment:not(.is-active){\n  opacity:0.32;\n}\n\n.center-mark{\n  pointer-events:none;\n}\n.center-mark text{\n  font-family:'Poppins',sans-serif;\n  fill:#fff;\n  text-anchor:middle;\n}\n\n\/* connector lines + labels (outside the donut) *\/\n.season-connector{\n  stroke:rgba(255,255,255,0.18);\n  stroke-width:1;\n  fill:none;\n  transition:stroke 0.35s ease;\n}\n.season-segment:hover ~ .connectors .connector-{key},\n.season-segment.is-active ~ .connectors .connector-{key}{\n  stroke:#00cfc0;\n}\n\n.season-label{\n  font-family:'Poppins',sans-serif;\n  fill:#fff;\n  font-weight:600;\n  letter-spacing:0.5px;\n}\n.season-sublabel{\n  font-family:'Poppins',sans-serif;\n  fill:#7c8597;\n  font-weight:400;\n  font-size:11px;\n  letter-spacing:1.5px;\n  text-transform:uppercase;\n}\n\n\/* ---------- detail panel ---------- *\/\n.phase-detail{\n  background:rgba(15,18,28,0.6);\n  border:1px solid rgba(255,255,255,0.06);\n  border-radius:20px;\n  padding:48px 44px;\n  backdrop-filter:blur(20px);\n  -webkit-backdrop-filter:blur(20px);\n  min-height:540px;\n  position:relative;\n}\n\n.detail-empty{\n  display:flex;\n  flex-direction:column;\n  align-items:center;\n  justify-content:center;\n  height:100%;\n  min-height:440px;\n  text-align:center;\n  color:#5a6070;\n  font-weight:300;\n  font-size:15px;\n}\n.detail-empty svg{\n  margin-bottom:24px;\n  opacity:0.4;\n}\n\n.phase-content{\n  display:none;\n  animation:fadeInUp 0.5s ease forwards;\n}\n.phase-content.is-visible{display:block;}\n\n@keyframes fadeInUp{\n  from{opacity:0;transform:translateY(12px);}\n  to{opacity:1;transform:translateY(0);}\n}\n\n.phase-topline{\n  font-size:11px;\n  font-weight:600;\n  letter-spacing:2.5px;\n  text-transform:uppercase;\n  color:#00cfc0;\n  margin-bottom:16px;\n}\n\n.phase-title{\n  font-size:38px;\n  font-weight:700;\n  line-height:1;\n  margin:0 0 8px;\n  color:#fff;\n  letter-spacing:-0.02em;\n}\n.phase-intent{\n  font-size:14px;\n  font-weight:400;\n  color:#7c8597;\n  margin:0 0 28px;\n  letter-spacing:0.3px;\n}\n\n.phase-description{\n  font-size:16px;\n  font-weight:300;\n  line-height:1.65;\n  color:#c5cad4;\n  margin:0 0 32px;\n  padding-bottom:32px;\n  border-bottom:1px solid rgba(255,255,255,0.06);\n}\n\n\/* pillars (FIT\/FED\/FOCUS) *\/\n.pillars{\n  display:grid;\n  grid-template-columns:1fr 1fr 1fr;\n  gap:18px;\n  margin-bottom:36px;\n}\n\n@media (max-width:680px){\n  .pillars{grid-template-columns:1fr;}\n}\n\n.pillar{\n  background:rgba(0,0,0,0.3);\n  border:1px solid rgba(255,255,255,0.05);\n  border-radius:12px;\n  padding:18px 16px;\n}\n.pillar-label{\n  font-size:10px;\n  font-weight:700;\n  letter-spacing:2.5px;\n  color:#00cfc0;\n  margin-bottom:14px;\n  display:flex;\n  align-items:center;\n  gap:8px;\n}\n.pillar-label::before{\n  content:\"\";\n  width:6px;\n  height:6px;\n  background:#00cfc0;\n  border-radius:50%;\n}\n.pillar-resources{\n  list-style:none;\n  padding:0;\n  margin:0;\n}\n.pillar-resources li{\n  margin-bottom:8px;\n}\n.pillar-resources li:last-child{margin-bottom:0;}\n\n.resource-link{\n  display:flex;\n  align-items:flex-start;\n  gap:8px;\n  padding:8px 10px;\n  margin:-8px -10px;\n  border-radius:8px;\n  font-size:13px;\n  font-weight:400;\n  color:#d4d8e0;\n  text-decoration:none;\n  line-height:1.4;\n  cursor:pointer;\n  transition:background 0.2s ease, color 0.2s ease;\n  background:transparent;\n  border:none;\n  width:calc(100% + 20px);\n  text-align:left;\n  font-family:inherit;\n}\n.resource-link:hover{\n  background:rgba(0,207,192,0.08);\n  color:#fff;\n}\n.resource-link .arrow{\n  margin-top:1px;\n  flex-shrink:0;\n  opacity:0.5;\n  transition:transform 0.2s ease, opacity 0.2s ease;\n}\n.resource-link:hover .arrow{\n  transform:translateX(2px);\n  opacity:1;\n}\n\n\/* CTA \u2014 Je commence ici *\/\n.start-cta{\n  display:inline-flex;\n  align-items:center;\n  gap:12px;\n  padding:16px 32px;\n  background:linear-gradient(135deg, #00cfc0 0%, #00B5A8 100%);\n  color:#05070d;\n  font-weight:600;\n  font-size:14px;\n  letter-spacing:1.2px;\n  text-transform:uppercase;\n  border:none;\n  border-radius:999px;\n  cursor:pointer;\n  transition:transform 0.25s ease, box-shadow 0.25s ease;\n  font-family:'Poppins',sans-serif;\n  box-shadow:0 8px 32px rgba(0,207,192,0.2);\n}\n.start-cta:hover{\n  transform:translateY(-2px);\n  box-shadow:0 12px 40px rgba(0,207,192,0.35);\n}\n.start-cta svg{transition:transform 0.25s ease;}\n.start-cta:hover svg{transform:translateX(4px);}\n\n\/* ---------- flowchart modal ---------- *\/\n.flowchart-overlay{\n  position:fixed;\n  inset:0;\n  background:rgba(5,7,13,0.85);\n  backdrop-filter:blur(8px);\n  -webkit-backdrop-filter:blur(8px);\n  z-index:9999;\n  display:none;\n  align-items:center;\n  justify-content:center;\n  padding:24px;\n  opacity:0;\n  transition:opacity 0.3s ease;\n}\n.flowchart-overlay.is-visible{display:flex;opacity:1;}\n\n.flowchart-modal{\n  background:#0a0d18;\n  border:1px solid rgba(0,207,192,0.2);\n  border-radius:24px;\n  padding:48px 40px;\n  max-width:920px;\n  width:100%;\n  max-height:90vh;\n  overflow-y:auto;\n  position:relative;\n  transform:translateY(20px);\n  transition:transform 0.4s ease;\n}\n.flowchart-overlay.is-visible .flowchart-modal{transform:translateY(0);}\n\n.modal-close{\n  position:absolute;\n  top:20px;\n  right:20px;\n  width:36px;\n  height:36px;\n  border:1px solid rgba(255,255,255,0.1);\n  background:transparent;\n  border-radius:50%;\n  cursor:pointer;\n  color:#fff;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  transition:all 0.2s ease;\n  font-family:'Poppins',sans-serif;\n}\n.modal-close:hover{\n  border-color:#00cfc0;\n  color:#00cfc0;\n}\n\n.modal-locked{\n  display:inline-flex;\n  align-items:center;\n  gap:10px;\n  padding:6px 14px;\n  background:rgba(0,207,192,0.12);\n  border:1px solid rgba(0,207,192,0.3);\n  border-radius:999px;\n  font-size:11px;\n  font-weight:600;\n  letter-spacing:2px;\n  text-transform:uppercase;\n  color:#00cfc0;\n  margin-bottom:20px;\n}\n.modal-locked::before{\n  content:\"\";\n  width:6px; height:6px;\n  background:#00cfc0;\n  border-radius:50%;\n  animation:pulse 1.8s ease infinite;\n}\n@keyframes pulse{\n  0%,100%{opacity:1;transform:scale(1);}\n  50%{opacity:0.5;transform:scale(1.4);}\n}\n\n.modal-title{\n  font-size:30px;\n  font-weight:700;\n  margin:0 0 8px;\n  color:#fff;\n  letter-spacing:-0.02em;\n}\n.modal-subtitle{\n  font-size:15px;\n  font-weight:300;\n  color:#a8b0bd;\n  margin:0 0 40px;\n  line-height:1.55;\n}\n\n\/* timeline *\/\n.timeline{\n  display:grid;\n  grid-template-columns:repeat(12, 1fr);\n  gap:4px;\n  margin-bottom:20px;\n}\n.timeline-week{\n  height:36px;\n  border-radius:4px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  font-size:10px;\n  font-weight:600;\n  color:#0a0d18;\n  position:relative;\n}\n.timeline-week.observation{background:rgba(124,232,223,0.5);}\n.timeline-week.preparation{background:rgba(124,232,223,0.7);}\n.timeline-week.core{background:#00cfc0;}\n.timeline-week.transition{background:#00B5A8;opacity:0.7;}\n\n.timeline-legend{\n  display:flex;\n  flex-wrap:wrap;\n  gap:20px;\n  margin-bottom:36px;\n  padding-bottom:32px;\n  border-bottom:1px solid rgba(255,255,255,0.06);\n}\n.timeline-legend-item{\n  display:flex;\n  align-items:center;\n  gap:8px;\n  font-size:12px;\n  color:#a8b0bd;\n}\n.timeline-legend-item .dot{\n  width:10px; height:10px;\n  border-radius:2px;\n}\n\n\/* phases of the journey *\/\n.journey-phases{\n  display:grid;\n  grid-template-columns:repeat(4, 1fr);\n  gap:1px;\n  background:rgba(255,255,255,0.06);\n  border:1px solid rgba(255,255,255,0.06);\n  border-radius:12px;\n  overflow:hidden;\n}\n@media (max-width:680px){\n  .journey-phases{grid-template-columns:1fr;}\n}\n.journey-step{\n  background:#0a0d18;\n  padding:22px 18px;\n  position:relative;\n}\n.journey-step .step-week{\n  font-size:10px;\n  font-weight:600;\n  letter-spacing:2px;\n  text-transform:uppercase;\n  color:#00cfc0;\n  margin-bottom:8px;\n}\n.journey-step .step-title{\n  font-size:15px;\n  font-weight:600;\n  color:#fff;\n  margin:0 0 6px;\n}\n.journey-step .step-desc{\n  font-size:12px;\n  font-weight:300;\n  color:#7c8597;\n  line-height:1.5;\n  margin:0;\n}\n\n.modal-cta-row{\n  margin-top:32px;\n  padding-top:28px;\n  border-top:1px solid rgba(255,255,255,0.06);\n  display:flex;\n  flex-wrap:wrap;\n  gap:16px;\n  align-items:center;\n  justify-content:space-between;\n}\n.modal-secondary-text{\n  font-size:13px;\n  color:#7c8597;\n  font-weight:300;\n  max-width:380px;\n}\n\n\/* mobile refinements *\/\n@media (max-width:680px){\n  .nitif-method-v9{padding:80px 20px 100px;}\n  .phase-detail{padding:32px 24px;}\n  .flowchart-modal{padding:32px 24px;}\n  .timeline{gap:2px;}\n  .timeline-week{height:28px;font-size:0;}\n  .modal-title{font-size:24px;}\n}\n\n.nitif-defis-v9 *{box-sizing:border-box;}\n.nitif-defis-v9{\n  font-family:'Poppins',sans-serif;\n  background:#05070d;\n  color:#e8eaee;\n  padding:120px 24px 140px;\n  position:relative;\n  overflow:hidden;\n}\n.nitif-defis-v9::before{\n  content:\"\";\n  position:absolute;\n  top:50%; left:0;\n  transform:translateY(-50%);\n  width:600px; height:600px;\n  background:radial-gradient(circle, rgba(0,207,192,0.06) 0%, rgba(0,207,192,0) 70%);\n  pointer-events:none;\n  z-index:0;\n}\n.nitif-defis-v9 .container{\n  max-width:1240px;\n  margin:0 auto;\n  position:relative;\n  z-index:1;\n}\n\n\/* ---------- header ---------- *\/\n.defis-eyebrow{\n  font-size:11px;\n  font-weight:600;\n  letter-spacing:3.5px;\n  text-transform:uppercase;\n  color:#00cfc0;\n  margin-bottom:18px;\n}\n.defis-h2{\n  font-size:clamp(34px, 5vw, 56px);\n  font-weight:700;\n  line-height:1.05;\n  letter-spacing:-0.02em;\n  margin:0 0 24px;\n  color:#fff;\n}\n.defis-h2 .accent{\n  background:linear-gradient(135deg, #00cfc0 0%, #7ce8df 100%);\n  -webkit-background-clip:text;\n  -webkit-text-fill-color:transparent;\n  background-clip:text;\n}\n.defis-lede{\n  font-size:18px;\n  font-weight:300;\n  line-height:1.55;\n  color:#a8b0bd;\n  max-width:680px;\n  margin:0 0 24px;\n}\n.defis-lede strong{\n  color:#e8eaee;\n  font-weight:500;\n}\n\n\/* tier separator labels *\/\n.tier-label{\n  display:flex;\n  align-items:center;\n  gap:16px;\n  margin:64px 0 28px;\n  font-size:11px;\n  font-weight:600;\n  letter-spacing:2.5px;\n  text-transform:uppercase;\n  color:#7c8597;\n}\n.tier-label::after{\n  content:\"\";\n  flex:1;\n  height:1px;\n  background:rgba(255,255,255,0.08);\n}\n.tier-label.community{color:#00cfc0;}\n.tier-label.community::before{\n  content:\"\";\n  width:6px;height:6px;\n  background:#00cfc0;\n  border-radius:50%;\n}\n.tier-label.b2b{color:#a8b0bd;}\n.tier-label.b2b::before{\n  content:\"\";\n  width:6px;height:6px;\n  background:#a8b0bd;\n  border-radius:50%;\n}\n\n\/* ---------- card grid ---------- *\/\n.defi-grid{\n  display:grid;\n  grid-template-columns:1fr 1fr;\n  gap:24px;\n}\n@media (max-width:880px){\n  .defi-grid{grid-template-columns:1fr;}\n}\n\n.defi-card{\n  background:rgba(15,18,28,0.5);\n  border:1px solid rgba(255,255,255,0.06);\n  border-radius:20px;\n  padding:36px 32px;\n  cursor:pointer;\n  position:relative;\n  transition:transform 0.3s ease, border-color 0.3s ease, background 0.3s ease;\n  overflow:hidden;\n}\n.defi-card:hover{\n  transform:translateY(-4px);\n  border-color:rgba(0,207,192,0.4);\n  background:rgba(15,18,28,0.7);\n}\n\n\/* free vs B2B differentiation *\/\n.defi-card.free::before{\n  content:\"\";\n  position:absolute;\n  top:0; left:0; right:0;\n  height:3px;\n  background:linear-gradient(90deg, #00cfc0, #7ce8df);\n  opacity:0.85;\n}\n.defi-card.b2b::before{\n  content:\"\";\n  position:absolute;\n  top:0; left:0; right:0;\n  height:3px;\n  background:linear-gradient(90deg, rgba(255,255,255,0.15), rgba(255,255,255,0.05));\n}\n\n.defi-tag{\n  display:inline-block;\n  padding:5px 12px;\n  border-radius:999px;\n  font-size:10px;\n  font-weight:700;\n  letter-spacing:2px;\n  text-transform:uppercase;\n  margin-bottom:16px;\n}\n.defi-tag.free{\n  background:rgba(0,207,192,0.12);\n  color:#00cfc0;\n  border:1px solid rgba(0,207,192,0.25);\n}\n.defi-tag.b2b{\n  background:rgba(255,255,255,0.04);\n  color:#a8b0bd;\n  border:1px solid rgba(255,255,255,0.1);\n}\n\n.defi-title{\n  font-size:28px;\n  font-weight:700;\n  line-height:1.1;\n  letter-spacing:-0.01em;\n  color:#fff;\n  margin:0 0 6px;\n}\n.defi-duration{\n  font-size:13px;\n  font-weight:400;\n  color:#7c8597;\n  margin:0 0 18px;\n  letter-spacing:0.3px;\n}\n.defi-description{\n  font-size:15px;\n  font-weight:300;\n  line-height:1.6;\n  color:#c5cad4;\n  margin:0 0 26px;\n  min-height:72px;\n}\n\n\/* mini stats *\/\n.defi-stats{\n  display:flex;\n  gap:24px;\n  padding-bottom:24px;\n  margin-bottom:24px;\n  border-bottom:1px solid rgba(255,255,255,0.06);\n  flex-wrap:wrap;\n}\n.defi-stat{\n  display:flex;\n  flex-direction:column;\n}\n.defi-stat-num{\n  font-size:22px;\n  font-weight:700;\n  color:#00cfc0;\n  line-height:1;\n}\n.defi-card.b2b .defi-stat-num{color:#fff;}\n.defi-stat-label{\n  font-size:10px;\n  font-weight:500;\n  letter-spacing:1.5px;\n  text-transform:uppercase;\n  color:#7c8597;\n  margin-top:6px;\n}\n\n\/* card CTA *\/\n.defi-cta{\n  display:inline-flex;\n  align-items:center;\n  gap:10px;\n  font-size:13px;\n  font-weight:600;\n  letter-spacing:1px;\n  color:#00cfc0;\n  text-transform:uppercase;\n}\n.defi-card.b2b .defi-cta{color:#e8eaee;}\n.defi-cta svg{\n  transition:transform 0.25s ease;\n}\n.defi-card:hover .defi-cta svg{transform:translateX(4px);}\n\n\/* ---------- modal (shared) ---------- *\/\n.defi-overlay{\n  position:fixed;\n  inset:0;\n  background:rgba(5,7,13,0.85);\n  backdrop-filter:blur(8px);\n  -webkit-backdrop-filter:blur(8px);\n  z-index:9999;\n  display:none;\n  align-items:flex-start;\n  justify-content:center;\n  padding:40px 24px;\n  opacity:0;\n  transition:opacity 0.3s ease;\n  overflow-y:auto;\n}\n.defi-overlay.is-visible{display:flex;opacity:1;}\n\n.defi-modal{\n  background:#0a0d18;\n  border:1px solid rgba(0,207,192,0.18);\n  border-radius:24px;\n  padding:48px 44px;\n  max-width:840px;\n  width:100%;\n  position:relative;\n  transform:translateY(20px);\n  transition:transform 0.4s ease;\n  margin:auto;\n}\n.defi-overlay.is-visible .defi-modal{transform:translateY(0);}\n\n.modal-close{\n  position:absolute;\n  top:20px;\n  right:20px;\n  width:36px;\n  height:36px;\n  border:1px solid rgba(255,255,255,0.1);\n  background:transparent;\n  border-radius:50%;\n  cursor:pointer;\n  color:#fff;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  transition:all 0.2s ease;\n  font-family:'Poppins',sans-serif;\n  font-size:18px;\n}\n.modal-close:hover{\n  border-color:#00cfc0;\n  color:#00cfc0;\n}\n\n.modal-tag{\n  display:inline-block;\n  padding:5px 12px;\n  border-radius:999px;\n  font-size:10px;\n  font-weight:700;\n  letter-spacing:2px;\n  text-transform:uppercase;\n  margin-bottom:18px;\n}\n.modal-tag.free{\n  background:rgba(0,207,192,0.12);\n  color:#00cfc0;\n  border:1px solid rgba(0,207,192,0.25);\n}\n.modal-tag.b2b{\n  background:rgba(255,255,255,0.04);\n  color:#a8b0bd;\n  border:1px solid rgba(255,255,255,0.1);\n}\n\n.modal-title{\n  font-size:34px;\n  font-weight:700;\n  margin:0 0 8px;\n  color:#fff;\n  letter-spacing:-0.02em;\n  line-height:1.05;\n}\n.modal-subtitle{\n  font-size:15px;\n  font-weight:300;\n  color:#a8b0bd;\n  margin:0 0 36px;\n  line-height:1.55;\n}\n\n\/* protocol rules list *\/\n.rules-list{\n  list-style:none;\n  padding:0;\n  margin:0 0 36px;\n}\n.rules-list li{\n  display:flex;\n  gap:20px;\n  padding:18px 0;\n  border-bottom:1px solid rgba(255,255,255,0.05);\n}\n.rules-list li:last-child{border-bottom:none;}\n.rule-num{\n  flex-shrink:0;\n  width:34px;\n  height:34px;\n  border-radius:50%;\n  background:rgba(0,207,192,0.1);\n  border:1px solid rgba(0,207,192,0.3);\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  font-size:13px;\n  font-weight:700;\n  color:#00cfc0;\n}\n.rule-content{flex:1;}\n.rule-title{\n  font-size:15px;\n  font-weight:600;\n  color:#fff;\n  margin:0 0 4px;\n}\n.rule-detail{\n  font-size:13px;\n  font-weight:300;\n  color:#a8b0bd;\n  margin:0;\n  line-height:1.55;\n}\n.rule-science{\n  display:inline-block;\n  margin-top:8px;\n  font-size:11px;\n  font-weight:500;\n  letter-spacing:1px;\n  text-transform:uppercase;\n  color:#00cfc0;\n  opacity:0.7;\n}\n\n\/* B2B includes list *\/\n.includes-grid{\n  display:grid;\n  grid-template-columns:1fr 1fr;\n  gap:14px;\n  margin-bottom:36px;\n}\n@media (max-width:680px){\n  .includes-grid{grid-template-columns:1fr;}\n}\n.include-item{\n  display:flex;\n  align-items:flex-start;\n  gap:12px;\n  padding:14px 16px;\n  background:rgba(255,255,255,0.02);\n  border:1px solid rgba(255,255,255,0.05);\n  border-radius:10px;\n  font-size:13px;\n  font-weight:400;\n  color:#d4d8e0;\n  line-height:1.5;\n}\n.include-item svg{\n  flex-shrink:0;\n  margin-top:2px;\n  color:#00cfc0;\n}\n\n\/* CTA row *\/\n.modal-cta-row{\n  margin-top:32px;\n  padding-top:28px;\n  border-top:1px solid rgba(255,255,255,0.06);\n  display:flex;\n  flex-wrap:wrap;\n  gap:16px;\n  align-items:center;\n  justify-content:space-between;\n}\n.modal-secondary-text{\n  font-size:13px;\n  color:#7c8597;\n  font-weight:300;\n  max-width:380px;\n  line-height:1.5;\n}\n\n.modal-cta{\n  display:inline-flex;\n  align-items:center;\n  gap:12px;\n  padding:16px 32px;\n  background:linear-gradient(135deg, #00cfc0 0%, #00B5A8 100%);\n  color:#05070d;\n  font-weight:600;\n  font-size:14px;\n  letter-spacing:1.2px;\n  text-transform:uppercase;\n  border:none;\n  border-radius:999px;\n  cursor:pointer;\n  transition:transform 0.25s ease, box-shadow 0.25s ease;\n  font-family:'Poppins',sans-serif;\n  box-shadow:0 8px 32px rgba(0,207,192,0.2);\n  text-decoration:none;\n}\n.modal-cta:hover{\n  transform:translateY(-2px);\n  box-shadow:0 12px 40px rgba(0,207,192,0.35);\n}\n.modal-cta svg{transition:transform 0.25s ease;}\n.modal-cta:hover svg{transform:translateX(4px);}\n\n.modal-cta.outline{\n  background:transparent;\n  color:#00cfc0;\n  border:1px solid rgba(0,207,192,0.4);\n  box-shadow:none;\n}\n.modal-cta.outline:hover{\n  background:rgba(0,207,192,0.08);\n  box-shadow:0 4px 20px rgba(0,207,192,0.15);\n}\n\n\/* B2B specific *\/\n.b2b-pricing-note{\n  display:flex;\n  align-items:center;\n  gap:12px;\n  padding:14px 18px;\n  background:rgba(255,255,255,0.02);\n  border:1px solid rgba(255,255,255,0.06);\n  border-radius:10px;\n  font-size:13px;\n  font-weight:400;\n  color:#a8b0bd;\n  margin-bottom:24px;\n  line-height:1.5;\n}\n.b2b-pricing-note svg{\n  flex-shrink:0;\n  color:#7c8597;\n}\n\n\/* sharable note (free defis) *\/\n.shareable-note{\n  display:flex;\n  align-items:flex-start;\n  gap:14px;\n  padding:18px 20px;\n  background:linear-gradient(135deg, rgba(0,207,192,0.08), rgba(0,207,192,0.02));\n  border:1px solid rgba(0,207,192,0.15);\n  border-radius:12px;\n  font-size:13px;\n  font-weight:300;\n  color:#d4d8e0;\n  line-height:1.55;\n  margin-bottom:24px;\n}\n.shareable-note svg{\n  flex-shrink:0;\n  color:#00cfc0;\n  margin-top:2px;\n}\n.shareable-note strong{\n  color:#fff;\n  font-weight:600;\n  display:block;\n  margin-bottom:2px;\n}\n\n\/* mobile refinements *\/\n@media (max-width:680px){\n  .nitif-defis-v9{padding:80px 20px 100px;}\n  .defi-card{padding:28px 24px;}\n  .defi-modal{padding:32px 24px;}\n  .modal-title{font-size:26px;}\n  .defi-title{font-size:24px;}\n}\n\n\/* Fix: replace V8 line 18 `scrollbar-gutter:stable` with auto.\n   Stable was causing the persistent right-side bar even when no overflow. *\/\nhtml{\n  scrollbar-gutter:auto !important;\n}\n\/* ================== SHARED V9 SECTION SCAFFOLD ================== *\/\n.nitif-v9-section{\n  font-family:'Poppins',sans-serif;\n  background:#05070d;\n  color:#e8eaee;\n  padding:120px 24px;\n  position:relative;\n  overflow:hidden;\n}\n.nitif-v9-section *{box-sizing:border-box;}\n.nitif-v9-section .container{\n  max-width:1240px;\n  margin:0 auto;\n  position:relative;\n  z-index:1;\n}\n.nitif-v9-section .eyebrow{\n  font-size:11px;\n  font-weight:600;\n  letter-spacing:3.5px;\n  text-transform:uppercase;\n  color:#00cfc0;\n  margin-bottom:18px;\n}\n.nitif-v9-section .h2{\n  font-size:clamp(34px, 5vw, 56px);\n  font-weight:700;\n  line-height:1.05;\n  letter-spacing:-0.02em;\n  margin:0 0 24px;\n  color:#fff;\n}\n.nitif-v9-section .h2 .accent{\n  background:linear-gradient(135deg, #00cfc0 0%, #7ce8df 100%);\n  -webkit-background-clip:text;\n  -webkit-text-fill-color:transparent;\n  background-clip:text;\n}\n.nitif-v9-section .lede{\n  font-size:18px;\n  font-weight:300;\n  line-height:1.55;\n  color:#a8b0bd;\n  max-width:680px;\n  margin:0 0 64px;\n}\n\n\/* ================== BOXES SECTION ================== *\/\n.nitif-v9-boxes::before{\n  content:\"\";\n  position:absolute;\n  top:-100px; right:-200px;\n  width:700px; height:700px;\n  background:radial-gradient(circle, rgba(0,207,192,0.05) 0%, rgba(0,207,192,0) 70%);\n  pointer-events:none;\n  z-index:0;\n}\n.boxes-grid{\n  display:grid;\n  grid-template-columns:repeat(2, 1fr);\n  gap:20px;\n}\n@media (max-width:880px){\n  .boxes-grid{grid-template-columns:1fr;}\n}\n.box-card{\n  background:rgba(15,18,28,0.55);\n  border:1px solid rgba(255,255,255,0.06);\n  border-radius:20px;\n  padding:36px 32px;\n  position:relative;\n  cursor:pointer;\n  transition:transform 0.3s ease, border-color 0.3s ease, background 0.3s ease;\n  overflow:hidden;\n  display:flex;\n  flex-direction:column;\n}\n.box-card:hover{\n  transform:translateY(-4px);\n  border-color:rgba(0,207,192,0.4);\n  background:rgba(15,18,28,0.7);\n}\n.box-card::before{\n  content:\"\";\n  position:absolute;\n  top:0; left:0; right:0;\n  height:3px;\n  background:linear-gradient(90deg, #00cfc0, #7ce8df);\n  opacity:0.7;\n}\n.box-tag{\n  display:inline-flex;\n  align-items:center;\n  gap:8px;\n  padding:5px 12px;\n  border-radius:999px;\n  font-size:10px;\n  font-weight:700;\n  letter-spacing:2px;\n  text-transform:uppercase;\n  margin-bottom:18px;\n  align-self:flex-start;\n  background:rgba(0,207,192,0.1);\n  color:#00cfc0;\n  border:1px solid rgba(0,207,192,0.25);\n}\n.box-tag.b2b{\n  background:rgba(255,255,255,0.04);\n  color:#a8b0bd;\n  border-color:rgba(255,255,255,0.1);\n}\n.box-tag::before{\n  content:\"\";\n  width:6px;height:6px;\n  background:currentColor;\n  border-radius:50%;\n}\n.box-title{\n  font-size:28px;\n  font-weight:700;\n  line-height:1.1;\n  letter-spacing:-0.01em;\n  color:#fff;\n  margin:0 0 14px;\n}\n.box-desc{\n  font-size:15px;\n  font-weight:300;\n  line-height:1.6;\n  color:#c5cad4;\n  margin:0 0 22px;\n}\n.box-now{\n  font-size:11px;\n  font-weight:600;\n  letter-spacing:2px;\n  text-transform:uppercase;\n  color:#00cfc0;\n  margin-bottom:10px;\n}\n.box-items{\n  list-style:none;\n  padding:0;\n  margin:0 0 24px;\n  display:flex;\n  flex-wrap:wrap;\n  gap:8px;\n}\n.box-items li{\n  font-size:12px;\n  font-weight:500;\n  padding:6px 12px;\n  background:rgba(0,207,192,0.06);\n  border:1px solid rgba(0,207,192,0.15);\n  border-radius:999px;\n  color:#d4d8e0;\n}\n.box-roadmap{\n  font-size:12px;\n  font-weight:300;\n  color:#7c8597;\n  padding-top:18px;\n  border-top:1px solid rgba(255,255,255,0.06);\n  font-style:italic;\n  line-height:1.5;\n  margin-top:auto;\n}\n.box-roadmap strong{\n  color:#a8b0bd;\n  font-weight:500;\n  font-style:normal;\n  display:block;\n  margin-bottom:4px;\n  letter-spacing:1px;\n  text-transform:uppercase;\n  font-size:10px;\n}\n\n\/* ================== RESSOURCES SECTION ================== *\/\n.nitif-v9-resources::before{\n  content:\"\";\n  position:absolute;\n  top:30%; left:-300px;\n  width:700px; height:700px;\n  background:radial-gradient(circle, rgba(0,207,192,0.05) 0%, rgba(0,207,192,0) 70%);\n  pointer-events:none;\n  z-index:0;\n}\n\n\/* newsletter spotlight (top of section) *\/\n.newsletter-spotlight{\n  display:grid;\n  grid-template-columns:1.1fr 1fr;\n  gap:40px;\n  align-items:center;\n  background:linear-gradient(135deg, rgba(0,207,192,0.08), rgba(0,207,192,0.02));\n  border:1px solid rgba(0,207,192,0.18);\n  border-radius:24px;\n  padding:44px 44px;\n  margin-bottom:80px;\n  position:relative;\n  overflow:hidden;\n}\n.newsletter-spotlight::before{\n  content:\"\";\n  position:absolute;\n  top:-50%;left:-20%;\n  width:140%;height:200%;\n  background:radial-gradient(ellipse, rgba(0,207,192,0.04) 0%, transparent 60%);\n  pointer-events:none;\n}\n@media (max-width:780px){\n  .newsletter-spotlight{\n    grid-template-columns:1fr;\n    padding:32px 28px;\n  }\n}\n.newsletter-content{position:relative;z-index:1;}\n.newsletter-eyebrow{\n  display:inline-block;\n  font-size:11px;\n  font-weight:600;\n  letter-spacing:2.5px;\n  text-transform:uppercase;\n  color:#00cfc0;\n  margin-bottom:14px;\n}\n.newsletter-title{\n  font-size:30px;\n  font-weight:700;\n  line-height:1.1;\n  margin:0 0 12px;\n  color:#fff;\n  letter-spacing:-0.02em;\n}\n.newsletter-pitch{\n  font-size:15px;\n  font-weight:300;\n  line-height:1.6;\n  color:#c5cad4;\n  margin:0 0 22px;\n}\n.newsletter-cadence{\n  display:flex;\n  flex-wrap:wrap;\n  gap:18px;\n  margin-bottom:8px;\n  font-size:12px;\n}\n.newsletter-cadence span{\n  display:inline-flex;\n  align-items:center;\n  gap:8px;\n  color:#a8b0bd;\n  font-weight:400;\n}\n.newsletter-cadence span::before{\n  content:\"\";\n  width:5px; height:5px;\n  background:#00cfc0;\n  border-radius:50%;\n}\n\n\/* email form *\/\n.newsletter-form{\n  position:relative;\n  z-index:1;\n}\n.email-input-row{\n  display:flex;\n  gap:10px;\n  flex-wrap:wrap;\n}\n.email-input{\n  flex:1;\n  min-width:180px;\n  padding:16px 18px;\n  background:rgba(5,7,13,0.6);\n  border:1px solid rgba(255,255,255,0.1);\n  border-radius:12px;\n  color:#fff;\n  font-family:'Poppins',sans-serif;\n  font-size:14px;\n  font-weight:400;\n  outline:none;\n  transition:border-color 0.2s ease;\n}\n.email-input:focus{\n  border-color:#00cfc0;\n}\n.email-input::placeholder{\n  color:#5a6070;\n}\n.email-submit{\n  padding:16px 28px;\n  background:linear-gradient(135deg, #00cfc0 0%, #00B5A8 100%);\n  color:#05070d;\n  font-family:'Poppins',sans-serif;\n  font-weight:600;\n  font-size:13px;\n  letter-spacing:1px;\n  text-transform:uppercase;\n  border:none;\n  border-radius:12px;\n  cursor:pointer;\n  transition:transform 0.2s ease, box-shadow 0.2s ease;\n  white-space:nowrap;\n}\n.email-submit:hover{\n  transform:translateY(-2px);\n  box-shadow:0 8px 24px rgba(0,207,192,0.3);\n}\n.newsletter-disclaimer{\n  margin-top:12px;\n  font-size:11px;\n  color:#7c8597;\n  font-weight:300;\n}\n\n\/* resources tabs + grid *\/\n.resources-tabs{\n  display:flex;\n  gap:8px;\n  flex-wrap:wrap;\n  margin-bottom:32px;\n  padding-bottom:20px;\n  border-bottom:1px solid rgba(255,255,255,0.06);\n}\n.resource-tab{\n  padding:10px 18px;\n  background:transparent;\n  border:1px solid rgba(255,255,255,0.08);\n  border-radius:999px;\n  color:#a8b0bd;\n  font-family:'Poppins',sans-serif;\n  font-size:12px;\n  font-weight:500;\n  letter-spacing:1px;\n  text-transform:uppercase;\n  cursor:pointer;\n  transition:all 0.2s ease;\n}\n.resource-tab:hover{\n  color:#fff;\n  border-color:rgba(0,207,192,0.3);\n}\n.resource-tab.active{\n  background:rgba(0,207,192,0.12);\n  border-color:#00cfc0;\n  color:#00cfc0;\n}\n\n.resources-grid{\n  display:grid;\n  grid-template-columns:repeat(2, 1fr);\n  gap:14px;\n}\n@media (max-width:780px){\n  .resources-grid{grid-template-columns:1fr;}\n}\n.resource-item{\n  display:flex;\n  align-items:center;\n  gap:18px;\n  padding:18px 20px;\n  background:rgba(15,18,28,0.45);\n  border:1px solid rgba(255,255,255,0.05);\n  border-radius:14px;\n  text-decoration:none;\n  color:inherit;\n  cursor:pointer;\n  transition:all 0.25s ease;\n  position:relative;\n  font-family:inherit;\n  text-align:left;\n  width:100%;\n}\n.resource-item:hover{\n  border-color:rgba(0,207,192,0.35);\n  background:rgba(15,18,28,0.7);\n  transform:translateX(2px);\n}\n.resource-icon{\n  flex-shrink:0;\n  width:44px;\n  height:44px;\n  border-radius:10px;\n  background:rgba(0,207,192,0.08);\n  border:1px solid rgba(0,207,192,0.2);\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  font-size:9px;\n  font-weight:700;\n  letter-spacing:1px;\n  color:#00cfc0;\n}\n.resource-meta{flex:1;min-width:0;}\n.resource-cat{\n  font-size:10px;\n  font-weight:600;\n  letter-spacing:1.5px;\n  text-transform:uppercase;\n  color:#7c8597;\n  margin-bottom:4px;\n}\n.resource-title{\n  font-size:14px;\n  font-weight:600;\n  color:#fff;\n  margin:0 0 3px;\n  line-height:1.3;\n}\n.resource-desc{\n  font-size:12px;\n  font-weight:300;\n  color:#a8b0bd;\n  margin:0;\n  line-height:1.4;\n}\n.resource-arrow{\n  flex-shrink:0;\n  color:#7c8597;\n  transition:transform 0.2s ease, color 0.2s ease;\n}\n.resource-item:hover .resource-arrow{\n  color:#00cfc0;\n  transform:translateX(2px);\n}\n.resource-locked{\n  position:absolute;\n  top:14px;\n  right:14px;\n  font-size:9px;\n  font-weight:600;\n  letter-spacing:1px;\n  text-transform:uppercase;\n  color:#7c8597;\n}\n\n\/* ================== SPIRALE SECTION ================== *\/\n.nitif-v9-spirale{\n  padding-bottom:140px;\n}\n.nitif-v9-spirale::before{\n  content:\"\";\n  position:absolute;\n  bottom:-200px; right:-100px;\n  width:800px; height:800px;\n  background:radial-gradient(circle, rgba(0,207,192,0.06) 0%, rgba(0,207,192,0) 60%);\n  pointer-events:none;\n  z-index:0;\n}\n.spirale-grid{\n  display:grid;\n  grid-template-columns:1fr 1.05fr;\n  gap:80px;\n  align-items:center;\n}\n@media (max-width:1024px){\n  .spirale-grid{grid-template-columns:1fr; gap:50px;}\n}\n\n.spirale-visual{\n  position:relative;\n  aspect-ratio:1;\n  max-width:520px;\n  margin:0 auto;\n  width:100%;\n}\n.spirale-svg{\n  width:100%;\n  height:100%;\n}\n.spirale-marker{\n  cursor:pointer;\n  transition:transform 0.3s ease;\n}\n.spirale-marker:hover{\n  transform:scale(1.15);\n}\n\n.spirale-content .h2{margin-bottom:18px;}\n.spirale-content .lede{margin-bottom:36px;}\n\n.spirale-functions{\n  display:flex;\n  flex-direction:column;\n  gap:18px;\n  margin-bottom:36px;\n}\n.spirale-function{\n  display:flex;\n  gap:18px;\n  padding:20px 22px;\n  background:rgba(15,18,28,0.5);\n  border:1px solid rgba(255,255,255,0.06);\n  border-radius:14px;\n  transition:border-color 0.25s ease, background 0.25s ease;\n}\n.spirale-function:hover{\n  border-color:rgba(0,207,192,0.25);\n  background:rgba(15,18,28,0.7);\n}\n.spirale-function-icon{\n  flex-shrink:0;\n  width:38px;\n  height:38px;\n  border-radius:10px;\n  background:rgba(0,207,192,0.1);\n  border:1px solid rgba(0,207,192,0.25);\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  color:#00cfc0;\n}\n.spirale-function-content{flex:1;}\n.spirale-function-title{\n  font-size:15px;\n  font-weight:600;\n  color:#fff;\n  margin:0 0 4px;\n}\n.spirale-function-desc{\n  font-size:13px;\n  font-weight:300;\n  color:#a8b0bd;\n  margin:0;\n  line-height:1.55;\n}\n\n.spirale-cta-row{\n  display:flex;\n  gap:14px;\n  flex-wrap:wrap;\n  align-items:center;\n}\n.spirale-primary-cta{\n  display:inline-flex;\n  align-items:center;\n  gap:12px;\n  padding:16px 32px;\n  background:linear-gradient(135deg, #00cfc0 0%, #00B5A8 100%);\n  color:#05070d;\n  font-weight:600;\n  font-size:13px;\n  letter-spacing:1.2px;\n  text-transform:uppercase;\n  border-radius:999px;\n  text-decoration:none;\n  transition:transform 0.25s ease, box-shadow 0.25s ease;\n  box-shadow:0 8px 24px rgba(0,207,192,0.2);\n}\n.spirale-primary-cta:hover{\n  transform:translateY(-2px);\n  box-shadow:0 12px 32px rgba(0,207,192,0.35);\n}\n.spirale-primary-cta svg{transition:transform 0.25s ease;}\n.spirale-primary-cta:hover svg{transform:translateX(4px);}\n\n\/* ================== COMMUNAUT\u00c9 SECTION ================== *\/\n.community-grid{\n  display:grid;\n  grid-template-columns:repeat(3, 1fr);\n  gap:20px;\n}\n@media (max-width:980px){\n  .community-grid{grid-template-columns:1fr;}\n}\n\n.community-card{\n  background:rgba(15,18,28,0.5);\n  border:1px solid rgba(255,255,255,0.06);\n  border-radius:20px;\n  padding:32px 28px;\n  position:relative;\n  transition:all 0.3s ease;\n  text-decoration:none;\n  color:inherit;\n  display:flex;\n  flex-direction:column;\n  overflow:hidden;\n}\n.community-card::before{\n  content:\"\";\n  position:absolute;\n  top:0;left:0;right:0;\n  height:3px;\n  background:linear-gradient(90deg, #00cfc0, #7ce8df);\n  opacity:0;\n  transition:opacity 0.3s ease;\n}\n.community-card:hover{\n  transform:translateY(-4px);\n  border-color:rgba(0,207,192,0.35);\n  background:rgba(15,18,28,0.75);\n}\n.community-card:hover::before{opacity:0.7;}\n.community-status{\n  display:inline-flex;\n  align-items:center;\n  gap:7px;\n  padding:5px 12px;\n  border-radius:999px;\n  font-size:10px;\n  font-weight:700;\n  letter-spacing:2px;\n  text-transform:uppercase;\n  margin-bottom:18px;\n  align-self:flex-start;\n  background:rgba(0,207,192,0.1);\n  color:#00cfc0;\n  border:1px solid rgba(0,207,192,0.25);\n}\n.community-status.active::before{\n  content:\"\";\n  width:6px;height:6px;\n  background:#00cfc0;\n  border-radius:50%;\n  animation:pulse 1.8s ease infinite;\n}\n.community-status.upcoming{\n  background:rgba(255,255,255,0.04);\n  color:#a8b0bd;\n  border-color:rgba(255,255,255,0.12);\n}\n@keyframes pulse{\n  0%,100%{opacity:1;transform:scale(1);}\n  50%{opacity:0.4;transform:scale(1.4);}\n}\n.community-platform{\n  font-size:11px;\n  font-weight:600;\n  letter-spacing:2px;\n  text-transform:uppercase;\n  color:#7c8597;\n  margin-bottom:8px;\n}\n.community-name{\n  font-size:24px;\n  font-weight:700;\n  line-height:1.1;\n  letter-spacing:-0.01em;\n  color:#fff;\n  margin:0 0 14px;\n}\n.community-desc{\n  font-size:14px;\n  font-weight:300;\n  line-height:1.55;\n  color:#c5cad4;\n  margin:0 0 22px;\n  flex:1;\n}\n.community-rhythm{\n  font-size:11px;\n  font-weight:500;\n  letter-spacing:1.2px;\n  text-transform:uppercase;\n  color:#00cfc0;\n  margin-bottom:18px;\n  padding-bottom:14px;\n  border-bottom:1px solid rgba(255,255,255,0.06);\n}\n.community-cta-text{\n  font-size:13px;\n  font-weight:600;\n  letter-spacing:1px;\n  color:#00cfc0;\n  display:inline-flex;\n  align-items:center;\n  gap:8px;\n}\n.community-cta-text svg{transition:transform 0.25s ease;}\n.community-card:hover .community-cta-text svg{transform:translateX(4px);}\n.community-cta-text.soft{color:#a8b0bd;}\n\n.community-hashtag-band{\n  margin-top:60px;\n  padding:32px 36px;\n  background:rgba(15,18,28,0.4);\n  border:1px solid rgba(255,255,255,0.06);\n  border-radius:20px;\n  display:flex;\n  align-items:center;\n  justify-content:space-between;\n  gap:24px;\n  flex-wrap:wrap;\n}\n.community-hashtag-text{\n  flex:1;\n  min-width:280px;\n}\n.community-hashtag{\n  font-size:22px;\n  font-weight:700;\n  color:#00cfc0;\n  margin:0 0 6px;\n  letter-spacing:-0.01em;\n}\n.community-hashtag-desc{\n  font-size:13px;\n  font-weight:300;\n  color:#a8b0bd;\n  margin:0;\n}\n\n\/* mobile final *\/\n@media (max-width:680px){\n  .nitif-v9-section{padding:80px 20px;}\n  .box-card, .community-card{padding:28px 24px;}\n  .newsletter-spotlight{padding:28px 22px;}\n  .newsletter-title{font-size:24px;}\n  .community-hashtag-band{flex-direction:column;align-items:flex-start;}\n}\n\n\n\/* =========================================================\n   NITIF V10.4 \u2014 PUBLISH PATCH\n   - Removes double-scrollbar behavior in modals\n   - Adds clean email-capture success\/error states\n   - Improves mobile overflow containment\n   - Keeps WordPress\/EasyWP single-block compatibility\n========================================================= *\/\n\nhtml.nitif-modal-open,\nbody.nitif-modal-open{\n  overflow:hidden !important;\n  height:100% !important;\n}\n\n.flowchart-overlay,\n.defi-overlay{\n  overscroll-behavior:contain;\n  overflow-y:auto !important;\n  overflow-x:hidden !important;\n}\n\n.flowchart-overlay{\n  align-items:flex-start !important;\n  justify-content:center !important;\n}\n\n.flowchart-modal{\n  margin:auto !important;\n  max-height:none !important;\n  overflow:visible !important;\n}\n\n.defi-modal{\n  margin:40px auto !important;\n}\n\n.nitif-form-message{\n  width:100%;\n  margin-top:14px;\n  padding:14px 18px;\n  border-radius:12px;\n  font-size:13px;\n  line-height:1.55;\n  text-align:center;\n  display:none;\n}\n\n.nitif-form-message.is-success{\n  display:block;\n  background:rgba(0,207,192,0.10);\n  border:1px solid rgba(0,207,192,0.30);\n  color:#00cfc0;\n}\n\n.nitif-form-message.is-error{\n  display:block;\n  background:rgba(255,90,90,0.10);\n  border:1px solid rgba(255,90,90,0.28);\n  color:#ff8a8a;\n}\n\n.newsletter-form.is-submitted .email-input-row,\n.newsletter-form.is-submitted .newsletter-disclaimer{\n  display:none;\n}\n\n.newsletter-form.is-loading .email-submit{\n  opacity:.72;\n  pointer-events:none;\n}\n\n.newsletter-spotlight{\n  scroll-margin-top:96px;\n}\n\n@media(max-width:680px){\n  .flowchart-overlay,\n  .defi-overlay{\n    padding:18px 14px !important;\n  }\n\n  .flowchart-modal,\n  .defi-modal{\n    margin:18px auto !important;\n  }\n\n  .email-input-row{\n    flex-direction:column;\n  }\n\n  .email-input,\n  .email-submit{\n    width:100%;\n  }\n}\n\n\n\/* =========================================================\n   NITIF V10.4 \u2014 WORDPRESS \/ MOBILE SCROLLBAR HARDENING\n   Keeps only the browser\/page scrollbar visible and prevents\n   internal WordPress wrappers from creating a second scrollbar.\n========================================================= *\/\nhtml,\nbody{\n  width:100% !important;\n  min-width:0 !important;\n  overflow-x:hidden !important;\n  overflow-y:auto !important;\n  scrollbar-gutter:auto !important;\n}\n\nbody .site,\nbody .site-content,\nbody .content-area,\nbody .site-main,\nbody main,\nbody article,\nbody .entry-content,\nbody .post-content,\nbody .inside-article,\nbody .wp-site-blocks,\nbody .wp-block-post-content,\nbody .wp-block-group,\nbody .wp-block-template-part,\nbody .is-layout-constrained,\nbody .is-layout-flow,\nbody .wp-block-html{\n  height:auto !important;\n  min-height:0 !important;\n  overflow-x:hidden !important;\n  overflow-y:visible !important;\n  scrollbar-gutter:auto !important;\n}\n\n\/* Hide scrollbar only on possible internal WordPress wrappers.\n   The main browser scrollbar remains available on html\/body. *\/\nbody .site::-webkit-scrollbar,\nbody .site-content::-webkit-scrollbar,\nbody .content-area::-webkit-scrollbar,\nbody .site-main::-webkit-scrollbar,\nbody main::-webkit-scrollbar,\nbody article::-webkit-scrollbar,\nbody .entry-content::-webkit-scrollbar,\nbody .post-content::-webkit-scrollbar,\nbody .inside-article::-webkit-scrollbar,\nbody .wp-site-blocks::-webkit-scrollbar,\nbody .wp-block-post-content::-webkit-scrollbar,\nbody .wp-block-group::-webkit-scrollbar,\nbody .wp-block-html::-webkit-scrollbar{\n  width:0 !important;\n  height:0 !important;\n  display:none !important;\n}\n\n.nitif-page{\n  max-width:100vw !important;\n  overflow-x:hidden !important;\n  overflow-y:visible !important;\n  scrollbar-gutter:auto !important;\n}\n\n@supports (overflow:clip){\n  .nitif-page{ overflow-x:clip !important; }\n}\n\n\/* Logged-in WordPress preview: keep sticky header below admin bar. *\/\nbody.admin-bar .nitif-top-strip{ top:32px; }\n@media(max-width:782px){\n  body.admin-bar .nitif-top-strip{ top:46px; }\n}\n\n\/* Mobile: prevent SVG labels outside the seasonal wheel from creating horizontal bleed. *\/\n@media(max-width:680px){\n  .wheel-stage{ overflow:hidden !important; max-width:100% !important; }\n  .season-wheel{ overflow:hidden !important; }\n  .season-wheel .label-group{ display:none !important; }\n}\n\n\/* Resource gate context message *\/\n.nitif-selected-resource{\n  display:none;\n  margin:14px 0 0;\n  padding:12px 14px;\n  border-radius:12px;\n  background:rgba(255,255,255,0.035);\n  border:1px solid rgba(255,255,255,0.08);\n  color:#a8b0bd;\n  font-size:12px;\n  line-height:1.55;\n  text-align:left;\n}\n.nitif-selected-resource.is-visible{ display:block; }\n.nitif-selected-resource strong{ color:#fff; font-weight:600; }\n\n\n\n.nitif-nav{\n  gap:18px;\n}\n\n.nitif-form-grid{\n  display:grid;\n  grid-template-columns:1fr 1fr;\n  gap:12px;\n  margin-bottom:12px;\n}\n\n.nitif-field{\n  text-align:left;\n}\n\n.nitif-field-full{\n  grid-column:1 \/ -1;\n}\n\n.nitif-field label{\n  display:block;\n  margin:0 0 7px;\n  color:#a8b0bd;\n  font-size:10px;\n  font-weight:700;\n  letter-spacing:1.4px;\n  text-transform:uppercase;\n}\n\n.nitif-select{\n  appearance:none;\n  -webkit-appearance:none;\n  background-image:\n    linear-gradient(45deg, transparent 50%, rgba(238,247,250,.64) 50%),\n    linear-gradient(135deg, rgba(238,247,250,.64) 50%, transparent 50%);\n  background-position:\n    calc(100% - 18px) 50%,\n    calc(100% - 12px) 50%;\n  background-size:6px 6px, 6px 6px;\n  background-repeat:no-repeat;\n}\n\n.nitif-capture-options{\n  display:grid;\n  gap:10px;\n  margin:12px 0 16px;\n  text-align:left;\n}\n\n.nitif-checkline{\n  display:grid;\n  grid-template-columns:18px 1fr;\n  gap:10px;\n  align-items:flex-start;\n  color:#a8b0bd;\n  font-size:11.5px;\n  line-height:1.55;\n}\n\n.nitif-checkline input{\n  width:16px;\n  height:16px;\n  margin:2px 0 0;\n  accent-color:#00cfc0;\n}\n\n.nitif-submit-wide{\n  width:100%;\n  justify-content:center;\n  border-radius:12px !important;\n}\n\n.nitif-capture-status{\n  display:none;\n  margin-top:10px;\n  color:#00cfc0;\n  font-size:12px;\n  line-height:1.55;\n}\n\n.nitif-capture-status.is-visible{ display:block; }\n\n@media(max-width:760px){\n  .nitif-page{\n    height:100svh !important;\n    max-height:100svh !important;\n    scroll-padding-top:122px;\n  }\n\n  .nitif-top-strip-inner{\n    padding:10px 0 8px;\n  }\n\n  .nitif-nav{\n    padding-bottom:4px;\n  }\n\n  .nitif-form-grid{\n    grid-template-columns:1fr;\n  }\n\n  .nitif-submit-wide{\n    min-height:52px;\n  }\n}\n\n\n\n.nitif-challenge-intro-overlay{\n  display:none;\n  background:rgba(5,7,13,0.88);\n  backdrop-filter:blur(8px);\n  -webkit-backdrop-filter:blur(8px);\n  opacity:0;\n  transition:opacity .3s ease;\n}\n.nitif-challenge-intro-overlay.is-visible{ display:flex; opacity:1; }\n\n.nitif-challenge-intro-modal{\n  background:#0a0d18;\n  border:1px solid rgba(0,207,192,0.20);\n  border-radius:24px;\n  padding:48px 44px;\n  max-width:920px;\n  width:100%;\n  position:relative;\n  box-shadow:0 28px 80px rgba(0,0,0,.42);\n}\n\n.nitif-intro-steps{\n  display:grid;\n  grid-template-columns:1fr 1fr;\n  gap:14px;\n  margin:28px 0 22px;\n}\n.nitif-intro-step{\n  display:grid;\n  grid-template-columns:44px 1fr;\n  gap:14px;\n  padding:18px;\n  border:1px solid rgba(255,255,255,.07);\n  background:rgba(255,255,255,.025);\n  border-radius:14px;\n}\n.nitif-intro-step span{\n  width:34px;\n  height:34px;\n  display:grid;\n  place-items:center;\n  border-radius:50%;\n  background:rgba(0,207,192,.12);\n  border:1px solid rgba(0,207,192,.28);\n  color:#00cfc0;\n  font-size:12px;\n  font-weight:800;\n}\n.nitif-intro-step p{\n  margin:0;\n  color:#a8b0bd;\n  font-size:13px;\n  line-height:1.65;\n}\n.nitif-intro-step strong{ color:#fff; font-weight:700; }\n.nitif-intro-community-links{\n  display:flex;\n  flex-wrap:wrap;\n  gap:10px;\n  margin:0 0 8px;\n}\n.nitif-intro-community-links a{\n  color:#00cfc0 !important;\n  text-decoration:none !important;\n  border:1px solid rgba(0,207,192,.28);\n  background:rgba(0,207,192,.08);\n  border-radius:999px;\n  padding:9px 13px;\n  font-size:12px;\n  font-weight:700;\n}\n\n.nitif-pillar-title-link{\n  appearance:none;\n  -webkit-appearance:none;\n  border:none;\n  background:transparent;\n  padding:0;\n  margin:0;\n  color:#fff;\n  font:inherit;\n  font-size:34px;\n  line-height:1;\n  font-weight:800;\n  letter-spacing:-.03em;\n  cursor:pointer;\n  text-align:left;\n  transition:color .2s ease, transform .2s ease;\n}\n.nitif-pillar-title-link:hover{\n  color:#00cfc0;\n  transform:translateX(2px);\n}\n.nitif-pillar-title-link::after{\n  content:\" \u2192\";\n  color:#00cfc0;\n  font-size:.72em;\n  opacity:.75;\n}\n\n.community-grid{ grid-template-columns:repeat(4, 1fr); }\n@media(max-width:1180px){ .community-grid{ grid-template-columns:repeat(2, 1fr); } }\n@media(max-width:680px){\n  .community-grid{ grid-template-columns:1fr; }\n  .nitif-intro-steps{ grid-template-columns:1fr; }\n  .nitif-challenge-intro-modal{ padding:32px 24px; }\n}\n\n\n\n.nitif-modal-cta-actions{\n  display:flex;\n  flex-wrap:wrap;\n  gap:12px;\n  align-items:center;\n  justify-content:flex-end;\n}\n\n.nitif-modal-jump{\n  text-decoration:none !important;\n}\n\n.nitif-start-secondary{\n  color:#00cfc0 !important;\n  background:rgba(0,207,192,0.06) !important;\n  border:1px solid rgba(0,207,192,0.34) !important;\n  box-shadow:none !important;\n}\n\n.nitif-start-secondary:hover{\n  background:rgba(0,207,192,0.10) !important;\n}\n\n.box-now{\n  color:#00cfc0;\n  font-size:11px;\n  font-weight:700;\n  letter-spacing:1.6px;\n  text-transform:uppercase;\n  margin-bottom:12px;\n}\n\n@media(max-width:760px){\n  .nitif-page{ scroll-padding-top:122px; }\n  .flowchart-overlay,\n  .defi-overlay,\n  .nitif-challenge-intro-overlay{\n    padding-top:78px !important;\n    padding-left:14px !important;\n    padding-right:14px !important;\n  }\n  .nitif-modal-cta-actions{\n    justify-content:stretch;\n    width:100%;\n  }\n  .nitif-modal-cta-actions .start-cta{\n    width:100%;\n  }\n}\n\n\n\/* =========================================================\n   NITIF V10.5 \u2014 UNIFIED SCROLL CONTRACT\n   Single source of truth. Replaces the three stacked V10.4\n   scroll patches. Document scroll lives on <html>. Modals use\n   ref-counted scroll-lock that preserves scroll position\n   (iOS Safari safe).\n========================================================= *\/\n\n\/* 1. Document scroll lives on <html>. Body is content only. *\/\nhtml{\n  height:auto !important;\n  min-height:100% !important;\n  overflow-x:clip;                  \/* clip > hidden: NOT a scroll container *\/\n  overflow-y:auto !important;\n  overscroll-behavior-y:auto !important;\n  scrollbar-gutter:auto !important;\n  scroll-behavior:smooth;            \/* moved here from .nitif-page *\/\n  scroll-padding-top:96px;           \/* moved here from .nitif-page *\/\n}\n\n\/* Old browser fallback: hidden on x when clip isn't supported. *\/\n@supports not (overflow: clip){\n  html{ overflow-x:hidden !important; }\n}\n\nbody{\n  height:auto !important;\n  min-height:100% !important;\n  width:100% !important;\n  max-width:100% !important;\n  overflow:visible !important;       \/* body is NOT a scroll container *\/\n  overscroll-behavior:auto !important;\n}\n\n\/* 2. WordPress wrappers: pure content, never scroll containers.\n      overflow:visible (shorthand) avoids the x:hidden+y:visible trap. *\/\nbody .site,\nbody .site-content,\nbody .content-area,\nbody .site-main,\nbody main,\nbody article,\nbody .entry-content,\nbody .post-content,\nbody .inside-article,\nbody .wp-site-blocks,\nbody .wp-block-post-content,\nbody .wp-block-group,\nbody .wp-block-template-part,\nbody .is-layout-constrained,\nbody .is-layout-flow,\nbody .wp-block-html{\n  height:auto !important;\n  max-height:none !important;\n  min-height:0 !important;\n  width:100% !important;\n  max-width:none !important;\n  overflow:visible !important;\n  overscroll-behavior:auto !important;\n}\n\n\/* 3. .nitif-page is layout, not scroll. Use overflow:clip for x-axis. *\/\n.nitif-page{\n  height:auto !important;\n  max-height:none !important;\n  min-height:100vh !important;\n  width:100% !important;\n  max-width:100% !important;\n  overflow:visible !important;\n  overscroll-behavior:auto !important;\n}\n\n@supports (overflow: clip){\n  .nitif-page,\n  .nitif-section,\n  .nitif-method-v9,\n  .nitif-defis-v9,\n  .nitif-v9-section{\n    overflow-x:clip !important;\n    overflow-y:visible !important;\n  }\n}\n\n@supports not (overflow: clip){\n  \/* Last-resort fallback for old Safari. *\/\n  .nitif-page{ overflow-x:hidden !important; }\n}\n\n\/* 4. Sticky header \u2014 sticks to document scroll, not to .nitif-page. *\/\n.nitif-top-strip{\n  position:sticky !important;\n  top:0 !important;\n  z-index:9998 !important;\n}\nbody.admin-bar .nitif-top-strip{ top:32px !important; }\n@media(max-width:782px){\n  body.admin-bar .nitif-top-strip{ top:46px !important; }\n}\n\n\/* 5. SVG\/wheel containment \u2014 clip locally, no horizontal bleed. *\/\n.season-wheel,\n.wheel-stage,\n.nitif-cycle-stage,\n.nitif-season-wheel{\n  max-width:100% !important;\n}\n@supports (overflow: clip){\n  .wheel-stage{ overflow-x:clip; overflow-y:visible; }\n}\n\n\/* 6. Modals: position:fixed overlay IS the scroll container while open. *\/\n.flowchart-overlay,\n.defi-overlay,\n.nitif-challenge-intro-overlay{\n  position:fixed !important;\n  inset:0 !important;\n  z-index:99999 !important;\n  align-items:flex-start !important;\n  justify-content:center !important;\n  padding:clamp(76px, 8vh, 104px) clamp(16px, 3vw, 36px) 64px !important;\n  overflow-y:auto !important;\n  overflow-x:hidden !important;\n  overscroll-behavior:contain !important;   \/* contain wheel inside modal only *\/\n  -webkit-overflow-scrolling:touch;\n}\n\n\/* The modal itself is content, not a scroll container. *\/\n.flowchart-modal,\n.defi-modal,\n.nitif-challenge-intro-modal{\n  margin:0 auto 56px !important;\n  max-height:none !important;\n  overflow:visible !important;\n}\n\n\/* 7. Document scroll-lock during modal \u2014 set by JS only.\n      Single utility class. No legacy nitif-modal-open \/ nitif-scroll-lock \/\n      nitif-challenge-intro-open class collisions. *\/\nhtml.nitif-scroll-locked,\nbody.nitif-scroll-locked{\n  overflow:hidden !important;\n  touch-action:none;                 \/* blocks iOS rubber-banding *\/\n}\nbody.nitif-scroll-locked{\n  position:fixed !important;\n  top:var(--nitif-scroll-y, 0) !important;\n  left:0 !important;\n  right:0 !important;\n  width:100% !important;\n}\n\n\/* 8. Mobile scroll-padding for taller stacked header. *\/\n@media(max-width:760px){\n  html{ scroll-padding-top:122px; }\n}\n\n<\/style>\n\n<div class=\"nitif-page\">\n\n  <!-- HEADER -->\n  <!-- HEADER -->\n  <div class=\"nitif-top-strip\">\n    <div class=\"nitif-container nitif-top-strip-inner\">\n      <a href=\"#home\" class=\"nitif-brand\">\n        <span class=\"nitif-logo-slot\">\n          <svg viewBox=\"0 0 100 100\" fill=\"none\" aria-hidden=\"true\">\n            <defs>\n              <linearGradient id=\"nitifLogoGrad\" x1=\"18\" y1=\"18\" x2=\"82\" y2=\"82\">\n                <stop offset=\"0%\" stop-color=\"#7CE7FF\"\/>\n                <stop offset=\"55%\" stop-color=\"#00CFC0\"\/>\n                <stop offset=\"100%\" stop-color=\"#008AA9\"\/>\n              <\/linearGradient>\n            <\/defs>\n            <path d=\"M27 63C27 44 42 29 61 29C72 29 81 37 81 47C81 55 75 61 67 61C61 61 56 56 56 50C56 46 59 43 63 43C66 43 68 45 68 48C68 50 67 52 65 53\"\n                  stroke=\"url(#nitifLogoGrad)\" stroke-width=\"4.8\" stroke-linecap=\"round\"\/>\n            <path d=\"M32 61C31 51 37 41 46 36\" stroke=\"url(#nitifLogoGrad)\" stroke-width=\"1.8\" stroke-linecap=\"round\" opacity=\".80\"\/>\n            <path d=\"M38 58C38 50 42 44 48 40\" stroke=\"url(#nitifLogoGrad)\" stroke-width=\"1.8\" stroke-linecap=\"round\" opacity=\".65\"\/>\n            <path d=\"M44 55C44 49 47 45 52 42\" stroke=\"url(#nitifLogoGrad)\" stroke-width=\"1.8\" stroke-linecap=\"round\" opacity=\".52\"\/>\n          <\/svg>\n        <\/span>\n        NITIF\n      <\/a>\n\n      <nav class=\"nitif-nav\">\n        <a href=\"#system\">Fit \u00b7 Fed \u00b7 Focus<\/a>\n        <a href=\"#methode\">La m\u00e9thode<\/a>\n        <a href=\"#spirale\">La Spirale<\/a>\n        <a href=\"#defis\">D\u00e9fis<\/a>\n        <a href=\"#ressources\">Ressources<\/a>\n        <a href=\"#boxes\">Boxes<\/a>\n        <a href=\"#communaute\">Communaut\u00e9<\/a>\n      <\/nav>\n    \n\n\n<\/div>\n  <\/div>\n\n  <!-- HERO -->\n  <!-- HERO -->\n  <section class=\"nitif-section nitif-hero\" id=\"home\">\n    <div class=\"nitif-container\">\n      <div class=\"nitif-hero-copy\">\n        <div class=\"nitif-kicker\">\n          <span class=\"nitif-kicker-dot\"><\/span>\n          NITIF \u00b7 Feed Your Focus\n        <\/div>\n\n        <h1 class=\"nitif-title\">\n          Fit \u00b7 Fed \u00b7 Focus<br>\n          pour reprendre ton <span class=\"accent\">rythme<\/span>.\n        <\/h1>\n\n        <p class=\"nitif-subtitle\">\n          Mange selon ta saison.<br>\n          Une m\u00e9thode cyclique pour les professionnels qui veulent retrouver \u00e9nergie, clart\u00e9 et constance \u2014 sans r\u00e9gime miracle.\n        <\/p>\n\n        <div class=\"nitif-btns\">\n          <a href=\"#defi-start\" class=\"nitif-btn nitif-btn-primary\" data-nitif-challenge-intro=\"true\">Commencer le d\u00e9fi gratuit \u2192<\/a>\n          <a href=\"#methode\" class=\"nitif-btn nitif-btn-secondary\">D\u00e9couvrir la m\u00e9thode<\/a>\n          <a href=\"#spirale\" class=\"nitif-btn nitif-btn-secondary\">La Spirale \u2192<\/a>\n        <\/div>\n\n        <div class=\"nitif-hero-proof\">\n          <div class=\"nitif-proof-item\">\n            <div class=\"nitif-proof-value\">3<\/div>\n            <div class=\"nitif-proof-label\">piliers \u00b7 Fit Fed Focus<\/div>\n          <\/div>\n          <div class=\"nitif-proof-item\">\n            <div class=\"nitif-proof-value\">4<span>\u00d7<\/span><\/div>\n            <div class=\"nitif-proof-label\">phases saisonni\u00e8res<\/div>\n          <\/div>\n          <div class=\"nitif-proof-item\">\n            <div class=\"nitif-proof-value\">7<\/div>\n            <div class=\"nitif-proof-label\">jours pour d\u00e9marrer<\/div>\n          <\/div>\n          <div class=\"nitif-proof-item\">\n            <div class=\"nitif-proof-value\">100<span>%<\/span><\/div>\n            <div class=\"nitif-proof-label\">bas\u00e9 sur la physiologie<\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"nitif-hero-note\">\n          Mon d\u00e9fi, ma sant\u00e9. \u2014 Discipline \u00b7 Transformation \u00b7 Conscience.\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n\n\n  <!-- CHALLENGE INTRO MODAL -->\n  <div class=\"nitif-challenge-intro-overlay\" id=\"challengeIntroOverlay\" aria-hidden=\"true\">\n    <div class=\"nitif-challenge-intro-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"challengeIntroTitle\">\n      <button class=\"modal-close\" id=\"challengeIntroClose\" aria-label=\"Fermer\">\u00d7<\/button>\n      <div class=\"modal-locked\">D\u00e9fi public<\/div>\n      <h3 class=\"modal-title\" id=\"challengeIntroTitle\">Commence ton d\u00e9fi NITIF.<\/h3>\n      <p class=\"modal-subtitle\">\n        Le d\u00e9fi n\u2019est pas seulement un PDF. C\u2019est une entr\u00e9e publique dans la communaut\u00e9 : tu t\u2019inscris, tu re\u00e7ois l\u2019outil, tu termines le protocole, puis tu partages ton r\u00e9sultat si tu le souhaites.\n      <\/p>\n\n      <div class=\"nitif-intro-steps\">\n        <div class=\"nitif-intro-step\"><span>01<\/span><p><strong>Abonne-toi \u00e0 la communaut\u00e9.<\/strong> Suis NITIF sur LinkedIn et Instagram pour suivre les d\u00e9fis, les r\u00e9sultats et les prochaines vagues.<\/p><\/div>\n        <div class=\"nitif-intro-step\"><span>02<\/span><p><strong>Inscris ton email.<\/strong> Tu re\u00e7ois le d\u00e9fi, tu entres dans la liste des participants, et ton email est m\u00e9moris\u00e9 sur ton appareil si tu l\u2019acceptes.<\/p><\/div>\n        <div class=\"nitif-intro-step\"><span>03<\/span><p><strong>T\u00e9l\u00e9charge l\u2019outil.<\/strong> Le lien arrive dans ton email. Termine ton d\u00e9fi, puis publie ton r\u00e9sultat avec #MonD\u00e9fiNitif.<\/p><\/div>\n        <div class=\"nitif-intro-step\"><span>04<\/span><p><strong>Re\u00e7ois ton code.<\/strong> Les participants obtiennent un code de r\u00e9duction de 10% sur leur premi\u00e8re Box NITIF.<\/p><\/div>\n      <\/div>\n\n      <div class=\"nitif-intro-community-links\">\n        <a href=\"https:\/\/www.linkedin.com\/company\/nitif\" target=\"_blank\" rel=\"noopener\">LinkedIn NITIF<\/a>\n        <a href=\"https:\/\/www.instagram.com\/nitif.official\" target=\"_blank\" rel=\"noopener\">Instagram NITIF<\/a>\n      <\/div>\n\n      <div class=\"modal-cta-row\">\n        <p class=\"modal-secondary-text\">Tu peux choisir Focus Reset ou Office Reboot dans le formulaire. La Quinzaine NITIF reste coch\u00e9e par d\u00e9faut.<\/p>\n        <div style=\"display:flex;gap:12px;flex-wrap:wrap;align-items:center;\">\n          <button class=\"modal-cta\" id=\"challengeIntroLead\">Inscrire mon email \u2192<\/button>\n          <a class=\"modal-cta outline\" href=\"#defis\" id=\"challengeIntroDefis\">Voir les d\u00e9fis<\/a>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- PREMIUM STRIP \u2014 Une m\u00e9thode, pas une mode -->\n  <!-- PREMIUM STRIP -->\n  <section class=\"nitif-section\" style=\"padding-top:20px;\">\n    <div class=\"nitif-container nitif-premium-grid\">\n      <div class=\"nitif-card nitif-premium-item\">\n        <h3>Une m\u00e9thode, pas une mode.<\/h3>\n        <p>Quatre phases align\u00e9es sur le cycle annuel. Le corps r\u00e9pond mieux \u00e0 la rotation qu'\u00e0 la r\u00e9p\u00e9tition.<\/p>\n      <\/div>\n      <div class=\"nitif-card nitif-premium-item\">\n        <h3>Pens\u00e9 pour les vies r\u00e9elles.<\/h3>\n        <p>Bureau, famille, fatigue mentale, manque de temps. NITIF s'int\u00e8gre \u2014 il ne s'ajoute pas.<\/p>\n      <\/div>\n      <div class=\"nitif-card nitif-premium-item\">\n        <h3>Fond\u00e9 sur la physiologie.<\/h3>\n        <p>Pas de promesses. Des leviers document\u00e9s : nutrition, mouvement, sommeil, lumi\u00e8re, r\u00e9cup\u00e9ration.<\/p>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n  <!-- FIT FED FOCUS PILLARS -->\n  <!-- FIT FED FOCUS SYSTEM -->\n  <section class=\"nitif-section\" id=\"system\">\n    <div class=\"nitif-container\">\n      <div class=\"nitif-system-header\">\n        <div class=\"nitif-eyebrow\">Le syst\u00e8me<\/div>\n        <h2 class=\"nitif-title\" style=\"font-size:clamp(30px,4.8vw,56px);\">\n          Bouge, mange, pense \u2014<br><span class=\"accent\">selon ta saison.<\/span>\n        <\/h2>\n        <p class=\"nitif-subtitle\">\n          Trois piliers que chacun conna\u00eet. NITIF les relie en un syst\u00e8me coh\u00e9rent, applicable au quotidien d'un professionnel.\n        <\/p>\n      <\/div>\n\n      <div class=\"nitif-pillar-grid\">\n        <div class=\"nitif-card nitif-pillar-card\">\n          <h3><button type=\"button\" class=\"nitif-pillar-title-link nitif-resource-trigger\" data-title=\"Guide Fit \u00b7 mouvement au bureau\" data-url=\"\/ressources\/guide-fit.pdf\" data-type=\"PDF\" data-cat=\"guide\">Fit<\/button><\/h3>\n          <p>Le mouvement int\u00e9gr\u00e9 \u00e0 la journ\u00e9e \u2014 pas un sport en plus, une mani\u00e8re de tenir au bureau.<\/p>\n          <ul>\n            <li>Movement snacks \u2014 micro-s\u00e9ances de 2 \u00e0 5 minutes<\/li>\n            <li>Marche, escaliers, mobilit\u00e9 au quotidien<\/li>\n            <li>3 s\u00e9ances de force + 2 de cardio (offre Pro \u2014 protocoles \u00e9volutifs)<\/li>\n            <li>Intensit\u00e9 p\u00e9riodis\u00e9e selon la saison<\/li>\n          <\/ul>\n        <\/div>\n\n        <div class=\"nitif-card nitif-pillar-card\">\n          <h3><button type=\"button\" class=\"nitif-pillar-title-link nitif-resource-trigger\" data-title=\"Guide Fed \u00b7 nutrition saisonni\u00e8re\" data-url=\"\/ressources\/guide-fed.pdf\" data-type=\"PDF\" data-cat=\"guide\">Fed<\/button><\/h3>\n          <p>Une nutrition qui suit ton ann\u00e9e plut\u00f4t que de la subir. Saisonni\u00e8re, ajust\u00e9e, soutenable.<\/p>\n          <ul>\n            <li>Cycle alimentaire en 4 phases \u2014 pr\u00e9paration et transition incluses<\/li>\n            <li>Macros et micros cibl\u00e9s (prot\u00e9ines \u00b7 lipides \u00b7 glucides \u00b7 vitamines \u00b7 min\u00e9raux)<\/li>\n            <li>Guides et fiches pratiques t\u00e9l\u00e9chargeables<\/li>\n            <li>Snacks et compl\u00e9ments NITIF \u00e0 venir<\/li>\n          <\/ul>\n        <\/div>\n\n        <div class=\"nitif-card nitif-pillar-card\">\n          <h3><button type=\"button\" class=\"nitif-pillar-title-link nitif-resource-trigger\" data-title=\"Guide Focus \u00b7 sommeil, lumi\u00e8re, r\u00e9cup\u00e9ration\" data-url=\"\/ressources\/guide-focus.pdf\" data-type=\"PDF\" data-cat=\"guide\">Focus<\/button><\/h3>\n          <p>L'\u00e9nergie mentale se construit hors du bureau. Sommeil, lumi\u00e8re, respiration, r\u00e9cup\u00e9ration.<\/p>\n          <ul>\n            <li>Rythme de sommeil et r\u00e9cup\u00e9ration active<\/li>\n            <li>Lumi\u00e8re du matin, respiration, m\u00e9ditation<\/li>\n            <li>Exposition au froid en option d\u00e9fi<\/li>\n            <li>Routines de clart\u00e9 au travail \u2014 courtes, simples, applicables<\/li>\n          <\/ul>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n  <!-- LA M\u00c9THODE \u2014 V9 INTERACTIVE WHEEL -->\n<!--\n=========================================================\n  NITIF V10 \u2014 SECTION \"LA M\u00c9THODE\" (refonte cycle annuel)\n  Drop-in replacement for V8 lines ~1620\u20132080.\n  Self-contained: scoped CSS, vanilla JS, no dependencies.\n  WordPress \/ EasyWP Custom HTML block compatible.\n=========================================================\n-->\n\n\n<section class=\"nitif-method-v9\" id=\"methode\">\n  <div class=\"container\">\n\n    <div class=\"nitif-eyebrow-v9\">La m\u00e9thode<\/div>\n    <h2 class=\"nitif-h2-v9\">\n      Un syst\u00e8me en <span class=\"accent\">cycle annuel<\/span>.\n    <\/h2>\n    <p class=\"nitif-lede-v9\">\n      Quatre saisons, quatre intentions. Chaque phase combine un objectif Fed, Fit et Focus \u2014\n      pour faire \u00e9voluer le corps avec l'ann\u00e9e plut\u00f4t que contre.\n      Tu peux entrer dans le cycle \u00e0 n'importe quelle phase.\n    <\/p>\n\n    <div class=\"wheel-grid\">\n\n      <!-- LEFT: the wheel -->\n      <div class=\"wheel-stage\">\n        <svg class=\"season-wheel\" id=\"seasonWheel\" viewBox=\"0 0 560 560\" aria-label=\"Cycle annuel NITIF\">\n\n          <!-- four segments (donut) \u2014 opens at top, clockwise: spring, summer, autumn, winter -->\n          <g id=\"segments\">\n            <!-- Printemps (top-right quadrant) -->\n            <path class=\"season-segment\" data-phase=\"spring\"\n              d=\"M 280 70 A 210 210 0 0 1 490 280 L 386 280 A 106 106 0 0 0 280 174 Z\"\n              fill=\"#7ce8df\"\/>\n\n            <!-- \u00c9t\u00e9 (bottom-right quadrant) -->\n            <path class=\"season-segment\" data-phase=\"summer\"\n              d=\"M 490 280 A 210 210 0 0 1 280 490 L 280 386 A 106 106 0 0 0 386 280 Z\"\n              fill=\"#00cfc0\"\/>\n\n            <!-- Automne (bottom-left quadrant) -->\n            <path class=\"season-segment\" data-phase=\"autumn\"\n              d=\"M 280 490 A 210 210 0 0 1 70 280 L 174 280 A 106 106 0 0 0 280 386 Z\"\n              fill=\"#1f8a82\"\/>\n\n            <!-- Hiver (top-left quadrant) -->\n            <path class=\"season-segment\" data-phase=\"winter\"\n              d=\"M 70 280 A 210 210 0 0 1 280 70 L 280 174 A 106 106 0 0 0 174 280 Z\"\n              fill=\"#b8f0eb\"\/>\n          <\/g>\n\n          <!-- thin separator strokes between segments (4 radial lines) -->\n          <g stroke=\"#05070d\" stroke-width=\"3\" fill=\"none\">\n            <line x1=\"280\" y1=\"70\" x2=\"280\" y2=\"174\"\/>\n            <line x1=\"490\" y1=\"280\" x2=\"386\" y2=\"280\"\/>\n            <line x1=\"280\" y1=\"490\" x2=\"280\" y2=\"386\"\/>\n            <line x1=\"70\" y1=\"280\" x2=\"174\" y2=\"280\"\/>\n          <\/g>\n\n          <!-- center: minimal mark (replaces the rotating motion) -->\n          <g class=\"center-mark\">\n            <circle cx=\"280\" cy=\"280\" r=\"106\" fill=\"#05070d\"\/>\n            <circle cx=\"280\" cy=\"280\" r=\"106\" fill=\"none\" stroke=\"rgba(0,207,192,0.15)\" stroke-width=\"1\"\/>\n            <text x=\"280\" y=\"270\" font-size=\"10\" letter-spacing=\"3\" font-weight=\"600\" fill=\"#00cfc0\">SAISONS<\/text>\n            <text x=\"280\" y=\"294\" font-size=\"22\" font-weight=\"700\" fill=\"#fff\">12 sem.<\/text>\n            <text x=\"280\" y=\"316\" font-size=\"10\" letter-spacing=\"2\" font-weight=\"400\" fill=\"#7c8597\">par phase<\/text>\n          <\/g>\n\n          <!-- exterior labels with connectors \u2014 anchored well outside the donut, no overlap -->\n          <!-- PRINTEMPS (top-right, label at top) -->\n          <g class=\"label-group\">\n            <line class=\"season-connector\" x1=\"395\" y1=\"160\" x2=\"450\" y2=\"100\" stroke=\"rgba(255,255,255,0.18)\" stroke-width=\"1\"\/>\n            <text class=\"season-sublabel\" x=\"455\" y=\"80\" text-anchor=\"start\">Reconstruction<\/text>\n            <text class=\"season-label\" x=\"455\" y=\"100\" text-anchor=\"start\" font-size=\"20\">Printemps<\/text>\n          <\/g>\n\n          <!-- \u00c9T\u00c9 (bottom-right, label at right) -->\n          <g class=\"label-group\">\n            <line class=\"season-connector\" x1=\"395\" y1=\"395\" x2=\"455\" y2=\"455\" stroke=\"rgba(255,255,255,0.18)\" stroke-width=\"1\"\/>\n            <text class=\"season-sublabel\" x=\"460\" y=\"455\" text-anchor=\"start\">Performance<\/text>\n            <text class=\"season-label\" x=\"460\" y=\"475\" text-anchor=\"start\" font-size=\"20\">\u00c9t\u00e9<\/text>\n          <\/g>\n\n          <!-- AUTOMNE (bottom-left, label below) -->\n          <g class=\"label-group\">\n            <line class=\"season-connector\" x1=\"165\" y1=\"395\" x2=\"105\" y2=\"455\" stroke=\"rgba(255,255,255,0.18)\" stroke-width=\"1\"\/>\n            <text class=\"season-sublabel\" x=\"100\" y=\"455\" text-anchor=\"end\">Consolidation<\/text>\n            <text class=\"season-label\" x=\"100\" y=\"475\" text-anchor=\"end\" font-size=\"20\">Automne<\/text>\n          <\/g>\n\n          <!-- HIVER (top-left, label at left) -->\n          <g class=\"label-group\">\n            <line class=\"season-connector\" x1=\"165\" y1=\"160\" x2=\"105\" y2=\"100\" stroke=\"rgba(255,255,255,0.18)\" stroke-width=\"1\"\/>\n            <text class=\"season-sublabel\" x=\"100\" y=\"80\" text-anchor=\"end\">Sobri\u00e9t\u00e9<\/text>\n            <text class=\"season-label\" x=\"100\" y=\"100\" text-anchor=\"end\" font-size=\"20\">Hiver<\/text>\n          <\/g>\n\n        <\/svg>\n      <\/div>\n\n      <!-- RIGHT: detail panel -->\n      <div class=\"phase-detail\" id=\"phaseDetail\">\n\n        <!-- empty state -->\n        <div class=\"detail-empty\" id=\"detailEmpty\">\n          <svg width=\"48\" height=\"48\" viewBox=\"0 0 48 48\" fill=\"none\">\n            <circle cx=\"24\" cy=\"24\" r=\"22\" stroke=\"#00cfc0\" stroke-width=\"1\" stroke-dasharray=\"3 4\"\/>\n            <circle cx=\"24\" cy=\"24\" r=\"4\" fill=\"#00cfc0\"\/>\n          <\/svg>\n          <p>S\u00e9lectionne une saison pour d\u00e9couvrir<br>sa logique Fit \u00b7 Fed \u00b7 Focus.<\/p>\n        <\/div>\n\n        <!-- phase content (populated by JS) -->\n        <div class=\"phase-content\" id=\"phaseContent\">\n          <div class=\"phase-topline\" id=\"pTopline\"><\/div>\n          <h3 class=\"phase-title\" id=\"pTitle\"><\/h3>\n          <p class=\"phase-intent\" id=\"pIntent\"><\/p>\n          <p class=\"phase-description\" id=\"pDescription\"><\/p>\n\n          <div class=\"pillars\">\n            <div class=\"pillar\">\n              <div class=\"pillar-label\">Fit<\/div>\n              <ul class=\"pillar-resources\" id=\"fitResources\"><\/ul>\n            <\/div>\n            <div class=\"pillar\">\n              <div class=\"pillar-label\">Fed<\/div>\n              <ul class=\"pillar-resources\" id=\"fedResources\"><\/ul>\n            <\/div>\n            <div class=\"pillar\">\n              <div class=\"pillar-label\">Focus<\/div>\n              <ul class=\"pillar-resources\" id=\"focusResources\"><\/ul>\n            <\/div>\n          <\/div>\n\n          <button class=\"start-cta\" id=\"startCta\">\n            Je commence ici\n            <svg width=\"18\" height=\"14\" viewBox=\"0 0 18 14\" fill=\"none\">\n              <path d=\"M1 7H17M17 7L11 1M17 7L11 13\" stroke=\"#05070d\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n            <\/svg>\n          <\/button>\n        <\/div>\n\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n\n  <!-- flowchart modal (12-week journey) -->\n  <div class=\"flowchart-overlay\" id=\"flowOverlay\">\n    <div class=\"flowchart-modal\">\n      <button class=\"modal-close\" id=\"modalClose\" aria-label=\"Fermer\">\u00d7<\/button>\n      <div class=\"modal-locked\">Locked in<\/div>\n      <h3 class=\"modal-title\" id=\"flowTitle\">Ton cycle commence<\/h3>\n      <p class=\"modal-subtitle\" id=\"flowSubtitle\">12 semaines structur\u00e9es. Une entr\u00e9e progressive, un c\u0153ur de phase, une transition vers la saison suivante.<\/p>\n\n      <!-- visual timeline (12 weeks) -->\n      <div class=\"timeline\" id=\"timelineWeeks\">\n        <div class=\"timeline-week observation\">S1<\/div>\n        <div class=\"timeline-week preparation\">S2<\/div>\n        <div class=\"timeline-week core\">S3<\/div>\n        <div class=\"timeline-week core\">S4<\/div>\n        <div class=\"timeline-week core\">S5<\/div>\n        <div class=\"timeline-week core\">S6<\/div>\n        <div class=\"timeline-week core\">S7<\/div>\n        <div class=\"timeline-week core\">S8<\/div>\n        <div class=\"timeline-week core\">S9<\/div>\n        <div class=\"timeline-week core\">S10<\/div>\n        <div class=\"timeline-week transition\">S11<\/div>\n        <div class=\"timeline-week transition\">S12<\/div>\n      <\/div>\n\n      <div class=\"timeline-legend\">\n        <div class=\"timeline-legend-item\"><span class=\"dot\" style=\"background:rgba(124,232,223,0.5);\"><\/span>Observation<\/div>\n        <div class=\"timeline-legend-item\"><span class=\"dot\" style=\"background:rgba(124,232,223,0.7);\"><\/span>Pr\u00e9paration<\/div>\n        <div class=\"timeline-legend-item\"><span class=\"dot\" style=\"background:#00cfc0;\"><\/span>Bloc c\u0153ur \u00b7 8 semaines<\/div>\n        <div class=\"timeline-legend-item\"><span class=\"dot\" style=\"background:#00B5A8;opacity:0.7;\"><\/span>Transition<\/div>\n      <\/div>\n\n      <div class=\"journey-phases\">\n        <div class=\"journey-step\">\n          <div class=\"step-week\">Semaine 1<\/div>\n          <div class=\"step-title\">Observation<\/div>\n          <p class=\"step-desc\">Mesures de base, journaling, \u00e9tat initial. Aucun changement impos\u00e9.<\/p>\n        <\/div>\n        <div class=\"journey-step\">\n          <div class=\"step-week\">Semaine 2<\/div>\n          <div class=\"step-title\">Pr\u00e9paration<\/div>\n          <p class=\"step-desc\">Frigo, planning, intentions. Le cadre se met en place avant le c\u0153ur.<\/p>\n        <\/div>\n        <div class=\"journey-step\">\n          <div class=\"step-week\">Semaines 3 \u2014 10<\/div>\n          <div class=\"step-title\">Bloc c\u0153ur<\/div>\n          <p class=\"step-desc\">Huit semaines dans le format de la phase. La fen\u00eatre o\u00f9 l'adaptation s'installe.<\/p>\n        <\/div>\n        <div class=\"journey-step\">\n          <div class=\"step-week\">Semaines 11 \u2014 12<\/div>\n          <div class=\"step-title\">Transition<\/div>\n          <p class=\"step-desc\">Descente progressive, retour \u00e0 un \u00e9tat neutre, pr\u00e9paration de la phase suivante.<\/p>\n        <\/div>\n      <\/div>\n\n      <div class=\"modal-cta-row\">\n        <p class=\"modal-secondary-text\">Cette phase compl\u00e8te vit dans deux espaces : les ressources pour t\u00e9l\u00e9charger les guides, et La Spirale pour suivre l'application, les trackers et l'avancement.<\/p>\n        <div class=\"nitif-modal-cta-actions\">\n          <a href=\"#ressources\" class=\"start-cta nitif-modal-jump\" id=\"modalResourcesCta\">\n            Ressources\n            <svg width=\"18\" height=\"14\" viewBox=\"0 0 18 14\" fill=\"none\">\n              <path d=\"M1 7H17M17 7L11 1M17 7L11 13\" stroke=\"#05070d\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n            <\/svg>\n          <\/a>\n          <a href=\"#spirale\" class=\"start-cta nitif-modal-jump nitif-start-secondary\" id=\"modalSpiraleCta\">\n            La Spirale\n            <svg width=\"18\" height=\"14\" viewBox=\"0 0 18 14\" fill=\"none\">\n              <path d=\"M1 7H17M17 7L11 1M17 7L11 13\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n            <\/svg>\n          <\/a>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n<\/section>\n\n<script>\n\/* =========================================================\n   NITIF V10.5 \u2014 Canonical document scroll-lock.\n   Defined ONCE, used by every modal. iOS Safari safe.\n   - Saves scrollY at lock, restores it at unlock.\n   - Ref-counted: nested\/overlapping modals stay locked\n     until the last one closes.\n========================================================= *\/\n(function(){\n  var savedScrollY = 0;\n  var lockDepth = 0;\n\n  function lock(){\n    lockDepth++;\n    if(lockDepth > 1) return;             \/\/ already locked\n    savedScrollY = window.scrollY || window.pageYOffset || 0;\n    document.documentElement.style.setProperty(\n      '--nitif-scroll-y', '-' + savedScrollY + 'px'\n    );\n    document.documentElement.classList.add('nitif-scroll-locked');\n    document.body.classList.add('nitif-scroll-locked');\n  }\n\n  function unlock(){\n    if(lockDepth > 0) lockDepth--;\n    if(lockDepth > 0) return;             \/\/ a modal is still open\n    document.documentElement.classList.remove('nitif-scroll-locked');\n    document.body.classList.remove('nitif-scroll-locked');\n    document.documentElement.style.removeProperty('--nitif-scroll-y');\n    window.scrollTo(0, savedScrollY);     \/\/ exact restore \u2014 no smooth\n  }\n\n  window.nitifLockPageScroll   = lock;\n  window.nitifUnlockPageScroll = unlock;\n})();\n<\/script>\n\n<script>\n(function(){\n  \/\/ ---------- phase data model ----------\n  const phaseData = {\n    spring: {\n      topline: \"Mars \u2014 Mai\",\n      title: \"Printemps\",\n      intent: \"Reconstruction\",\n      description: \"Reconstruire avec progression. Diversit\u00e9 alimentaire, force progressive, routine matinale \u2014 le corps reprend de l'\u00e9lan sans surcharge.\",\n      fit: [\n        {label:\"Force progressive \u2014 plan 8 semaines\",   url:\"\/ressources\/printemps-force-8sem.pdf\",     gated:true},\n        {label:\"Mobilit\u00e9 matinale \u2014 7 minutes\",          url:\"\/ressources\/printemps-mobilite-7min.pdf\",  gated:false},\n        {label:\"Routine bureau \u2014 micro-s\u00e9ances\",         url:\"\/ressources\/printemps-bureau.pdf\",         gated:false}\n      ],\n      fed: [\n        {label:\"Diversit\u00e9 \u2014 fiche aliments de saison\",   url:\"\/ressources\/printemps-aliments.pdf\",        gated:false},\n        {label:\"Macros & micros \u2014 version Printemps\",    url:\"\/ressources\/printemps-nutrition.pdf\",       gated:true},\n        {label:\"Liste de courses \u2014 semaine type\",        url:\"\/ressources\/printemps-courses.pdf\",         gated:true}\n      ],\n      focus: [\n        {label:\"Routine matinale \u2014 protocole\",           url:\"\/ressources\/printemps-matin.pdf\",           gated:false},\n        {label:\"Lumi\u00e8re du matin \u2014 guide pratique\",      url:\"\/ressources\/printemps-lumiere.pdf\",         gated:false},\n        {label:\"M\u00e9ditation au bureau \u2014 5 minutes\",       url:\"\/ressources\/printemps-meditation.pdf\",      gated:true}\n      ]\n    },\n    summer: {\n      topline: \"Juin \u2014 Ao\u00fbt\",\n      title: \"\u00c9t\u00e9\",\n      intent: \"Performance\",\n      description: \"Capitaliser sur l'\u00e9nergie disponible. Cardio, sport, hydratation, gestion de la chaleur \u2014 la phase o\u00f9 le corps tourne \u00e0 plein r\u00e9gime.\",\n      fit: [\n        {label:\"Cardio progressif \u2014 plan 8 semaines\",    url:\"\/ressources\/ete-cardio.pdf\",                gated:true},\n        {label:\"Sport en ext\u00e9rieur \u2014 guide\",             url:\"\/ressources\/ete-exterieur.pdf\",             gated:false},\n        {label:\"R\u00e9cup\u00e9ration active \u2014 fiche\",            url:\"\/ressources\/ete-recuperation.pdf\",          gated:false}\n      ],\n      fed: [\n        {label:\"Hydratation \u2014 protocole journalier\",     url:\"\/ressources\/ete-hydratation.pdf\",           gated:false},\n        {label:\"Macros & micros \u2014 version \u00c9t\u00e9\",          url:\"\/ressources\/ete-nutrition.pdf\",             gated:true},\n        {label:\"Repas l\u00e9gers \u2014 10 id\u00e9es rapides\",        url:\"\/ressources\/ete-recettes.pdf\",              gated:true}\n      ],\n      focus: [\n        {label:\"Sommeil en chaleur \u2014 guide\",             url:\"\/ressources\/ete-sommeil.pdf\",               gated:false},\n        {label:\"Respiration coh\u00e9rente \u2014 protocole\",      url:\"\/ressources\/ete-respiration.pdf\",           gated:false},\n        {label:\"Pauses bureau \u2014 syst\u00e8me\",                url:\"\/ressources\/ete-pauses.pdf\",                gated:true}\n      ]\n    },\n    autumn: {\n      topline: \"Septembre \u2014 Novembre\",\n      title: \"Automne\",\n      intent: \"Consolidation\",\n      description: \"Stabiliser ce qui a \u00e9t\u00e9 construit. Force d'entretien, planification, r\u00e9cup\u00e9ration mentale \u2014 pr\u00e9parer le cycle suivant sans rel\u00e2che.\",\n      fit: [\n        {label:\"Maintenance force \u2014 plan 8 semaines\",    url:\"\/ressources\/automne-force.pdf\",             gated:true},\n        {label:\"Marche & mobilit\u00e9 \u2014 protocole jour\",     url:\"\/ressources\/automne-marche.pdf\",            gated:false},\n        {label:\"Force au bureau \u2014 4 mouvements\",         url:\"\/ressources\/automne-bureau.pdf\",            gated:false}\n      ],\n      fed: [\n        {label:\"Aliments racines \u2014 guide saison\",        url:\"\/ressources\/automne-aliments.pdf\",          gated:false},\n        {label:\"Macros & micros \u2014 version Automne\",      url:\"\/ressources\/automne-nutrition.pdf\",         gated:true},\n        {label:\"Batch cooking \u2014 3 heures pour la sem.\",  url:\"\/ressources\/automne-batchcooking.pdf\",      gated:true}\n      ],\n      focus: [\n        {label:\"Planification trimestrielle \u2014 m\u00e9thode\",  url:\"\/ressources\/automne-planification.pdf\",     gated:true},\n        {label:\"Sommeil & lumi\u00e8re d\u00e9clinante\",           url:\"\/ressources\/automne-sommeil.pdf\",           gated:false},\n        {label:\"M\u00e9ditation longue \u2014 15 minutes\",         url:\"\/ressources\/automne-meditation.pdf\",        gated:false}\n      ]\n    },\n    winter: {\n      topline: \"D\u00e9cembre \u2014 F\u00e9vrier\",\n      title: \"Hiver\",\n      intent: \"Sobri\u00e9t\u00e9\",\n      description: \"All\u00e9ger pour repartir net. Alimentation simple, mouvements doux, sommeil prioritaire \u2014 phase de remise \u00e0 plat.\",\n      fit: [\n        {label:\"Mobilit\u00e9 quotidienne \u2014 10 minutes\",      url:\"\/ressources\/hiver-mobilite.pdf\",            gated:false},\n        {label:\"Marche structur\u00e9e \u2014 protocole\",          url:\"\/ressources\/hiver-marche.pdf\",              gated:false},\n        {label:\"Force l\u00e9g\u00e8re \u2014 entretien\",               url:\"\/ressources\/hiver-force.pdf\",               gated:true}\n      ],\n      fed: [\n        {label:\"Gateway Fast \u2014 protocole complet\",       url:\"\/ressources\/hiver-gatewayfast.pdf\",         gated:true},\n        {label:\"Macros & micros \u2014 version Hiver\",        url:\"\/ressources\/hiver-nutrition.pdf\",           gated:true},\n        {label:\"Soupes & rago\u00fbts \u2014 8 recettes\",          url:\"\/ressources\/hiver-recettes.pdf\",            gated:false}\n      ],\n      focus: [\n        {label:\"Sommeil prolong\u00e9 \u2014 guide hibernation\",   url:\"\/ressources\/hiver-sommeil.pdf\",             gated:false},\n        {label:\"Exposition au froid \u2014 protocole d\u00e9fi\",   url:\"\/ressources\/hiver-froid.pdf\",               gated:true},\n        {label:\"Respiration profonde \u2014 10 minutes\",      url:\"\/ressources\/hiver-respiration.pdf\",         gated:false}\n      ]\n    }\n  };\n\n  \/\/ ---------- DOM refs ----------\n  const wheel = document.getElementById(\"seasonWheel\");\n  const segments = wheel.querySelectorAll(\".season-segment\");\n  const detailEmpty = document.getElementById(\"detailEmpty\");\n  const phaseContent = document.getElementById(\"phaseContent\");\n  const pTopline = document.getElementById(\"pTopline\");\n  const pTitle = document.getElementById(\"pTitle\");\n  const pIntent = document.getElementById(\"pIntent\");\n  const pDescription = document.getElementById(\"pDescription\");\n  const fitList = document.getElementById(\"fitResources\");\n  const fedList = document.getElementById(\"fedResources\");\n  const focusList = document.getElementById(\"focusResources\");\n  const startCta = document.getElementById(\"startCta\");\n  const flowOverlay = document.getElementById(\"flowOverlay\");\n  const flowTitle = document.getElementById(\"flowTitle\");\n  const flowSubtitle = document.getElementById(\"flowSubtitle\");\n  const modalClose = document.getElementById(\"modalClose\");\n\n  let activePhase = null;\n\n  \/\/ ---------- render helpers ----------\n  function renderResources(listEl, items){\n    listEl.innerHTML = \"\";\n    items.forEach(item => {\n      const li = document.createElement(\"li\");\n      const btn = document.createElement(\"button\");\n      btn.className = \"resource-link\";\n      btn.type = \"button\";\n      btn.dataset.url = item.url;\n      btn.dataset.gated = item.gated ? \"1\" : \"0\";\n      btn.innerHTML = `\n        <span>${item.label}<\/span>\n        <svg class=\"arrow\" width=\"12\" height=\"10\" viewBox=\"0 0 12 10\" fill=\"none\" aria-hidden=\"true\">\n          <path d=\"M1 5H11M11 5L7 1M11 5L7 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n        <\/svg>\n      `;\n      btn.addEventListener(\"click\", () => handleResourceClick(item));\n      li.appendChild(btn);\n      listEl.appendChild(li);\n    });\n  }\n\n  function handleResourceClick(item){\n    const resource = {\n      title: item.label || \"Ressource NITIF\",\n      url: item.url || \"\",\n      type: \"Ressource saisonni\u00e8re\",\n      cat: \"method\"\n    };\n\n    if(window.nitifOpenLeadCapture){\n      window.nitifOpenLeadCapture(resource);\n      return;\n    }\n\n    window.dispatchEvent(new CustomEvent(\"nitif:resource:gated\", {detail:resource}));\n    const lead = document.getElementById(\"lead-magnet\") || document.querySelector(\".nitif-lead-magnet\");\n    if(lead){ lead.scrollIntoView({behavior:\"smooth\", block:\"start\"}); }\n  }\n\n  function activatePhase(key){\n    const data = phaseData[key];\n    if(!data) return;\n    activePhase = key;\n\n    \/\/ visual state on wheel\n    wheel.classList.add(\"has-active\");\n    segments.forEach(s => s.classList.toggle(\"is-active\", s.dataset.phase === key));\n\n    \/\/ populate content\n    pTopline.textContent = data.topline;\n    pTitle.textContent = data.title;\n    pIntent.textContent = data.intent;\n    pDescription.textContent = data.description;\n    renderResources(fitList, data.fit);\n    renderResources(fedList, data.fed);\n    renderResources(focusList, data.focus);\n\n    \/\/ swap visibility\n    detailEmpty.style.display = \"none\";\n    phaseContent.classList.add(\"is-visible\");\n  }\n\n  \/\/ ---------- bind segment clicks ----------\n  segments.forEach(seg => {\n    seg.addEventListener(\"click\", () => activatePhase(seg.dataset.phase));\n    seg.addEventListener(\"mouseenter\", () => {\n      if(!activePhase) activatePhase(seg.dataset.phase);\n    });\n  });\n\n  \/\/ ---------- \"Je commence ici\" \u2192 flowchart modal ----------\n  startCta.addEventListener(\"click\", () => {\n    if(!activePhase) return;\n    const data = phaseData[activePhase];\n    flowTitle.textContent = `Locked in. Ton ${data.title.toLowerCase()} commence.`;\n    flowSubtitle.textContent = `12 semaines structur\u00e9es sur la phase ${data.title} \u00b7 ${data.intent}. Une entr\u00e9e progressive, un bloc c\u0153ur de 8 semaines, une transition vers la saison suivante.`;\n    flowOverlay.classList.add(\"is-visible\");\n    window.nitifLockPageScroll();\n  });\n\n  function closeModal(){\n    flowOverlay.classList.remove(\"is-visible\");\n    window.nitifUnlockPageScroll();\n  }\n\n  modalClose.addEventListener(\"click\", closeModal);\n  flowOverlay.addEventListener(\"click\", (e) => {\n    if(e.target === flowOverlay) closeModal();\n  });\n  document.addEventListener(\"keydown\", (e) => {\n    if(e.key === \"Escape\" && flowOverlay.classList.contains(\"is-visible\")) closeModal();\n  });\n\n  \/\/ ---------- default: activate Printemps on load (cycle entry point visually) ----------\n  \/\/ Printemps is the default visible entry point for the seasonal system.\n  activatePhase(\"spring\");\n\n})();\n<\/script>\n\n  <!-- LES D\u00c9FIS \u2014 V10 4-TIER LADDER -->\n<!--\n=========================================================\n  NITIF V10 \u2014 SECTION \"LES D\u00c9FIS\"\n  4-tier challenge ladder: 2 free community + 2 B2B premium.\n  Drop-in placement: after \"La m\u00e9thode\" section, before \"Lead Magnet\".\n  Self-contained: scoped CSS, vanilla JS, no dependencies.\n=========================================================\n-->\n\n\n<section class=\"nitif-defis-v9\" id=\"defis\">\n  <div class=\"container\">\n\n    <div class=\"defis-eyebrow\">Les d\u00e9fis<\/div>\n    <h2 class=\"defis-h2\">\n      Quatre formats. <span class=\"accent\">Une m\u00eame m\u00e9thode.<\/span>\n    <\/h2>\n    <p class=\"defis-lede\">\n      Les principes sont connus. C'est <strong>la dur\u00e9e qui fait d\u00e9faut<\/strong>.\n      Quatre d\u00e9fis pour rendre la m\u00e9thode tenable \u2014 du gratuit pour la communaut\u00e9\n      au programme pour l'entreprise.\n    <\/p>\n\n    <!-- TIER 1: COMMUNITY (FREE) -->\n    <div class=\"tier-label community\">Communaut\u00e9 \u00b7 Acc\u00e8s gratuit<\/div>\n    <div class=\"defi-grid\">\n\n      <!-- DEFI 1: Focus Reset 7 jours -->\n      <div class=\"defi-card free\" data-defi=\"focus-reset\" tabindex=\"0\">\n        <div class=\"defi-tag free\">Gratuit<\/div>\n        <h3 class=\"defi-title\">Focus Reset<\/h3>\n        <p class=\"defi-duration\">7 jours \u00b7 rituel saisonnier<\/p>\n        <p class=\"defi-description\">\n          Six r\u00e8gles, sept jours. Un protocole court pour redescendre, dormir mieux,\n          et retrouver une base claire \u2014 \u00e0 refaire \u00e0 chaque changement de saison.\n        <\/p>\n        <div class=\"defi-stats\">\n          <div class=\"defi-stat\">\n            <span class=\"defi-stat-num\">6<\/span>\n            <span class=\"defi-stat-label\">r\u00e8gles<\/span>\n          <\/div>\n          <div class=\"defi-stat\">\n            <span class=\"defi-stat-num\">5 min<\/span>\n            <span class=\"defi-stat-label\">\/jour respiration<\/span>\n          <\/div>\n          <div class=\"defi-stat\">\n            <span class=\"defi-stat-num\">4\u00d7\/an<\/span>\n            <span class=\"defi-stat-label\">\u00e0 chaque saison<\/span>\n          <\/div>\n        <\/div>\n        <span class=\"defi-cta\">\n          Voir le protocole\n          <svg width=\"14\" height=\"10\" viewBox=\"0 0 14 10\" fill=\"none\">\n            <path d=\"M1 5h12m0 0L9 1m4 4L9 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n          <\/svg>\n        <\/span>\n      <\/div>\n\n      <!-- DEFI 2: Office Reboot 14 jours -->\n      <div class=\"defi-card free\" data-defi=\"office-reboot\" tabindex=\"0\">\n        <div class=\"defi-tag free\">Gratuit<\/div>\n        <h3 class=\"defi-title\">Office Reboot<\/h3>\n        <p class=\"defi-duration\">14 jours \u00b7 habitudes de bureau<\/p>\n        <p class=\"defi-description\">\n          Sept r\u00e8gles, deux semaines. Le d\u00e9fi qui s'attaque au contexte le plus\n          dur \u2014 le bureau \u2014 pour installer mouvement, concentration et coupures durables.\n        <\/p>\n        <div class=\"defi-stats\">\n          <div class=\"defi-stat\">\n            <span class=\"defi-stat-num\">7<\/span>\n            <span class=\"defi-stat-label\">r\u00e8gles<\/span>\n          <\/div>\n          <div class=\"defi-stat\">\n            <span class=\"defi-stat-num\">3\u00d7<\/span>\n            <span class=\"defi-stat-label\">pauses mouvement<\/span>\n          <\/div>\n          <div class=\"defi-stat\">\n            <span class=\"defi-stat-num\">14 j<\/span>\n            <span class=\"defi-stat-label\">2 semaines compl\u00e8tes<\/span>\n          <\/div>\n        <\/div>\n        <span class=\"defi-cta\">\n          Voir le protocole\n          <svg width=\"14\" height=\"10\" viewBox=\"0 0 14 10\" fill=\"none\">\n            <path d=\"M1 5h12m0 0L9 1m4 4L9 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n          <\/svg>\n        <\/span>\n      <\/div>\n\n    <\/div>\n\n    <!-- TIER 2: B2B (PAID) -->\n    <div class=\"tier-label b2b\">Entreprise \u00b7 Programme structur\u00e9<\/div>\n    <div class=\"defi-grid\">\n\n      <!-- DEFI 3: Office Athlete -->\n      <div class=\"defi-card b2b\" data-defi=\"office-athlete\" tabindex=\"0\">\n        <div class=\"defi-tag b2b\">B2B<\/div>\n        <h3 class=\"defi-title\">Office Athlete<\/h3>\n        <p class=\"defi-duration\">12 semaines \u00b7 programme entreprise<\/p>\n        <p class=\"defi-description\">\n          Le syst\u00e8me NITIF d\u00e9ploy\u00e9 pour vos \u00e9quipes. Diagnostic, protocoles\n          saisonniers, dashboard agr\u00e9g\u00e9 anonyme, restitutions trimestrielles.\n        <\/p>\n        <div class=\"defi-stats\">\n          <div class=\"defi-stat\">\n            <span class=\"defi-stat-num\">12 sem.<\/span>\n            <span class=\"defi-stat-label\">programme<\/span>\n          <\/div>\n          <div class=\"defi-stat\">\n            <span class=\"defi-stat-num\">100%<\/span>\n            <span class=\"defi-stat-label\">anonymis\u00e9<\/span>\n          <\/div>\n          <div class=\"defi-stat\">\n            <span class=\"defi-stat-num\">DRH<\/span>\n            <span class=\"defi-stat-label\">reporting d\u00e9di\u00e9<\/span>\n          <\/div>\n        <\/div>\n        <span class=\"defi-cta\">\n          Demander un brief\n          <svg width=\"14\" height=\"10\" viewBox=\"0 0 14 10\" fill=\"none\">\n            <path d=\"M1 5h12m0 0L9 1m4 4L9 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n          <\/svg>\n        <\/span>\n      <\/div>\n\n      <!-- DEFI 4: Company League -->\n      <div class=\"defi-card b2b\" data-defi=\"company-league\" tabindex=\"0\">\n        <div class=\"defi-tag b2b\">B2B \u00b7 Annuel<\/div>\n        <h3 class=\"defi-title\">Company League<\/h3>\n        <p class=\"defi-duration\">\u00c9dition annuelle \u00b7 inter-entreprises<\/p>\n        <p class=\"defi-description\">\n          Une p\u00e9riode, plusieurs entreprises, une m\u00e9trique commune.\n          \u00c9mulation par cohorte, sans podium individuel \u2014 la mesure collective\n          contre soi-m\u00eame.\n        <\/p>\n        <div class=\"defi-stats\">\n          <div class=\"defi-stat\">\n            <span class=\"defi-stat-num\">1\u00d7\/an<\/span>\n            <span class=\"defi-stat-label\">\u00e9dition fixe<\/span>\n          <\/div>\n          <div class=\"defi-stat\">\n            <span class=\"defi-stat-num\">N\u00d7<\/span>\n            <span class=\"defi-stat-label\">entreprises<\/span>\n          <\/div>\n          <div class=\"defi-stat\">\n            <span class=\"defi-stat-num\">0<\/span>\n            <span class=\"defi-stat-label\">classement individuel<\/span>\n          <\/div>\n        <\/div>\n        <span class=\"defi-cta\">\n          Recevoir l'\u00e9dition prochaine\n          <svg width=\"14\" height=\"10\" viewBox=\"0 0 14 10\" fill=\"none\">\n            <path d=\"M1 5h12m0 0L9 1m4 4L9 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n          <\/svg>\n        <\/span>\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n\n  <!-- modal: dynamically populated -->\n  <div class=\"defi-overlay\" id=\"defiOverlay\">\n    <div class=\"defi-modal\" id=\"defiModal\">\n      <button class=\"modal-close\" id=\"defiModalClose\" aria-label=\"Fermer\">\u00d7<\/button>\n      <div id=\"defiModalContent\"><\/div>\n    <\/div>\n  <\/div>\n\n<\/section>\n\n<script>\n(function(){\n  \/\/ ---------- defi data ----------\n  const defiData = {\n    \"focus-reset\": {\n      tier: \"free\",\n      tag: \"Gratuit \u00b7 Communaut\u00e9\",\n      title: \"Focus Reset \u00b7 7 jours\",\n      subtitle: \"Un rituel saisonnier court pour redescendre, dormir mieux, et reposer une base claire avant la phase suivante. \u00c0 refaire \u00e0 chaque changement de saison \u2014 quatre fois par an.\",\n      type: \"rules\",\n      rules: [\n        {\n          title: \"5 minutes de cyclic sighing par jour\",\n          detail: \"Deux inspirations cons\u00e9cutives par le nez, longue expiration par la bouche. \u00c0 faire \u00e0 n'importe quel moment de la journ\u00e9e.\",\n          science: \"Stanford 2023 \u00b7 Cell Reports Medicine\"\n        },\n        {\n          title: \"Fen\u00eatre alimentaire de 12 heures\",\n          detail: \"Trois repas dans une fen\u00eatre fixe (par exemple 8h\u201320h). Aliments entiers prioritaires. Pas de grignotage hors fen\u00eatre.\",\n          science: \"Time-restricted eating \u00b7 alignement circadien\"\n        },\n        {\n          title: \"Petit-d\u00e9jeuner sans sucre rapide\",\n          detail: \"Prot\u00e9ines + lipides au matin. \u0152ufs, fromage, avocat, fruits entiers. Pas de jus, pas de viennoiseries, pas de c\u00e9r\u00e9ales sucr\u00e9es.\",\n          science: \"R\u00e9ponse glyc\u00e9mique matinale\"\n        },\n        {\n          title: \"Stop alimentaire 2h avant le coucher\",\n          detail: \"Derni\u00e8re prise au moins deux heures avant l'extinction. Pr\u00e9serve l'architecture du sommeil et la r\u00e9gulation glyc\u00e9mique nocturne.\",\n          science: \"Chronobiologie du sommeil\"\n        },\n        {\n          title: \"8 000 pas minimum par jour\",\n          detail: \"Le seuil document\u00e9 pour une r\u00e9duction significative de la mortalit\u00e9, atteignable au bureau. 10 000 si tu peux pousser.\",\n          science: \"Lancet Public Health 2022\"\n        },\n        {\n          title: \"10 minutes de lumi\u00e8re du matin\",\n          detail: \"Dans les 30 premi\u00e8res minutes apr\u00e8s le r\u00e9veil. Id\u00e9alement dehors. Calage du rythme circadien et mont\u00e9e du cortisol matinal.\",\n          science: \"Phototh\u00e9rapie circadienne\"\n        }\n      ],\n      shareable: \"\u00c0 la fin du d\u00e9fi, g\u00e9n\u00e8re un bilan partageable au format Instagram et LinkedIn \u2014 tes r\u00e9sultats, ton rituel, ta saison. Les participants valid\u00e9s re\u00e7oivent -10% sur leur premi\u00e8re Box NITIF.\",\n      ctaPrimary: { label: \"Commencer le d\u00e9fi\", href: \"#lead-magnet\" },\n      ctaSecondary: null,\n      footer: \"Inscription par email pour recevoir le plan jour par jour, les fiches PDF, le bilan partageable et le code -10% apr\u00e8s participation valid\u00e9e.\"\n    },\n\n    \"office-reboot\": {\n      tier: \"free\",\n      tag: \"Gratuit \u00b7 Communaut\u00e9\",\n      title: \"Office Reboot \u00b7 14 jours\",\n      subtitle: \"Sept r\u00e8gles, deux semaines compl\u00e8tes. Un d\u00e9fi qui s'attaque au contexte le plus dur \u2014 le bureau \u2014 pour installer mouvement, concentration et coupures durables.\",\n      type: \"rules\",\n      rules: [\n        {\n          title: \"Trois movement snacks par jour\",\n          detail: \"Micro-pauses mouvement de 2 \u00e0 5 minutes : escaliers, mobilit\u00e9, debout, marche. R\u00e9parties matin, midi, apr\u00e8s-midi.\",\n          science: \"Activit\u00e9 fragment\u00e9e \u00b7 s\u00e9dentarit\u00e9\"\n        },\n        {\n          title: \"Marche post-d\u00e9jeuner \u2014 15 min\",\n          detail: \"En ext\u00e9rieur apr\u00e8s le repas. Triple effet : digestion, exposition lumi\u00e8re, contr\u00f4le glucose post-prandial.\",\n          science: \"Glyc\u00e9mie post-prandiale + circadien\"\n        },\n        {\n          title: \"Pomodoro respir\u00e9 \u00b7 5 min toutes les 90 min\",\n          detail: \"Toutes les 90 minutes, 5 minutes de respiration consciente. Sans \u00e9cran. Pr\u00e9serve l'attention sur la dur\u00e9e.\",\n          science: \"Cycle ultradien \u00b7 attention\"\n        },\n        {\n          title: \"2,5 L d'eau \u00e9tal\u00e9s sur la journ\u00e9e\",\n          detail: \"2,5 L d\u2019eau plate r\u00e9partis sur la journ\u00e9e. Z\u00e9ro sodas, z\u00e9ro jus, caf\u00e9 limit\u00e9 aux quatre premi\u00e8res heures.\",\n          science: \"Hydratation cognitive\"\n        },\n        {\n          title: \"10 minutes de lumi\u00e8re naturelle avant midi\",\n          detail: \"Une vraie pause dehors avant 12h. Pas la fen\u00eatre du bureau. Pas le couloir.\",\n          science: \"Cortisol matinal \u00b7 circadien\"\n        },\n        {\n          title: \"Notifications coup\u00e9es 9h\u201312h\",\n          detail: \"Bloc de focus profond intouchable. Mode avion sur les notifications. Une seule fen\u00eatre de check \u00e0 12h.\",\n          science: \"Focus profond \u00b7 interruption cognitive\"\n        },\n        {\n          title: \"Digital sunset \u00b7 pas d'email pro apr\u00e8s 19h\",\n          detail: \"Coupure stricte. Le travail attend demain. La r\u00e9cup\u00e9ration mentale commence par la coupure technique.\",\n          science: \"Fronti\u00e8re travail \u00b7 sommeil\"\n        }\n      ],\n      shareable: \"\u00c0 la fin des 14 jours, g\u00e9n\u00e8re ton bilan partageable \u2014 habitudes install\u00e9es, m\u00e9triques, et nouveau rythme de bureau. Les participants valid\u00e9s re\u00e7oivent -10% sur leur premi\u00e8re Box NITIF.\",\n      ctaPrimary: { label: \"Commencer le d\u00e9fi\", href: \"#lead-magnet\" },\n      ctaSecondary: null,\n      footer: \"Plan jour par jour, fiches d\u2019installation par r\u00e8gle, bilan partageable et code -10% envoy\u00e9s par email apr\u00e8s participation valid\u00e9e.\"\n    },\n\n    \"office-athlete\": {\n      tier: \"b2b\",\n      tag: \"B2B \u00b7 Programme entreprise\",\n      title: \"Office Athlete \u00b7 12 semaines\",\n      subtitle: \"Le syst\u00e8me NITIF d\u00e9ploy\u00e9 pour vos \u00e9quipes. Diagnostic initial, protocoles saisonniers, dashboard agr\u00e9g\u00e9 anonyme, restitutions trimestrielles. Adapt\u00e9 aux secteurs s\u00e9dentaires avec contrainte de productivit\u00e9.\",\n      type: \"includes\",\n      pricingNote: \"Tarification sur devis selon taille de l'\u00e9quipe et niveau d'accompagnement. Programme sur 12 semaines, renouvelable par cycle annuel.\",\n      includes: [\n        \"Diagnostic sant\u00e9 d'\u00e9quipe initial (questionnaire DRH + audit)\",\n        \"Onboarding individuel pour chaque collaborateur\",\n        \"Protocoles Fit \u00b7 Fed \u00b7 Focus saisonniers\",\n        \"Email automation 12 semaines (planning + rappels)\",\n        \"Dashboard agr\u00e9g\u00e9 anonymis\u00e9 pour la DRH\",\n        \"Restitutions trimestrielles (pr\u00e9-rapport ROI)\",\n        \"Atelier kick-off + atelier mi-parcours\",\n        \"Support d\u00e9di\u00e9 pendant toute la dur\u00e9e\",\n        \"15% de r\u00e9duction sur la boutique NITIF Box pour les participants\"\n      ],\n      ctaPrimary: { label: \"Demander un brief\", href: \"#lead-magnet\" },\n      ctaSecondary: { label: \"Consulter une \u00e9tude de cas\", href: \"#etudes-de-cas\" },\n      footer: \"Programme con\u00e7u pour les \u00e9quipes de 10 \u00e0 500 collaborateurs. Conformit\u00e9 RGPD int\u00e9gr\u00e9e \u2014 toutes les donn\u00e9es individuelles restent priv\u00e9es.\"\n    },\n\n    \"company-league\": {\n      tier: \"b2b\",\n      tag: \"B2B \u00b7 League inter-entreprises\",\n      title: \"NITIF Company League \u00b7 Inter-entreprises\",\n      subtitle: \"Une \u00e9dition annuelle inter-entreprises : plusieurs \u00e9quipes, une p\u00e9riode commune, des m\u00e9triques agr\u00e9g\u00e9es, un \u00e9v\u00e9nement final et des invitations pour les meilleures \u00e9quipes et profils remarquables. L\u2019objectif : cr\u00e9er de l\u2019engagement, pas une comp\u00e9tition toxique.\",\n      type: \"includes\",\n      pricingNote: \"\u00c9dition annuelle organis\u00e9e autour d\u2019une p\u00e9riode fixe. Inscription des entreprises en amont, activation de la communaut\u00e9 pendant le d\u00e9fi, puis \u00e9v\u00e9nement final NITIF avec cadeaux, rencontres et retours d\u2019exp\u00e9rience.\",\n      includes: [\n        \"P\u00e9riode fixe de 12 semaines \u00b7 m\u00eame calendrier pour tous\",\n        \"M\u00e9triques agr\u00e9g\u00e9es par \u00e9quipe \u00b7 jamais individuelles\",\n        \"Kick-off commun (pr\u00e9sentiel + visio)\",\n        \"Restitution finale partag\u00e9e entre entreprises participantes\",\n        \"T\u00e9moignages et \u00e9tudes de cas issus de l'\u00e9dition\",\n        \"R\u00e9seau professionnel de DRH wellness\",\n        \"Pas de classement public \u00b7 pas de prix mat\u00e9riels\",\n        \"Mesure collective contre soi-m\u00eame, pas contre l'autre\",\n        \"15% de r\u00e9duction sur la boutique NITIF Box pour les participants\",\n        \"\u00c9v\u00e9nement annuel NITIF : invitation des meilleures \u00e9quipes et profils remarquables, cadeaux, rencontres et mise en avant communautaire\"\n      ],\n      ctaPrimary: { label: \"Rejoindre la liste d'attente\", href: \"#lead-magnet\" },\n      ctaSecondary: null,\n      footer: \"Conditions d\u2019\u00e9ligibilit\u00e9 : entreprises engag\u00e9es dans Office Athlete ou cohorte invit\u00e9e. Les participants b\u00e9n\u00e9ficient de 15% sur la boutique NITIF Box pendant l\u2019activation.\"\n    }\n  };\n\n  \/\/ ---------- DOM refs ----------\n  const overlay = document.getElementById(\"defiOverlay\");\n  const modalContent = document.getElementById(\"defiModalContent\");\n  const modalClose = document.getElementById(\"defiModalClose\");\n  const cards = document.querySelectorAll(\".defi-card\");\n\n  \/\/ ---------- render helpers ----------\n  function renderRules(rules){\n    return `\n      <ul class=\"rules-list\">\n        ${rules.map((r, i) => `\n          <li>\n            <div class=\"rule-num\">${String(i+1).padStart(2, '0')}<\/div>\n            <div class=\"rule-content\">\n              <h4 class=\"rule-title\">${r.title}<\/h4>\n              <p class=\"rule-detail\">${r.detail}<\/p>\n              ${r.science ? `<span class=\"rule-science\">${r.science}<\/span>` : ''}\n            <\/div>\n          <\/li>\n        `).join('')}\n      <\/ul>\n    `;\n  }\n\n  function renderIncludes(items){\n    const checkSvg = `<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\"><path d=\"M3 8.5L6.5 12L13 4.5\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>`;\n    return `\n      <div class=\"includes-grid\">\n        ${items.map(item => `\n          <div class=\"include-item\">\n            ${checkSvg}\n            <span>${item}<\/span>\n          <\/div>\n        `).join('')}\n      <\/div>\n    `;\n  }\n\n  function renderShareable(text){\n    if(!text) return '';\n    const shareSvg = `<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M14 6.5C15.3807 6.5 16.5 5.38071 16.5 4C16.5 2.61929 15.3807 1.5 14 1.5C12.6193 1.5 11.5 2.61929 11.5 4C11.5 4.20857 11.5256 4.41119 11.5739 4.60494L7.81818 7.13013C7.36418 6.74317 6.78203 6.5 6.14286 6.5C4.69238 6.5 3.5 7.69238 3.5 9.14286C3.5 10.5933 4.69238 11.7857 6.14286 11.7857C6.78203 11.7857 7.36418 11.5425 7.81818 11.1556L11.5739 13.6808C11.5256 13.8745 11.5 14.0771 11.5 14.2857C11.5 15.6664 12.6193 16.7857 14 16.7857C15.3807 16.7857 16.5 15.6664 16.5 14.2857C16.5 12.905 15.3807 11.7857 14 11.7857C13.3608 11.7857 12.7787 12.0289 12.3247 12.4159L8.56897 9.89066C8.61727 9.69692 8.64286 9.49429 8.64286 9.28571C8.64286 9.07714 8.61727 8.87452 8.56897 8.68077L12.3247 6.15558C12.7787 6.5425 13.3608 6.5 14 6.5Z\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linejoin=\"round\"\/><\/svg>`;\n    return `\n      <div class=\"shareable-note\">\n        ${shareSvg}\n        <div>\n          <strong>Bilan partageable inclus<\/strong>\n          ${text}\n        <\/div>\n      <\/div>\n    `;\n  }\n\n  function renderPricingNote(text){\n    if(!text) return '';\n    const infoSvg = `<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\"><circle cx=\"9\" cy=\"9\" r=\"7.5\" stroke=\"currentColor\" stroke-width=\"1.4\"\/><path d=\"M9 8v5M9 5.5v.01\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\"\/><\/svg>`;\n    return `\n      <div class=\"b2b-pricing-note\">\n        ${infoSvg}\n        <span>${text}<\/span>\n      <\/div>\n    `;\n  }\n\n  function renderCtas(primary, secondary){\n    const arrowSvg = `<svg width=\"14\" height=\"10\" viewBox=\"0 0 14 10\" fill=\"none\"><path d=\"M1 5h12m0 0L9 1m4 4L9 9\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>`;\n    let html = `<a class=\"modal-cta\" href=\"${primary.href}\">${primary.label}${arrowSvg}<\/a>`;\n    if(secondary){\n      html += `<a class=\"modal-cta outline\" href=\"${secondary.href}\">${secondary.label}<\/a>`;\n    }\n    return html;\n  }\n\n  function openModal(key){\n    const data = defiData[key];\n    if(!data) return;\n\n    let body = '';\n    body += `<div class=\"modal-tag ${data.tier}\">${data.tag}<\/div>`;\n    body += `<h3 class=\"modal-title\">${data.title}<\/h3>`;\n    body += `<p class=\"modal-subtitle\">${data.subtitle}<\/p>`;\n\n    if(data.type === \"rules\"){\n      body += renderRules(data.rules);\n      body += renderShareable(data.shareable);\n    } else if(data.type === \"includes\"){\n      body += renderPricingNote(data.pricingNote);\n      body += renderIncludes(data.includes);\n    }\n\n    body += `\n      <div class=\"modal-cta-row\">\n        <p class=\"modal-secondary-text\">${data.footer}<\/p>\n        <div style=\"display:flex;gap:12px;flex-wrap:wrap;align-items:center;\">\n          ${renderCtas(data.ctaPrimary, data.ctaSecondary)}\n        <\/div>\n      <\/div>\n    `;\n\n    modalContent.innerHTML = body;\n    overlay.classList.add(\"is-visible\");\n    window.nitifLockPageScroll();\n  }\n\n  function closeModal(){\n    overlay.classList.remove(\"is-visible\");\n    window.nitifUnlockPageScroll();\n  }\n\n  \/\/ ---------- bindings ----------\n  cards.forEach(card => {\n    const key = card.dataset.defi;\n    card.addEventListener(\"click\", () => openModal(key));\n    card.addEventListener(\"keydown\", (e) => {\n      if(e.key === \"Enter\" || e.key === \" \"){\n        e.preventDefault();\n        openModal(key);\n      }\n    });\n  });\n\n  modalClose.addEventListener(\"click\", closeModal);\n  overlay.addEventListener(\"click\", (e) => {\n    if(e.target === overlay) closeModal();\n  });\n  document.addEventListener(\"keydown\", (e) => {\n    if(e.key === \"Escape\" && overlay.classList.contains(\"is-visible\")) closeModal();\n  });\n\n})();\n<\/script>\n\n  <!-- BOXES \u00b7 RESSOURCES \u00b7 SPIRALE \u00b7 COMMUNAUT\u00c9 \u2014 V10 -->\n<!--\n=========================================================\n  NITIF V10 \u2014 REMAINING SECTIONS (Boxes \u00b7 Ressources \u00b7 Spirale \u00b7 Communaut\u00e9)\n  Drop-in: replaces V8 sections from line ~1729 to ~1959\n=========================================================\n-->\n\n<!-- ============================================================\n     SECTION 1\/4 \u2014 BOXES (revised: 4 boxes, content now + roadmap)\n============================================================ -->\n<section class=\"nitif-v9-section nitif-v9-boxes\" id=\"boxes\">\n  <div class=\"container\">\n    <div class=\"eyebrow\">Les Boxes NITIF<\/div>\n    <h2 class=\"h2\">\n      Quatre piliers, <span class=\"accent\">quatre bo\u00eetes \u00e0 outils.<\/span>\n    <\/h2>\n    <p class=\"lede\">\n      Chaque box rassemble ce dont tu as besoin pour avancer dans son pilier \u2014 disponible\n      maintenant, gratuitement. Les produits NITIF en feront partie progressivement.\n    <\/p>\n\n    <div class=\"boxes-grid\">\n\n      <!-- Fit Box -->\n      <div class=\"box-card\" data-box=\"fit\">\n        <div class=\"box-tag\">Fit \u00b7 Mouvement<\/div>\n        <h3 class=\"box-title\">Fit Box<\/h3>\n        <p class=\"box-desc\">\n          Une bo\u00eete physique et digitale pour remettre le mouvement dans une vie de bureau : clair, simple, mesurable.\n        <\/p>\n        <div class=\"box-now\">Pack \u00e0 vendre \u00b7 page d\u00e9di\u00e9e \u00e0 cr\u00e9er<\/div>\n        <ul class=\"box-items\">\n          <li>Pamphlet design\u00e9 Fit<\/li>\n          <li>Cartes movement snacks<\/li>\n          <li>Mini-plan cardio progressif<\/li>\n          <li>Mobilit\u00e9 bureau + QR vid\u00e9os<\/li>\n          <li>Articles et routines imprim\u00e9es<\/li>\n        <\/ul>\n        <div class=\"box-roadmap\">\n          <strong>Page d\u00e9di\u00e9e<\/strong>\n          Pr\u00e9senter le contenu, les niveaux, les QR vid\u00e9os, les formats entreprise et les accessoires utiles sans tomber dans le gadget.\n        <\/div>\n      <\/div>\n\n      <!-- Fed Box -->\n      <div class=\"box-card\" data-box=\"fed\">\n        <div class=\"box-tag\">Fed \u00b7 Nutrition<\/div>\n        <h3 class=\"box-title\">Fed Box<\/h3>\n        <p class=\"box-desc\">\n          La box nutritionnelle NITIF : barres saines, infusions, recettes et outils saisonniers pour manger selon sa phase.\n        <\/p>\n        <div class=\"box-now\">Pack \u00e0 vendre \u00b7 page d\u00e9di\u00e9e \u00e0 cr\u00e9er<\/div>\n        <ul class=\"box-items\">\n          <li>Barres healthy NITIF<\/li>\n          <li>Infusions saisonni\u00e8res<\/li>\n          <li>Mini-livre recettes 4 saisons<\/li>\n          <li>Cartes courses et assiette type<\/li>\n          <li>\u00c9chantillons et fiches ingr\u00e9dients<\/li>\n        <\/ul>\n        <div class=\"box-roadmap\">\n          <strong>Page d\u00e9di\u00e9e<\/strong>\n          D\u00e9tailler les recettes, les lots, les \u00e9ditions saisonni\u00e8res, les abonnements et les packs d\u2019essai.\n        <\/div>\n      <\/div>\n\n      <!-- Focus Box -->\n      <div class=\"box-card\" data-box=\"focus\">\n        <div class=\"box-tag\">Focus \u00b7 R\u00e9cup\u00e9ration<\/div>\n        <h3 class=\"box-title\">Focus Box<\/h3>\n        <p class=\"box-desc\">\n          Une box de r\u00e9cup\u00e9ration mentale : respiration, m\u00e9ditation, attention, sommeil et rituels anti-bruit.\n        <\/p>\n        <div class=\"box-now\">Pack \u00e0 vendre \u00b7 page d\u00e9di\u00e9e \u00e0 cr\u00e9er<\/div>\n        <ul class=\"box-items\">\n          <li>Cartes respiration et m\u00e9ditation<\/li>\n          <li>Mandala \/ outil d\u2019attention<\/li>\n          <li>\u201cCount the rice\u201d focus box<\/li>\n          <li>Rituel sommeil + lumi\u00e8re<\/li>\n          <li>Audio \/ QR guid\u00e9s<\/li>\n        <\/ul>\n        <div class=\"box-roadmap\">\n          <strong>Page d\u00e9di\u00e9e<\/strong>\n          Positionner la box comme un kit de r\u00e9cup\u00e9ration et d\u2019attention, pas comme un simple objet bien-\u00eatre.\n        <\/div>\n      <\/div>\n\n      <!-- Challenge Box -->\n      <div class=\"box-card\" data-box=\"challenge\">\n        <div class=\"box-tag b2b\">Challenge \u00b7 Engagement<\/div>\n        <h3 class=\"box-title\">Challenge Box<\/h3>\n        <p class=\"box-desc\">\n          Le support physique des d\u00e9fis NITIF : suivre, cocher, afficher, publier, recommencer.\n        <\/p>\n        <div class=\"box-now\">Pack \u00e0 vendre \u00b7 B2C et entreprise<\/div>\n        <ul class=\"box-items\">\n          <li>Trackers imprimables et muraux<\/li>\n          <li>Journal de d\u00e9fi 7j \/ 14j<\/li>\n          <li>Badges, stickers, cartes r\u00e8gles<\/li>\n          <li>QR dashboard \/ La Spirale<\/li>\n          <li>Kits \u00e9quipe Office Athlete<\/li>\n        <\/ul>\n        <div class=\"box-roadmap\">\n          <strong>Page d\u00e9di\u00e9e<\/strong>\n          Cr\u00e9er une offre B2C simple et une version entreprise avec pack collaborateurs, animation et suivi collectif.\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/section>\n\n\n<!-- ============================================================\n     SECTION 2\/4 \u2014 RESSOURCES (3-tier email model + JSON-driven)\n============================================================ -->\n<section class=\"nitif-v9-section nitif-v9-resources\" id=\"ressources\">\n  <div class=\"container\">\n\n    <div class=\"eyebrow\">Ressources<\/div>\n    <h2 class=\"h2\">\n      Tout ce qui peut <span class=\"accent\">se t\u00e9l\u00e9charger.<\/span>\n    <\/h2>\n    <p class=\"lede\">\n      Guides, fiches, articles, outils interactifs. La majorit\u00e9 est en acc\u00e8s libre.\n      Chaque ressource passe par l\u2019email : tu demandes le fichier, l\u2019app ou le guide, puis le lien arrive dans ta bo\u00eete. Pas de spam.\n    <\/p>\n\n    <!-- newsletter spotlight -->\n    <div class=\"newsletter-spotlight nitif-lead-magnet\" id=\"lead-magnet\">\n      <div class=\"newsletter-content\">\n        <span class=\"newsletter-eyebrow\">La Quinzaine NITIF<\/span>\n        <h3 class=\"newsletter-title\">Re\u00e7ois ce que tu n'as pas le temps de chercher.<\/h3>\n        <p class=\"newsletter-pitch\">\n          Tous les 15 jours, un \u00e9dito de fond, une capsule science, un protocole pratique\n          et une recette de saison. Format magazine, jamais de spam. D\u00e9sabonnement en un clic.\n        <\/p>\n        <div class=\"newsletter-cadence\">\n          <span>Bi-mensuelle<\/span>\n          <span>~5 min de lecture<\/span>\n          <span>Sans tracker tiers<\/span>\n        <\/div>\n      <\/div>\n      <form class=\"newsletter-form\" id=\"newsletterForm\" novalidate>\n        <div class=\"nitif-form-grid\">\n          <div class=\"nitif-field nitif-field-full\">\n            <label for=\"nitifRequestTopic\">Sujet de la demande<\/label>\n            <select class=\"email-input nitif-select\" id=\"nitifRequestTopic\" required>\n              <option value=\"challenge_focus_reset\" selected>D\u00e9fi public \u00b7 Focus Reset<\/option>\n              <option value=\"challenge_office_reboot\">D\u00e9fi public \u00b7 Office Reboot<\/option>\n              <option value=\"b2b_collaboration\">Demande info \u00b7 Collaboration entreprise<\/option>\n              <option value=\"tool_spirale\">Outil \u00b7 La Spirale NITIF<\/option>\n              <option value=\"tool_preparation\">Outil \u00b7 Pr\u00e9paration profil<\/option>\n              <option value=\"tool_defi_launcher\">Outil \u00b7 Lanceur de d\u00e9fi 7j<\/option>\n              <option value=\"resource_specific\">Ressource s\u00e9lectionn\u00e9e \u00b7 lien par email<\/option>\n              <option value=\"other\">Autre demande<\/option>\n            <\/select>\n          <\/div>\n\n          <div class=\"nitif-field\">\n            <label for=\"newsletterEmail\">Email<\/label>\n            <input type=\"email\" class=\"email-input\" id=\"newsletterEmail\" placeholder=\"ton@email.fr\" autocomplete=\"email\" required>\n          <\/div>\n\n          <div class=\"nitif-field\">\n            <label for=\"nitifPublicName\">Pr\u00e9nom ou trigramme<\/label>\n            <input type=\"text\" class=\"email-input\" id=\"nitifPublicName\" placeholder=\"Ex. Ethan ou EAD\" autocomplete=\"given-name\" maxlength=\"24\">\n          <\/div>\n        <\/div>\n\n        <div class=\"nitif-capture-options\">\n          <label class=\"nitif-checkline\">\n            <input type=\"checkbox\" id=\"nitifRememberEmail\" checked>\n            <span>M\u00e9moriser cet email sur cet appareil pour les prochaines ressources.<\/span>\n          <\/label>\n\n          <label class=\"nitif-checkline\">\n            <input type=\"checkbox\" id=\"nitifNewsletterOptin\" checked>\n            <span>Recevoir aussi La Quinzaine NITIF \u2014 \u00e9dito, science, protocole pratique et recette de saison.<\/span>\n          <\/label>\n\n          <label class=\"nitif-checkline\">\n            <input type=\"checkbox\" id=\"nitifPublicConsent\">\n            <span>Je participe au d\u00e9fi public et j\u2019accepte que NITIF publie mon pr\u00e9nom ou trigramme dans la liste des participants. Les participants re\u00e7oivent un code -10% sur leur premi\u00e8re Box NITIF.<\/span>\n          <\/label>\n        <\/div>\n\n        <button type=\"submit\" class=\"email-submit nitif-submit-wide\">Recevoir le lien \u2192<\/button>\n\n        <p class=\"newsletter-disclaimer\">En t'inscrivant, tu acceptes de recevoir l\u2019email li\u00e9 \u00e0 ta demande. La Quinzaine NITIF est coch\u00e9e par d\u00e9faut et reste d\u00e9sactivable \u00e0 tout moment.<\/p>\n        <div class=\"nitif-selected-resource\" id=\"selectedResourceNotice\" aria-live=\"polite\"><\/div>\n        <div class=\"nitif-form-message\" id=\"newsletterMessage\" role=\"status\" aria-live=\"polite\"><\/div>\n      <\/form>\n    <\/div>\n\n    <!-- resource tabs -->\n    <div class=\"resources-tabs\" id=\"resourceTabs\">\n      <button class=\"resource-tab active\" data-cat=\"all\">Tout<\/button>\n      <button class=\"resource-tab\" data-cat=\"guide\">Guides PDF<\/button>\n      <button class=\"resource-tab\" data-cat=\"article\">Articles<\/button>\n      <button class=\"resource-tab\" data-cat=\"tool\">Outils<\/button>\n    <\/div>\n\n    <!-- resource grid (rendered from JS data) -->\n    <div class=\"resources-grid\" id=\"resourcesGrid\"><\/div>\n\n  <\/div>\n<\/section>\n\n\n<!-- ============================================================\n     SECTION 3\/4 \u2014 SPIRALE (function-anchored)\n============================================================ -->\n<section class=\"nitif-v9-section nitif-v9-spirale\" id=\"spirale\">\n  <div class=\"container\">\n    <div class=\"spirale-grid\">\n\n      <!-- LEFT: visual -->\n      <div class=\"spirale-visual\">\n        <svg class=\"spirale-svg\" viewBox=\"0 0 600 600\" fill=\"none\" aria-hidden=\"true\">\n          <defs>\n            <linearGradient id=\"nitifSpiralV9\" x1=\"100\" y1=\"90\" x2=\"520\" y2=\"510\" gradientUnits=\"userSpaceOnUse\">\n              <stop stop-color=\"#7ce8df\"\/>\n              <stop offset=\"0.48\" stop-color=\"#00cfc0\"\/>\n              <stop offset=\"1\" stop-color=\"#0087A9\"\/>\n            <\/linearGradient>\n          <\/defs>\n          <!-- spiral path -->\n          <path d=\"M410 150 C470 185, 500 248, 492 320 C479 425, 392 497, 288 493 C184 488, 110 408, 108 313 C106 225, 169 164, 246 163 C315 162, 367 209, 368 268 C368 325, 328 366, 271 366 C222 366, 186 333, 186 289 C186 250, 214 223, 249 223 C282 223, 304 246, 304 276 C304 301, 287 319, 262 319\"\n                stroke=\"url(#nitifSpiralV9)\" stroke-width=\"10\" stroke-linecap=\"round\" fill=\"none\"\/>\n          <!-- subtle structure rectangles -->\n          <g opacity=\"0.12\" stroke=\"#7ce8df\" stroke-width=\"1.5\">\n            <rect x=\"106\" y=\"106\" width=\"388\" height=\"388\" rx=\"16\"\/>\n            <rect x=\"106\" y=\"106\" width=\"240\" height=\"240\" rx=\"14\"\/>\n            <rect x=\"346\" y=\"106\" width=\"148\" height=\"148\" rx=\"14\"\/>\n            <rect x=\"254\" y=\"254\" width=\"92\" height=\"92\" rx=\"12\"\/>\n          <\/g>\n          <!-- markers: where you are in the cycle (illustrative) -->\n          <g class=\"spirale-marker\">\n            <circle cx=\"301\" cy=\"228\" r=\"14\" fill=\"#00cfc0\"\/>\n            <circle cx=\"301\" cy=\"228\" r=\"22\" fill=\"none\" stroke=\"#00cfc0\" stroke-width=\"1\" opacity=\"0.4\"\/>\n          <\/g>\n          <g class=\"spirale-marker\">\n            <circle cx=\"224\" cy=\"304\" r=\"11\" fill=\"#7ce8df\" opacity=\"0.7\"\/>\n          <\/g>\n          <g class=\"spirale-marker\">\n            <circle cx=\"430\" cy=\"426\" r=\"9\" fill=\"#7ce8df\" opacity=\"0.5\"\/>\n          <\/g>\n          <!-- small caption next to current marker -->\n          <g>\n            <rect x=\"338\" y=\"216\" width=\"120\" height=\"26\" rx=\"13\" fill=\"rgba(0,207,192,0.12)\" stroke=\"rgba(0,207,192,0.3)\" stroke-width=\"1\"\/>\n            <text x=\"398\" y=\"233\" text-anchor=\"middle\" fill=\"#00cfc0\" font-size=\"11\" font-family=\"Poppins\" font-weight=\"600\" letter-spacing=\"1.5\">VOUS \u00caTES ICI<\/text>\n          <\/g>\n        <\/svg>\n      <\/div>\n\n      <!-- RIGHT: content -->\n      <div class=\"spirale-content\">\n        <div class=\"eyebrow\">La Spirale<\/div>\n        <h2 class=\"h2\">\n          Sache o\u00f9 tu es <span class=\"accent\">dans ton ann\u00e9e.<\/span>\n        <\/h2>\n        <p class=\"lede\">\n          Le corps n'avance pas en ligne droite. Il avance en cycles qui se r\u00e9p\u00e8tent\n          en s'affinant. La Spirale est l\u2019application web centrale de NITIF \u2014 trackers,\n          d\u00e9fis, constance, saisons et progression. Elle est en construction, mais elle devient\n          le tableau de bord vivant de ton ann\u00e9e.\n        <\/p>\n\n        <div class=\"spirale-functions\">\n\n          <div class=\"spirale-function\">\n            <div class=\"spirale-function-icon\">\n              <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\n                <circle cx=\"9\" cy=\"9\" r=\"7\" stroke=\"currentColor\" stroke-width=\"1.5\"\/>\n                <path d=\"M9 5v4l2.5 2.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/>\n              <\/svg>\n            <\/div>\n            <div class=\"spirale-function-content\">\n              <h4 class=\"spirale-function-title\">Suivre ton ann\u00e9e<\/h4>\n              <p class=\"spirale-function-desc\">\n                Saison active, semaine du bloc, position dans le cycle. La m\u00e9thode rendue visible.\n              <\/p>\n            <\/div>\n          <\/div>\n\n          <div class=\"spirale-function\">\n            <div class=\"spirale-function-icon\">\n              <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\n                <path d=\"M2 9h2l2-5 4 10 2-5h4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n              <\/svg>\n            <\/div>\n            <div class=\"spirale-function-content\">\n              <h4 class=\"spirale-function-title\">Voir ta constance<\/h4>\n              <p class=\"spirale-function-desc\">\n                Streak quotidien, jours d'adh\u00e9rence, jours de pause. Pas de jugement \u2014 juste des donn\u00e9es.\n              <\/p>\n            <\/div>\n          <\/div>\n\n          <div class=\"spirale-function\">\n            <div class=\"spirale-function-icon\">\n              <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\n                <path d=\"M9 1.5l1.85 4.85L16 7l-3.5 3.5L13 16 9 13.5 5 16l.5-5.5L2 7l5.15-.65L9 1.5z\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linejoin=\"round\"\/>\n              <\/svg>\n            <\/div>\n            <div class=\"spirale-function-content\">\n              <h4 class=\"spirale-function-title\">Trouver du sens<\/h4>\n              <p class=\"spirale-function-desc\">\n                Dans un monde lin\u00e9aire et acc\u00e9l\u00e9r\u00e9, retrouver une cadence cyclique. Ton ann\u00e9e rendue lisible.\n              <\/p>\n            <\/div>\n          <\/div>\n\n        <\/div>\n\n        <div class=\"spirale-cta-row\">\n          <a href=\"\/spirale\" class=\"spirale-primary-cta\">\n            Lancer la Spirale\n            <svg width=\"16\" height=\"12\" viewBox=\"0 0 16 12\" fill=\"none\">\n              <path d=\"M1 6h13m0 0L10 1m4 5l-4 5\" stroke=\"#05070d\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n            <\/svg>\n          <\/a>\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/section>\n\n\n<!-- ============================================================\n     SECTION 4\/4 \u2014 COMMUNAUT\u00c9 + NEWSLETTER (one community, one system)\n============================================================ -->\n<section class=\"nitif-v9-section\" id=\"communaute\">\n  <div class=\"container\">\n\n    <div class=\"eyebrow\">Communaut\u00e9<\/div>\n    <h2 class=\"h2\">\n      Une communaut\u00e9. <span class=\"accent\">Un seul syst\u00e8me.<\/span>\n    <\/h2>\n    <p class=\"lede\">\n      La m\u00e9thode se construit en public \u2014 sur LinkedIn, Instagram, La Quinzaine NITIF,\n      puis demain en podcasts et vid\u00e9os. Plusieurs canaux, un m\u00eame fil.\n    <\/p>\n\n    <div class=\"community-grid\">\n\n      <!-- LinkedIn -->\n      <a href=\"https:\/\/www.linkedin.com\/company\/nitif\" target=\"_blank\" rel=\"noopener\" class=\"community-card\">\n        <span class=\"community-status active\">En ligne<\/span>\n        <div class=\"community-platform\">LinkedIn<\/div>\n        <h3 class=\"community-name\">La m\u00e9thode en construction publique<\/h3>\n        <p class=\"community-desc\">\n          Articles, retours d'exp\u00e9rience, coulisses du syst\u00e8me, d\u00e9fis lanc\u00e9s. Le canal\n          principal pour comprendre comment NITIF est con\u00e7u.\n        <\/p>\n        <div class=\"community-rhythm\">3 publications \u00b7 semaine<\/div>\n        <span class=\"community-cta-text\">\n          Suivre la page\n          <svg width=\"14\" height=\"10\" viewBox=\"0 0 14 10\" fill=\"none\">\n            <path d=\"M1 5h12m0 0L9 1m4 4L9 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n          <\/svg>\n        <\/span>\n      <\/a>\n\n      <!-- Instagram -->\n      <a href=\"https:\/\/www.instagram.com\/nitif.official\" target=\"_blank\" rel=\"noopener\" class=\"community-card\">\n        <span class=\"community-status active\">En ligne<\/span>\n        <div class=\"community-platform\">Instagram<\/div>\n        <h3 class=\"community-name\">Le quotidien visuel<\/h3>\n        <p class=\"community-desc\">\n          Reels, recettes saisonni\u00e8res, routines courtes, carrousels p\u00e9dagogiques.\n          La m\u00e9thode au format visuel et appliqu\u00e9.\n        <\/p>\n        <div class=\"community-rhythm\">2-3 publications \u00b7 semaine<\/div>\n        <span class=\"community-cta-text\">\n          Rejoindre\n          <svg width=\"14\" height=\"10\" viewBox=\"0 0 14 10\" fill=\"none\">\n            <path d=\"M1 5h12m0 0L9 1m4 4L9 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n          <\/svg>\n        <\/span>\n      <\/a>\n\n      <!-- Newsletter -->\n      <a href=\"#ressources\" class=\"community-card\">\n        <span class=\"community-status active\">En ligne<\/span>\n        <div class=\"community-platform\">La Quinzaine NITIF<\/div>\n        <h3 class=\"community-name\">Ce que tu n'as pas le temps de chercher<\/h3>\n        <p class=\"community-desc\">\n          \u00c9dito, science, protocole, recette. Format magazine, distill\u00e9 tous les 15 jours.\n          Sans spam, sans tracker tiers, d\u00e9sabonnement en un clic.\n        <\/p>\n        <div class=\"community-rhythm\">Bi-mensuelle<\/div>\n        <span class=\"community-cta-text\">\n          S'inscrire\n          <svg width=\"14\" height=\"10\" viewBox=\"0 0 14 10\" fill=\"none\">\n            <path d=\"M1 5h12m0 0L9 1m4 4L9 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n          <\/svg>\n        <\/span>\n      <\/a>\n\n      <!-- Podcasts \/ Vid\u00e9os -->\n      <div class=\"community-card\">\n        <span class=\"community-status upcoming\">Bient\u00f4t<\/span>\n        <div class=\"community-platform\">Podcasts \u00b7 YouTube<\/div>\n        <h3 class=\"community-name\">Les formats longs NITIF<\/h3>\n        <p class=\"community-desc\">\n          \u00c9pisodes courts, vid\u00e9os p\u00e9dagogiques, conversations avec experts et retours de d\u00e9fis.\n          Le canal pour approfondir la m\u00e9thode sans rester dans le scroll infini.\n        <\/p>\n        <div class=\"community-rhythm\">En pr\u00e9paration<\/div>\n        <span class=\"community-cta-text soft\">\n          Cha\u00eene \u00e0 venir\n          <svg width=\"14\" height=\"10\" viewBox=\"0 0 14 10\" fill=\"none\">\n            <path d=\"M1 5h12m0 0L9 1m4 4L9 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n          <\/svg>\n        <\/span>\n      <\/div>\n\n\n    <\/div>\n\n    <!-- hashtag band -->\n    <div class=\"community-hashtag-band\">\n      <div class=\"community-hashtag-text\">\n        <h4 class=\"community-hashtag\">#MonD\u00e9fiNitif<\/h4>\n        <p class=\"community-hashtag-desc\">\n          Partage ton parcours. Retrouve ceux qui suivent la m\u00eame phase. Le hashtag commun de la communaut\u00e9 NITIF.\n        <\/p>\n      <\/div>\n      <a href=\"https:\/\/www.linkedin.com\/feed\/hashtag\/?keywords=mondefinitif\" target=\"_blank\" rel=\"noopener\" class=\"spirale-primary-cta\">\n        Voir les posts\n        <svg width=\"16\" height=\"12\" viewBox=\"0 0 16 12\" fill=\"none\">\n          <path d=\"M1 6h13m0 0L10 1m4 5l-4 5\" stroke=\"#05070d\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n        <\/svg>\n      <\/a>\n    <\/div>\n\n  <\/div>\n<\/section>\n\n\n<script>\n(function(){\n  \/\/ ============================================================\n  \/\/ RESOURCES \u2014 JSON-driven catalog (easy to extend)\n  \/\/ To add a resource: append a new object below. No HTML edit needed.\n  \/\/ ============================================================\n  const resources = [\n    \/\/ Guides PDF\n    { cat:\"guide\", title:\"Guide Fit\", desc:\"Mouvement, force et micro-s\u00e9ances au bureau\", type:\"PDF\", url:\"\/ressources\/guide-fit.pdf\", gated:true },\n    { cat:\"guide\", title:\"Guide Fed\", desc:\"Nutrition saisonni\u00e8re, courses et assiette type\", type:\"PDF\", url:\"\/ressources\/guide-fed.pdf\", gated:true },\n    { cat:\"guide\", title:\"Guide Focus\", desc:\"Sommeil, lumi\u00e8re, respiration et r\u00e9cup\u00e9ration\", type:\"PDF\", url:\"\/ressources\/guide-focus.pdf\", gated:true },\n    { cat:\"guide\", title:\"Focus Reset \u00b7 7 jours\", desc:\"Protocole complet jour par jour\", type:\"PDF\", url:\"\/ressources\/focus-reset-7j.pdf\", gated:true },\n    { cat:\"guide\", title:\"Office Reboot \u00b7 14 jours\", desc:\"7 r\u00e8gles pour r\u00e9installer des habitudes de bureau\", type:\"PDF\", url:\"\/ressources\/office-reboot-14j.pdf\", gated:true },\n    { cat:\"guide\", title:\"Movement Snacks au bureau\", desc:\"Micro-routines \u00e0 int\u00e9grer dans la journ\u00e9e\", type:\"PDF\", url:\"\/ressources\/movement-snacks.pdf\", gated:true },\n    { cat:\"guide\", title:\"Plan 3 s\u00e9ances\/semaine\", desc:\"Adapt\u00e9 ing\u00e9nieurs s\u00e9dentaires 30-60\", type:\"PDF\", url:\"\/ressources\/plan-3-seances.pdf\", gated:true },\n    { cat:\"guide\", title:\"Recettes tisanes saisonni\u00e8res\", desc:\"4 recettes par phase, ingr\u00e9dients accessibles\", type:\"PDF\", url:\"\/ressources\/tisanes-saison.pdf\", gated:true },\n    { cat:\"guide\", title:\"Liste de courses type\", desc:\"Une semaine, par saison\", type:\"PDF\", url:\"\/ressources\/courses-type.pdf\", gated:true },\n\n    \/\/ Articles\n    { cat:\"article\", title:\"Pourquoi la rotation bat la r\u00e9p\u00e9tition\", desc:\"Flexibilit\u00e9 m\u00e9tabolique et cycles annuels\", type:\"LIRE\", url:\"\/articles\/rotation-vs-repetition\", gated:true },\n    { cat:\"article\", title:\"5 minutes de respiration \u00b7 la science\", desc:\"\u00c9tude Stanford 2023 expliqu\u00e9e\", type:\"LIRE\", url:\"\/articles\/respiration-5min\", gated:true },\n    { cat:\"article\", title:\"L'id\u00e9e fausse des 10 000 pas\", desc:\"Origine marketing, validation tardive par la science\", type:\"LIRE\", url:\"\/articles\/10000-pas\", gated:true },\n\n    \/\/ Outils interactifs\n    { cat:\"tool\", title:\"La Spirale NITIF\", desc:\"Tracker visuel de ton ann\u00e9e \u00b7 web app\", type:\"APP\", url:\"\/spirale\", gated:true },\n    { cat:\"tool\", title:\"Pr\u00e9paration profil\", desc:\"Questionnaire + macros + plan de courses\", type:\"APP\", url:\"\/preparation\", gated:true },\n    { cat:\"tool\", title:\"Lanceur de d\u00e9fi 7j\", desc:\"Parcours interactif Focus Reset\", type:\"APP\", url:\"\/defi\", gated:true }\n  ];\n\n  function renderResources(filter){\n    const grid = document.getElementById(\"resourcesGrid\");\n    if(!grid) return;\n    const list = filter === \"all\" ? resources : resources.filter(r => r.cat === filter);\n    grid.innerHTML = list.map(r => `\n      <a href=\"#lead-magnet\" class=\"resource-item\" rel=\"noopener\" data-gated=\"1\" data-title=\"${escapeAttr(r.title)}\" data-url=\"${escapeAttr(r.url)}\" data-type=\"${escapeAttr(r.type)}\" data-cat=\"${escapeAttr(r.cat)}\" data-desc=\"${escapeAttr(r.desc)}\">\n        <span class=\"resource-locked\">Email requis<\/span>\n        <div class=\"resource-icon\">${r.type}<\/div>\n        <div class=\"resource-meta\">\n          <div class=\"resource-cat\">${labelForCat(r.cat)}<\/div>\n          <h4 class=\"resource-title\">${r.title}<\/h4>\n          <p class=\"resource-desc\">${r.desc}<\/p>\n        <\/div>\n        <svg class=\"resource-arrow\" width=\"14\" height=\"10\" viewBox=\"0 0 14 10\" fill=\"none\">\n          <path d=\"M1 5h12m0 0L9 1m4 4L9 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n        <\/svg>\n      <\/a>\n    `).join('');\n\n    \/\/ All resources are email-gated in V10.2: link is sent by email after submission.\n    grid.querySelectorAll('.resource-item').forEach(el => {\n      el.addEventListener(\"click\", (e) => {\n        e.preventDefault();\n        const resource = {\n          title: el.dataset.title || \"Ressource NITIF\",\n          url: el.dataset.url || \"\",\n          type: el.dataset.type || \"Ressource\",\n          cat: el.dataset.cat || \"resource\",\n          desc: el.dataset.desc || \"\"\n        };\n        if(window.nitifOpenLeadCapture){\n          window.nitifOpenLeadCapture(resource);\n          return;\n        }\n        const newsletter = document.querySelector(\".newsletter-spotlight\");\n        if(newsletter){\n          newsletter.scrollIntoView({behavior:\"smooth\", block:\"start\"});\n          const input = document.getElementById(\"newsletterEmail\");\n          if(input) setTimeout(() => input.focus(), 600);\n        }\n      });\n    });\n  }\n\n  function escapeAttr(value){\n    return String(value || \"\")\n      .replace(\/&\/g, \"&amp;\")\n      .replace(\/\"\/g, \"&quot;\")\n      .replace(\/<\/g, \"&lt;\")\n      .replace(\/>\/g, \"&gt;\");\n  }\n\n  function labelForCat(cat){\n    return { guide:\"Guide PDF\", article:\"Article\", tool:\"Outil interactif\" }[cat] || \"Ressource\";\n  }\n\n  \/\/ tabs\n  const tabs = document.querySelectorAll(\".resource-tab\");\n  tabs.forEach(tab => {\n    tab.addEventListener(\"click\", () => {\n      tabs.forEach(t => t.classList.remove(\"active\"));\n      tab.classList.add(\"active\");\n      renderResources(tab.dataset.cat);\n    });\n  });\n\n  \/\/ initial render\n  renderResources(\"all\");\n\n  \/\/ Newsletter submit is handled centrally by the V10 interaction patch below.\n\n})();\n<\/script>\n\n\n<script>\n\/* =========================================================\n   NITIF V10.4 \u2014 INTERACTION PATCH\n   - one controlled page scroll container: .nitif-page\n   - header remains sticky while scrolling\n   - all resource \/ challenge \/ tool clicks route to email capture\n   - request topic + public challenge consent included in payload\n   - local email memory avoids retyping on the same device\n========================================================= *\/\n(function(){\n  const page = document.querySelector(\".nitif-page\");\n  const flowOverlay = document.getElementById(\"flowOverlay\");\n  const defiOverlay = document.getElementById(\"defiOverlay\");\n  const leadMagnet = document.getElementById(\"lead-magnet\") || document.querySelector(\".nitif-lead-magnet\") || document.querySelector(\".newsletter-spotlight\");\n  const newsletterForm = document.getElementById(\"newsletterForm\");\n  const newsletterEmail = document.getElementById(\"newsletterEmail\");\n  const requestTopic = document.getElementById(\"nitifRequestTopic\");\n  const publicName = document.getElementById(\"nitifPublicName\");\n  const publicConsent = document.getElementById(\"nitifPublicConsent\");\n  const newsletterOptin = document.getElementById(\"nitifNewsletterOptin\");\n  const rememberEmail = document.getElementById(\"nitifRememberEmail\");\n  const newsletterMessage = document.getElementById(\"newsletterMessage\");\n  const selectedResourceNotice = document.getElementById(\"selectedResourceNotice\");\n\n  let pendingResource = null;\n\n  function cleanText(value){\n    return String(value || \"\").replace(\/\\s+\/g, \" \").trim();\n  }\n\n  function normalizeResource(resource){\n    if(!resource) return null;\n    return {\n      title: cleanText(resource.title || resource.label || \"Ressource NITIF\"),\n      url: cleanText(resource.url || resource.href || \"\"),\n      type: cleanText(resource.type || \"Ressource\"),\n      cat: cleanText(resource.cat || \"resource\"),\n      desc: cleanText(resource.desc || \"\")\n    };\n  }\n\n  function inferTopic(resource){\n    if(!resource) return \"challenge_focus_reset\";\n    const title = (resource.title || \"\").toLowerCase();\n    const cat = (resource.cat || \"\").toLowerCase();\n\n    if(title.includes(\"focus reset\")) return \"challenge_focus_reset\";\n    if(title.includes(\"office reboot\")) return \"challenge_office_reboot\";\n    if(title.includes(\"office athlete\") || title.includes(\"company league\") || title.includes(\"brief\") || title.includes(\"entreprise\") || cat.includes(\"b2b\")) return \"b2b_collaboration\";\n    if(title.includes(\"spirale\")) return \"tool_spirale\";\n    if(title.includes(\"pr\u00e9paration\") || title.includes(\"preparation\") || title.includes(\"profil\")) return \"tool_preparation\";\n    if(title.includes(\"lanceur\") || title.includes(\"d\u00e9fi 7j\") || title.includes(\"defi 7j\")) return \"tool_defi_launcher\";\n    return \"resource_specific\";\n  }\n\n  function closeVisibleModals(){\n    \/\/ Each modal that closes calls unlock once, paired with its open-time lock.\n    if(flowOverlay && flowOverlay.classList.contains(\"is-visible\")){\n      flowOverlay.classList.remove(\"is-visible\");\n      window.nitifUnlockPageScroll();\n    }\n    if(defiOverlay && defiOverlay.classList.contains(\"is-visible\")){\n      defiOverlay.classList.remove(\"is-visible\");\n      window.nitifUnlockPageScroll();\n    }\n  }\n\n\n  function scrollToElement(el){\n    if(!el) return;\n    el.scrollIntoView({ behavior:\"smooth\", block:\"start\" });\n  }\n\n  function focusNewsletterInput(){\n    if(newsletterEmail){\n      setTimeout(function(){ newsletterEmail.focus(); }, 650);\n    }\n  }\n\n  function loadSavedEmail(){\n    try{\n      const saved = window.localStorage.getItem(\"nitifEmail\");\n      if(saved && newsletterEmail && !newsletterEmail.value){\n        newsletterEmail.value = saved;\n      }\n    }catch(err){}\n  }\n\n  function saveEmail(email){\n    try{\n      if(rememberEmail && rememberEmail.checked){\n        window.localStorage.setItem(\"nitifEmail\", email);\n      }\n    }catch(err){}\n  }\n\n  function updateSelectedResourceNotice(){\n    if(!selectedResourceNotice) return;\n\n    if(!pendingResource){\n      selectedResourceNotice.classList.remove(\"is-visible\");\n      selectedResourceNotice.innerHTML = \"\";\n      return;\n    }\n\n    const title = pendingResource.title || \"la ressource demand\u00e9e\";\n    const type = pendingResource.type || \"Lien\";\n    selectedResourceNotice.classList.add(\"is-visible\");\n    selectedResourceNotice.innerHTML = `<strong>${type} demand\u00e9 :<\/strong> ${title}<br>Le lien sera envoy\u00e9 par email. Si ton email est d\u00e9j\u00e0 m\u00e9moris\u00e9 sur cet appareil, il est pr\u00e9-rempli.`;\n  }\n\n  function openLeadCapture(resource){\n    pendingResource = normalizeResource(resource);\n    loadSavedEmail();\n\n    if(requestTopic){\n      requestTopic.value = inferTopic(pendingResource);\n    }\n\n    updateSelectedResourceNotice();\n    closeVisibleModals();\n\n    setTimeout(function(){\n      scrollToElement(leadMagnet);\n      focusNewsletterInput();\n    }, 80);\n  }\n\n  window.nitifOpenLeadCapture = openLeadCapture;\n\n  function showNewsletterMessage(type, text){\n    if(!newsletterMessage) return;\n    newsletterMessage.className = \"nitif-form-message\";\n    newsletterMessage.classList.add(type === \"success\" ? \"is-success\" : \"is-error\");\n    newsletterMessage.textContent = text;\n  }\n\n  function isValidEmail(email){\n    return \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(email);\n  }\n\n  function currentRequestLabel(){\n    if(!requestTopic) return \"Demande NITIF\";\n    const selected = requestTopic.options[requestTopic.selectedIndex];\n    return selected ? cleanText(selected.textContent) : requestTopic.value;\n  }\n\n  function selectedResourceFromTopic(){\n    if(!requestTopic) return null;\n    if(requestTopic.value === \"resource_specific\") return pendingResource;\n    const map = {\n      challenge_focus_reset:{ title:\"D\u00e9fi public \u00b7 Focus Reset\", url:\"\/ressources\/focus-reset-7j.pdf\", type:\"D\u00e9fi\", cat:\"challenge\" },\n      challenge_office_reboot:{ title:\"D\u00e9fi public \u00b7 Office Reboot\", url:\"\/ressources\/office-reboot-14j.pdf\", type:\"D\u00e9fi\", cat:\"challenge\" },\n      b2b_collaboration:{ title:\"Demande info \u00b7 Collaboration entreprise\", url:\"\/contact\", type:\"B2B\", cat:\"b2b\" },\n      tool_spirale:{ title:\"Outil \u00b7 La Spirale NITIF\", url:\"\/spirale\", type:\"APP\", cat:\"tool\" },\n      tool_preparation:{ title:\"Outil \u00b7 Pr\u00e9paration profil\", url:\"\/preparation\", type:\"APP\", cat:\"tool\" },\n      tool_defi_launcher:{ title:\"Outil \u00b7 Lanceur de d\u00e9fi 7j\", url:\"\/defi\", type:\"APP\", cat:\"tool\" },\n      other:{ title:\"Autre demande NITIF\", url:\"\/contact\", type:\"Contact\", cat:\"other\" }\n    };\n    return map[requestTopic.value] || pendingResource;\n  }\n\n  async function submitEmail(email){\n    const resource = pendingResource || selectedResourceFromTopic();\n    const payload = {\n      email: email,\n      requestTopic: requestTopic ? requestTopic.value : \"challenge_focus_reset\",\n      requestLabel: currentRequestLabel(),\n      requestedResource: resource,\n      publicChallengeConsent: Boolean(publicConsent && publicConsent.checked),\n      publicDisplayName: publicName ? cleanText(publicName.value) : \"\",\n      rememberEmail: Boolean(rememberEmail && rememberEmail.checked),\n      newsletterOptin: Boolean(newsletterOptin && newsletterOptin.checked),\n      discountIntent: Boolean(publicConsent && publicConsent.checked),\n      source: \"NITIF landing page V10.4\",\n      context: resource ? \"resource \/ challenge gate\" : \"direct request\",\n      page: window.location.href,\n      submittedAt: new Date().toISOString()\n    };\n\n    window.dispatchEvent(new CustomEvent(\"nitif:newsletter:subscribe\", { detail: payload }));\n\n    \/*\n      REQUIRED FOR REAL PRODUCTION CAPTURE + EMAIL DELIVERY:\n      Define window.NITIF_EMAIL_ENDPOINT before this script.\n      The endpoint must:\n      1) save the email in Brevo \/ CRM \/ WordPress,\n      2) receive payload.requestedResource and payload.requestTopic,\n      3) send the requested PDF\/app\/article\/challenge link by email,\n      4) store publicChallengeConsent + publicDisplayName if the user opts in.\n\n      Example:\n      <script>window.NITIF_EMAIL_ENDPOINT = \"https:\/\/your-domain.com\/wp-json\/nitif\/v1\/subscribe\";<\\\/script>\n    *\/\n    if(!window.NITIF_EMAIL_ENDPOINT){\n      throw new Error(\"NITIF email endpoint is not configured.\");\n    }\n\n    const response = await fetch(window.NITIF_EMAIL_ENDPOINT, {\n      method:\"POST\",\n      headers:{ \"Content-Type\":\"application\/json\" },\n      body:JSON.stringify(payload)\n    });\n\n    if(!response.ok){\n      throw new Error(\"Email endpoint rejected the request.\");\n    }\n\n    saveEmail(email);\n    return payload;\n  }\n\n\n  document.addEventListener(\"click\", function(e){\n    const trigger = e.target.closest('#modalEmailCta, a[href=\"#lead-magnet\"], [data-nitif-lead=\"true\"]');\n    if(!trigger) return;\n\n    e.preventDefault();\n\n    const modal = trigger.closest(\".defi-modal, .flowchart-modal\");\n    const modalTitle = modal ? cleanText((modal.querySelector(\".modal-title\") || {}).textContent) : \"\";\n    const modalTag = modal ? cleanText((modal.querySelector(\".modal-tag, .modal-locked\") || {}).textContent) : \"\";\n\n    const resource = {\n      title: trigger.dataset.title || modalTitle || cleanText(trigger.textContent) || \"Demande NITIF\",\n      url: trigger.dataset.url || trigger.getAttribute(\"href\") || \"#lead-magnet\",\n      type: trigger.dataset.type || modalTag || \"Demande\",\n      cat: trigger.dataset.cat || (modalTag.toLowerCase().includes(\"b2b\") ? \"b2b\" : \"challenge\")\n    };\n\n    openLeadCapture(resource);\n  }, true);\n\n  if(requestTopic){\n    requestTopic.addEventListener(\"change\", function(){\n      if(requestTopic.value !== \"resource_specific\"){\n        pendingResource = selectedResourceFromTopic();\n      }\n      updateSelectedResourceNotice();\n    });\n  }\n\n  if(newsletterForm){\n    newsletterForm.addEventListener(\"submit\", async function(e){\n      e.preventDefault();\n      e.stopImmediatePropagation();\n\n      const email = newsletterEmail ? newsletterEmail.value.trim() : \"\";\n\n      if(!isValidEmail(email)){\n        showNewsletterMessage(\"error\", \"Entre une adresse email valide pour recevoir le lien NITIF.\");\n        if(newsletterEmail) newsletterEmail.focus();\n        return false;\n      }\n\n      try{\n        newsletterForm.classList.add(\"is-loading\");\n        const result = await submitEmail(email);\n        newsletterForm.classList.remove(\"is-loading\");\n        newsletterForm.classList.add(\"is-submitted\");\n        const label = result.requestedResource ? result.requestedResource.title : result.requestLabel;\n        showNewsletterMessage(\"success\", `C\u2019est valid\u00e9. Le lien ou l\u2019information demand\u00e9(e) \u2014 ${label} \u2014 arrive par email dans quelques instants.`);\n      }catch(err){\n        newsletterForm.classList.remove(\"is-loading\");\n        showNewsletterMessage(\"error\", \"Le syst\u00e8me d\u2019envoi email n\u2019est pas encore connect\u00e9. Configure window.NITIF_EMAIL_ENDPOINT pour envoyer automatiquement le lien demand\u00e9.\");\n      }\n\n      return false;\n    }, true);\n  }\n\n  loadSavedEmail();\n})();\n<\/script>\n\n\n\n<script>\n(function(){\n  const overlay = document.getElementById(\"challengeIntroOverlay\");\n  const closeBtn = document.getElementById(\"challengeIntroClose\");\n  const leadBtn = document.getElementById(\"challengeIntroLead\");\n  const defisBtn = document.getElementById(\"challengeIntroDefis\");\n  const triggers = document.querySelectorAll('[data-nitif-challenge-intro=\"true\"]');\n\n  function openIntro(){\n    if(!overlay) return;\n    window.nitifLockPageScroll();\n    overlay.classList.add(\"is-visible\");\n    overlay.setAttribute(\"aria-hidden\", \"false\");\n    document.documentElement.classList.add(\"nitif-challenge-intro-open\");\n    document.body.classList.add(\"nitif-challenge-intro-open\");\n  }\n\n  function closeIntro(){\n    if(!overlay) return;\n    overlay.classList.remove(\"is-visible\");\n    overlay.setAttribute(\"aria-hidden\", \"true\");\n    document.documentElement.classList.remove(\"nitif-challenge-intro-open\");\n    document.body.classList.remove(\"nitif-challenge-intro-open\");\n    window.nitifUnlockPageScroll();\n  }\n\n  triggers.forEach(function(trigger){\n    trigger.addEventListener(\"click\", function(e){\n      e.preventDefault();\n      openIntro();\n    });\n  });\n\n  if(closeBtn) closeBtn.addEventListener(\"click\", closeIntro);\n  if(overlay){\n    overlay.addEventListener(\"click\", function(e){\n      if(e.target === overlay) closeIntro();\n    });\n  }\n\n  if(defisBtn){\n    defisBtn.addEventListener(\"click\", function(){\n      closeIntro();\n    });\n  }\n\n  if(leadBtn){\n    leadBtn.addEventListener(\"click\", function(e){\n      e.preventDefault();\n      closeIntro();\n      const resource = {\n        title:\"D\u00e9fi public NITIF \u00b7 Focus Reset \/ Office Reboot\",\n        url:\"\/ressources\/defi-public-nitif.pdf\",\n        type:\"D\u00e9fi\",\n        cat:\"challenge\"\n      };\n      if(window.nitifOpenLeadCapture){\n        window.nitifOpenLeadCapture(resource);\n      }else{\n        const lead = document.getElementById(\"lead-magnet\");\n        if(lead) lead.scrollIntoView({behavior:\"smooth\", block:\"start\"});\n      }\n    });\n  }\n\n  document.addEventListener(\"keydown\", function(e){\n    if(e.key === \"Escape\" && overlay && overlay.classList.contains(\"is-visible\")) closeIntro();\n  });\n\n  document.addEventListener(\"click\", function(e){\n    const trigger = e.target.closest(\".nitif-resource-trigger\");\n    if(!trigger) return;\n    e.preventDefault();\n    const resource = {\n      title: trigger.dataset.title || trigger.textContent.trim() || \"Ressource NITIF\",\n      url: trigger.dataset.url || \"\",\n      type: trigger.dataset.type || \"PDF\",\n      cat: trigger.dataset.cat || \"guide\"\n    };\n    if(window.nitifOpenLeadCapture){\n      window.nitifOpenLeadCapture(resource);\n    }\n  }, true);\n})();\n<\/script>\n\n  <!-- CTA -->\n  <section class=\"nitif-section\" id=\"cta\">\n    <div class=\"nitif-container\">\n      <div class=\"nitif-card nitif-cta-box\">\n        <div class=\"nitif-eyebrow\" style=\"justify-content:center;\">Commencer<\/div>\n        <h2 class=\"nitif-title\" style=\"font-size:clamp(30px,4.4vw,46px);\">\n          Pr\u00eat \u00e0 reprendre ton <span class=\"accent\">rythme<\/span> ?\n        <\/h2>\n        <p class=\"nitif-subtitle\">\n          Un d\u00e9fi gratuit, des ressources, une communaut\u00e9 qui suit la m\u00eame m\u00e9thode. Trois portes d'entr\u00e9e pour tester NITIF.\n        <\/p>\n\n        <div class=\"nitif-btns\" style=\"justify-content:center;\">\n          <a href=\"#defi-start\" class=\"nitif-btn nitif-btn-primary\" data-nitif-challenge-intro=\"true\">Lancer un d\u00e9fi gratuit \u2192<\/a>\n          <a href=\"#ressources\" class=\"nitif-btn nitif-btn-secondary\">Voir les ressources<\/a>\n        <\/div>\n\n        <div class=\"nitif-cta-mini\">\n          <div class=\"nitif-cta-pill\">Mon d\u00e9fi, ma sant\u00e9.<\/div>\n          <div class=\"nitif-cta-pill\">Mange selon ta saison.<\/div>\n          <div class=\"nitif-cta-pill\">#MonD\u00e9fiNitif<\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n  <!-- FOOTER -->\n  <!-- FOOTER -->\n  <footer class=\"nitif-footer\">\n    <div class=\"nitif-container\">\n      <div class=\"nitif-footer-grid\">\n        <div>\n          <div class=\"nitif-wordmark\">NITIF<span>.<\/span><\/div>\n          <p>\n            Mange selon ta saison.<br>\n            Mon d\u00e9fi, ma sant\u00e9.<br><br>\n            Fit \u00b7 Fed \u00b7 Focus pour les professionnels qui veulent reprendre leur rythme.\n          <\/p>\n        <\/div>\n\n        <div>\n          <h5>Navigation<\/h5>\n          <ul>\n            <li><a href=\"#system\">Fit \u00b7 Fed \u00b7 Focus<\/a><\/li>\n            <li><a href=\"#methode\">La m\u00e9thode<\/a><\/li>\n            <li><a href=\"#spirale\">La Spirale<\/a><\/li>\n            <li><a href=\"#defis\">D\u00e9fis<\/a><\/li>\n            <li><a href=\"#ressources\">Ressources<\/a><\/li>\n            <li><a href=\"#boxes\">Boxes<\/a><\/li>\n            <li><a href=\"#communaute\">Communaut\u00e9<\/a><\/li>\n          <\/ul>\n        <\/div>\n\n        <div>\n          <h5>Contact<\/h5>\n          <ul>\n            <li><a href=\"https:\/\/www.linkedin.com\/company\/nitif\" target=\"_blank\" rel=\"noopener\">LinkedIn NITIF<\/a><\/li>\n            <li><a href=\"\/contact\">Contact<\/a><\/li>\n            <li><a href=\"\/mentions-legales\">Mentions l\u00e9gales<\/a><\/li>\n          <\/ul>\n        <\/div>\n      <\/div>\n\n      <div class=\"nitif-footer-bottom\">\n        <div>\u00a9 2026 NITIF \u2014 Metz, France<\/div>\n        <div>NITIF est un outil \u00e9ducatif et d'accompagnement. Il ne remplace pas un avis m\u00e9dical.<\/div>\n      <\/div>\n    <\/div>\n  <\/footer>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>NITIF Fit \u00b7 Fed \u00b7 Focus La m\u00e9thode La Spirale D\u00e9fis Ressources Boxes Communaut\u00e9 NITIF \u00b7 Feed Your Focus Fit \u00b7 Fed \u00b7 Focus pour reprendre ton rythme. Mange selon ta saison. Une m\u00e9thode cyclique pour les professionnels qui veulent retrouver \u00e9nergie, clart\u00e9 et constance \u2014 sans r\u00e9gime miracle. Commencer le d\u00e9fi gratuit \u2192 D\u00e9couvrir&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"default","_kad_post_title":"","_kad_post_layout":"fullwidth","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":true,"_kad_post_footer":true,"_kad_post_classname":"","footnotes":""},"class_list":["post-28","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Accueil - NITIF<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nitif.com\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Accueil - NITIF\" \/>\n<meta property=\"og:description\" content=\"NITIF Fit \u00b7 Fed \u00b7 Focus La m\u00e9thode La Spirale D\u00e9fis Ressources Boxes Communaut\u00e9 NITIF \u00b7 Feed Your Focus Fit \u00b7 Fed \u00b7 Focus pour reprendre ton rythme. Mange selon ta saison. Une m\u00e9thode cyclique pour les professionnels qui veulent retrouver \u00e9nergie, clart\u00e9 et constance \u2014 sans r\u00e9gime miracle. Commencer le d\u00e9fi gratuit \u2192 D\u00e9couvrir...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nitif.com\/\" \/>\n<meta property=\"og:site_name\" content=\"NITIF\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-05T15:26:27+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/nitif.com\\\/\",\"url\":\"https:\\\/\\\/nitif.com\\\/\",\"name\":\"Accueil - NITIF\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nitif.com\\\/#website\"},\"datePublished\":\"2026-04-20T15:25:16+00:00\",\"dateModified\":\"2026-05-05T15:26:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/nitif.com\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/nitif.com\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/nitif.com\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/nitif.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Accueil\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/nitif.com\\\/#website\",\"url\":\"https:\\\/\\\/nitif.com\\\/\",\"name\":\"NITIF\",\"description\":\"Mon D\u00e9fi, Ma Sant\u00e9\",\"publisher\":{\"@id\":\"https:\\\/\\\/nitif.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/nitif.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/nitif.com\\\/#organization\",\"name\":\"NITIF\",\"url\":\"https:\\\/\\\/nitif.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/nitif.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/nitif.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/cropped-nitif-avatar-512-white.png\",\"contentUrl\":\"https:\\\/\\\/nitif.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/cropped-nitif-avatar-512-white.png\",\"width\":512,\"height\":277,\"caption\":\"NITIF\"},\"image\":{\"@id\":\"https:\\\/\\\/nitif.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Accueil - NITIF","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/nitif.com\/","og_locale":"en_US","og_type":"article","og_title":"Accueil - NITIF","og_description":"NITIF Fit \u00b7 Fed \u00b7 Focus La m\u00e9thode La Spirale D\u00e9fis Ressources Boxes Communaut\u00e9 NITIF \u00b7 Feed Your Focus Fit \u00b7 Fed \u00b7 Focus pour reprendre ton rythme. Mange selon ta saison. Une m\u00e9thode cyclique pour les professionnels qui veulent retrouver \u00e9nergie, clart\u00e9 et constance \u2014 sans r\u00e9gime miracle. Commencer le d\u00e9fi gratuit \u2192 D\u00e9couvrir...","og_url":"https:\/\/nitif.com\/","og_site_name":"NITIF","article_modified_time":"2026-05-05T15:26:27+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/nitif.com\/","url":"https:\/\/nitif.com\/","name":"Accueil - NITIF","isPartOf":{"@id":"https:\/\/nitif.com\/#website"},"datePublished":"2026-04-20T15:25:16+00:00","dateModified":"2026-05-05T15:26:27+00:00","breadcrumb":{"@id":"https:\/\/nitif.com\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nitif.com\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/nitif.com\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nitif.com\/"},{"@type":"ListItem","position":2,"name":"Accueil"}]},{"@type":"WebSite","@id":"https:\/\/nitif.com\/#website","url":"https:\/\/nitif.com\/","name":"NITIF","description":"Mon D\u00e9fi, Ma Sant\u00e9","publisher":{"@id":"https:\/\/nitif.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nitif.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/nitif.com\/#organization","name":"NITIF","url":"https:\/\/nitif.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/nitif.com\/#\/schema\/logo\/image\/","url":"https:\/\/nitif.com\/wp-content\/uploads\/2026\/04\/cropped-nitif-avatar-512-white.png","contentUrl":"https:\/\/nitif.com\/wp-content\/uploads\/2026\/04\/cropped-nitif-avatar-512-white.png","width":512,"height":277,"caption":"NITIF"},"image":{"@id":"https:\/\/nitif.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/nitif.com\/index.php?rest_route=\/wp\/v2\/pages\/28","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nitif.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/nitif.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/nitif.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nitif.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=28"}],"version-history":[{"count":5,"href":"https:\/\/nitif.com\/index.php?rest_route=\/wp\/v2\/pages\/28\/revisions"}],"predecessor-version":[{"id":119,"href":"https:\/\/nitif.com\/index.php?rest_route=\/wp\/v2\/pages\/28\/revisions\/119"}],"wp:attachment":[{"href":"https:\/\/nitif.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=28"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}