:root{
  --navy-900:#0A1E3D; --navy-700:#14315E; --navy-500:#234478;
  --gold-500:#C9A24B; --gold-600:#9C7A2E; --gold-300:#E8CE8E;
  --ink:#0B1220; --n100:#F5F6F8; --n300:#E4E7EC; --n500:#8A93A6;
  --surface:#111B30; --border-dark:#22304D;
  --display:'Space Grotesk',sans-serif; --text:'Inter',sans-serif; --mono:'JetBrains Mono',monospace;
  --ease:cubic-bezier(.16,1,.3,1);
  /* Cartes en alternance : sur une bande bleu marine (par défaut), cartes blanches (sur une bande blanche : .section-light, cartes bleu marine). */
  --card-bg:#fff; --card-border:var(--n300); --card-text:var(--navy-900); --card-text-soft:#5A6478; --card-text-mute:#8A93A6;
  --canopy-svg:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22900%22%20height%3D%22700%22%20viewBox%3D%220%200%20900%20700%22%3E%3Crect%20width%3D%22900%22%20height%3D%22700%22%20fill%3D%22none%22/%3E%3Ccircle%20cx%3D%22581.1%22%20cy%3D%22-1.5%22%20r%3D%2222.8%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22189.8%22%20cy%3D%22525.0%22%20r%3D%2235.7%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22818.6%22%20cy%3D%2244.3%22%20r%3D%2227.5%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%228.0%22%20cy%3D%22141.8%22%20r%3D%2230.2%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%224.9%22%20cy%3D%22127.1%22%20r%3D%2234.8%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22492.2%22%20cy%3D%22143.1%22%20r%3D%2232.9%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22740.9%22%20cy%3D%22-15.2%22%20r%3D%2239.8%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22636.3%22%20cy%3D%22231.8%22%20r%3D%2219.0%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22879.8%22%20cy%3D%22229.1%22%20r%3D%2217.0%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%2270.9%22%20cy%3D%22607.1%22%20r%3D%2233.3%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22738.7%22%20cy%3D%22520.0%22%20r%3D%2231.2%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22894.7%22%20cy%3D%22260.1%22%20r%3D%2231.7%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22759.6%22%20cy%3D%22437.7%22%20r%3D%2241.6%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22522.7%22%20cy%3D%22501.4%22%20r%3D%2215.5%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22194.2%22%20cy%3D%22194.1%22%20r%3D%2216.6%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22198.8%22%20cy%3D%2254.7%22%20r%3D%2222.9%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22577.5%22%20cy%3D%22250.0%22%20r%3D%2225.8%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22176.9%22%20cy%3D%22177.6%22%20r%3D%2244.0%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22589.2%22%20cy%3D%22430.8%22%20r%3D%2219.5%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22665.4%22%20cy%3D%22100.9%22%20r%3D%2226.1%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22910.2%22%20cy%3D%22453.6%22%20r%3D%2231.8%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22623.5%22%20cy%3D%22603.7%22%20r%3D%2238.8%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22195.3%22%20cy%3D%223.8%22%20r%3D%2224.1%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22231.7%22%20cy%3D%22136.1%22%20r%3D%2244.2%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22803.8%22%20cy%3D%22212.9%22%20r%3D%2235.0%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22351.9%22%20cy%3D%22656.8%22%20r%3D%2228.7%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22229.0%22%20cy%3D%22162.5%22%20r%3D%2232.0%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22227.0%22%20cy%3D%22412.6%22%20r%3D%2242.7%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22355.4%22%20cy%3D%22142.3%22%20r%3D%2245.9%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22459.0%22%20cy%3D%2247.3%22%20r%3D%2215.5%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%2283.1%22%20cy%3D%22444.3%22%20r%3D%2239.3%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22376.8%22%20cy%3D%2227.0%22%20r%3D%2226.2%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22916.4%22%20cy%3D%22371.5%22%20r%3D%2245.1%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22789.1%22%20cy%3D%22-11.5%22%20r%3D%2237.1%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22620.8%22%20cy%3D%22377.4%22%20r%3D%2222.5%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22582.5%22%20cy%3D%2262.5%22%20r%3D%2227.9%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22406.5%22%20cy%3D%22685.8%22%20r%3D%2242.0%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22227.6%22%20cy%3D%22350.4%22%20r%3D%2219.7%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22837.9%22%20cy%3D%22624.2%22%20r%3D%2223.6%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22580.6%22%20cy%3D%22430.6%22%20r%3D%2218.9%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22696.8%22%20cy%3D%22379.1%22%20r%3D%2238.9%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22478.5%22%20cy%3D%22-19.6%22%20r%3D%2224.4%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22-1.7%22%20cy%3D%22667.5%22%20r%3D%2242.1%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22761.8%22%20cy%3D%22207.6%22%20r%3D%2215.9%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22805.3%22%20cy%3D%22680.7%22%20r%3D%2216.7%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22436.8%22%20cy%3D%2231.2%22%20r%3D%2238.3%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22699.9%22%20cy%3D%2275.0%22%20r%3D%2229.2%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22496.8%22%20cy%3D%22176.1%22%20r%3D%2241.9%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22377.7%22%20cy%3D%22136.7%22%20r%3D%2231.3%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22666.1%22%20cy%3D%22128.9%22%20r%3D%2224.0%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22915.4%22%20cy%3D%22460.9%22%20r%3D%2228.0%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22466.5%22%20cy%3D%2269.5%22%20r%3D%2221.2%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22297.8%22%20cy%3D%22415.3%22%20r%3D%2221.4%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22187.0%22%20cy%3D%2232.5%22%20r%3D%2234.2%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22195.2%22%20cy%3D%22650.0%22%20r%3D%2241.5%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%2246.6%22%20cy%3D%22156.1%22%20r%3D%2235.4%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22181.4%22%20cy%3D%2277.9%22%20r%3D%2243.9%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22516.8%22%20cy%3D%22329.8%22%20r%3D%2239.1%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22739.0%22%20cy%3D%22120.9%22%20r%3D%2217.1%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22385.2%22%20cy%3D%22293.4%22%20r%3D%2228.9%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22665.3%22%20cy%3D%22478.3%22%20r%3D%2245.5%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%2272.5%22%20cy%3D%22277.9%22%20r%3D%2224.9%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22790.0%22%20cy%3D%22164.0%22%20r%3D%2220.1%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22401.7%22%20cy%3D%22292.2%22%20r%3D%2222.9%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22214.8%22%20cy%3D%22663.2%22%20r%3D%2228.2%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22789.7%22%20cy%3D%22387.2%22%20r%3D%2215.6%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22919.3%22%20cy%3D%22598.7%22%20r%3D%2245.0%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22850.8%22%20cy%3D%22608.0%22%20r%3D%2219.3%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22436.5%22%20cy%3D%22138.2%22%20r%3D%2226.8%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%2235.1%22%20cy%3D%22260.4%22%20r%3D%2245.5%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22229.3%22%20cy%3D%22560.2%22%20r%3D%2228.6%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22377.6%22%20cy%3D%22688.4%22%20r%3D%2245.9%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22502.4%22%20cy%3D%22511.6%22%20r%3D%2219.0%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22258.9%22%20cy%3D%22696.8%22%20r%3D%2232.5%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22489.7%22%20cy%3D%22533.5%22%20r%3D%2215.8%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22529.1%22%20cy%3D%22352.1%22%20r%3D%2241.3%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22128.0%22%20cy%3D%22691.0%22%20r%3D%2216.6%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22154.7%22%20cy%3D%22420.3%22%20r%3D%2235.6%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22201.1%22%20cy%3D%2268.7%22%20r%3D%2242.5%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22211.4%22%20cy%3D%22419.9%22%20r%3D%2233.8%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22374.1%22%20cy%3D%22411.9%22%20r%3D%2230.7%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22858.6%22%20cy%3D%22131.2%22%20r%3D%2236.9%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22204.4%22%20cy%3D%22272.9%22%20r%3D%2235.5%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22262.0%22%20cy%3D%22214.0%22%20r%3D%2238.1%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%2248.2%22%20cy%3D%22319.1%22%20r%3D%2246.0%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22916.3%22%20cy%3D%2234.2%22%20r%3D%2220.8%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22229.3%22%20cy%3D%22670.6%22%20r%3D%2242.2%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22806.5%22%20cy%3D%22253.5%22%20r%3D%2219.0%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22763.7%22%20cy%3D%22500.6%22%20r%3D%2233.6%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22908.0%22%20cy%3D%22463.9%22%20r%3D%2214.3%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22748.1%22%20cy%3D%22201.5%22%20r%3D%2235.2%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22862.6%22%20cy%3D%2279.4%22%20r%3D%2217.7%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%2280.6%22%20cy%3D%22389.4%22%20r%3D%2222.7%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22548.5%22%20cy%3D%22511.0%22%20r%3D%2220.5%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22576.2%22%20cy%3D%22175.3%22%20r%3D%2229.6%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22831.0%22%20cy%3D%22606.1%22%20r%3D%2217.0%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22378.2%22%20cy%3D%22184.7%22%20r%3D%2214.1%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22704.9%22%20cy%3D%22451.5%22%20r%3D%2222.4%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22676.8%22%20cy%3D%22388.2%22%20r%3D%2227.7%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22-10.9%22%20cy%3D%2235.7%22%20r%3D%2242.3%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22829.7%22%20cy%3D%22383.7%22%20r%3D%2240.7%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22527.6%22%20cy%3D%2289.6%22%20r%3D%2218.1%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22269.8%22%20cy%3D%22645.2%22%20r%3D%2239.5%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22789.1%22%20cy%3D%22645.2%22%20r%3D%2220.7%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22214.6%22%20cy%3D%2256.1%22%20r%3D%2239.0%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22811.1%22%20cy%3D%22280.7%22%20r%3D%2233.9%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22125.3%22%20cy%3D%22668.1%22%20r%3D%2241.7%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22897.6%22%20cy%3D%22580.0%22%20r%3D%2242.2%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%223.3%22%20cy%3D%22525.1%22%20r%3D%2224.6%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22855.0%22%20cy%3D%22573.7%22%20r%3D%2241.7%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22742.1%22%20cy%3D%22177.4%22%20r%3D%2239.2%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%2281.6%22%20cy%3D%22625.4%22%20r%3D%2241.5%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22189.1%22%20cy%3D%22584.3%22%20r%3D%2228.7%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22266.9%22%20cy%3D%22568.6%22%20r%3D%2221.3%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%222.2%22%20cy%3D%22122.9%22%20r%3D%2224.5%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22792.5%22%20cy%3D%22695.5%22%20r%3D%2222.9%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22583.0%22%20cy%3D%22275.8%22%20r%3D%2245.4%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22484.0%22%20cy%3D%22675.0%22%20r%3D%2217.7%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22892.2%22%20cy%3D%22112.1%22%20r%3D%2244.8%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22229.5%22%20cy%3D%2260.2%22%20r%3D%2227.9%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22664.8%22%20cy%3D%22212.1%22%20r%3D%2233.4%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22460.7%22%20cy%3D%22265.0%22%20r%3D%2232.5%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22219.4%22%20cy%3D%22504.5%22%20r%3D%2214.1%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22850.0%22%20cy%3D%22378.5%22%20r%3D%2237.0%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22677.4%22%20cy%3D%22476.3%22%20r%3D%2225.7%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%2245.8%22%20cy%3D%22471.5%22%20r%3D%2224.6%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22275.1%22%20cy%3D%22607.5%22%20r%3D%2237.0%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22262.3%22%20cy%3D%22208.9%22%20r%3D%2227.1%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22358.3%22%20cy%3D%22198.8%22%20r%3D%2218.1%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22375.2%22%20cy%3D%22675.9%22%20r%3D%2235.7%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22828.6%22%20cy%3D%22435.5%22%20r%3D%2223.6%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22495.1%22%20cy%3D%22-19.7%22%20r%3D%2223.2%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22384.1%22%20cy%3D%22409.2%22%20r%3D%2235.0%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22417.1%22%20cy%3D%22307.2%22%20r%3D%2220.8%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22424.8%22%20cy%3D%22646.9%22%20r%3D%2239.5%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22139.5%22%20cy%3D%2242.7%22%20r%3D%2230.5%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22575.0%22%20cy%3D%22228.0%22%20r%3D%2240.2%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22686.1%22%20cy%3D%22477.9%22%20r%3D%2221.2%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22167.2%22%20cy%3D%22-1.9%22%20r%3D%2221.8%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22426.6%22%20cy%3D%22608.8%22%20r%3D%2216.3%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22369.6%22%20cy%3D%22446.0%22%20r%3D%2220.2%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22634.6%22%20cy%3D%22345.8%22%20r%3D%2221.8%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22596.7%22%20cy%3D%22-15.9%22%20r%3D%2238.0%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22703.8%22%20cy%3D%2258.9%22%20r%3D%2227.6%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22145.3%22%20cy%3D%22688.9%22%20r%3D%2230.6%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%2227.2%22%20cy%3D%22164.4%22%20r%3D%2241.1%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22409.1%22%20cy%3D%22573.0%22%20r%3D%2235.4%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22908.6%22%20cy%3D%22420.6%22%20r%3D%2244.4%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22817.9%22%20cy%3D%22433.4%22%20r%3D%2237.0%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22454.5%22%20cy%3D%22594.6%22%20r%3D%2231.5%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22823.4%22%20cy%3D%22530.3%22%20r%3D%2229.2%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22223.6%22%20cy%3D%22163.0%22%20r%3D%2234.4%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22699.9%22%20cy%3D%22365.8%22%20r%3D%2234.1%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22238.1%22%20cy%3D%2237.3%22%20r%3D%2223.1%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22235.4%22%20cy%3D%22216.6%22%20r%3D%2231.3%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22110.1%22%20cy%3D%22151.1%22%20r%3D%2236.2%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22644.0%22%20cy%3D%2227.5%22%20r%3D%2227.0%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22490.1%22%20cy%3D%22287.7%22%20r%3D%2220.6%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22374.9%22%20cy%3D%22649.6%22%20r%3D%2232.7%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3Ccircle%20cx%3D%22633.8%22%20cy%3D%22614.0%22%20r%3D%2238.5%22%20fill%3D%22%230F3B2E%22%20fill-opacity%3D%220.55%22/%3E%3C/svg%3E");
}
.section-light{ --card-bg:var(--surface); --card-border:var(--border-dark); --card-text:#fff; --card-text-soft:rgba(255,255,255,0.68); --card-text-mute:rgba(255,255,255,0.5); }

/* Filigranes gabonais (masques / blasons / faune-flore) retirés à la demande du client — à réintroduire en V2 avec les vrais visuels. */
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; overflow-x:hidden;}
body{
  font-family:var(--text); background:var(--navy-900); color:#fff; line-height:1.6; -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--gold-300); color:var(--navy-900);}
a{color:inherit; text-decoration:none;}
.wrap{max-width:1240px; margin:0 auto; padding:0 32px; position:relative; z-index:1;}
.section-canopy{position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden;
  background-image:var(--canopy-svg); background-size:cover; background-position:center; opacity:0.16;
  mask-image:linear-gradient(180deg, transparent 0%, black 25%, black 75%, transparent 100%);
  -webkit-mask-image:linear-gradient(180deg, transparent 0%, black 25%, black 75%, transparent 100%);}
section{isolation:isolate;}
h1,h2,h3,h4{font-family:var(--display); letter-spacing:-0.02em;}
img{display:block; max-width:100%; height:auto;}
svg{display:block;}
button{font-family:var(--text); cursor:pointer;}

/* reveal-on-scroll */
.reveal{opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.reveal.in{opacity:1; transform:translateY(0);}

/* ============ NAV ============ */
nav{position:fixed; top:0; left:0; right:0; z-index:100; padding:22px 0; transition:all .35s var(--ease);}
nav.scrolled{background:rgba(10,30,61,0.85); backdrop-filter:blur(16px); padding:14px 0; border-bottom:1px solid rgba(255,255,255,0.06);}
nav .wrap{display:flex; align-items:center; justify-content:space-between;}
.brand{display:flex; align-items:center; gap:10px; flex-shrink:0; line-height:1;}
.brand img{height:38px; width:auto; display:block; object-fit:contain;}
@media(max-width:900px){.brand img{height:32px;}}
.brand .peak{width:24px; height:24px; flex-shrink:0;}
.brand-text{display:flex; flex-direction:column; letter-spacing:0.01em;}
.nav-right{display:flex; align-items:center; gap:52px;}
.nav-links{display:flex; gap:24px; list-style:none; flex-wrap:nowrap; white-space:nowrap;}
.nav-links a{position:relative; font-size:13px; color:rgba(255,255,255,0.72); font-weight:500; transition:color .2s; padding-bottom:5px; display:inline-block;}
.nav-links a::after{content:''; position:absolute; left:0; right:100%; bottom:0; height:2px; background:var(--gold-500); border-radius:2px; transition:right .28s var(--ease);}
.nav-links a:hover{color:#fff;}
.nav-links a:hover::after{right:0;}
.nav-actions{display:flex; align-items:center; gap:14px; flex-shrink:0;}
.nav-cta{background:var(--gold-500); color:var(--navy-900); font-weight:700; font-size:13px; padding:11px 20px; border-radius:100px; border:none; transition:all .2s; white-space:nowrap;}
.nav-cta:hover{background:var(--gold-300);}
.nav-survey{background:var(--gold-500); color:var(--navy-900); font-weight:700; font-size:13px; padding:11px 20px; border-radius:100px; border:none; transition:all .2s; white-space:nowrap;}
.nav-survey:hover{background:var(--gold-300); transform:translateY(-2px);}
@keyframes gentle-bounce{0%,100%{transform:translateY(0);} 50%{transform:translateY(-5px);}}
.bounce-cta{animation:gentle-bounce 2.4s ease-in-out infinite;}
.bounce-cta:hover{animation-play-state:paused; transform:translateY(-2px);}
@media(max-width:1300px){.nav-right{gap:30px;} .nav-links{gap:16px;} .nav-links a{font-size:12px;}}

.lang-switch{position:relative;}
.lang-btn{display:flex; align-items:center; gap:6px; background:transparent; border:1px solid rgba(255,255,255,0.25); color:rgba(255,255,255,0.85); font-weight:600; font-size:12.5px; padding:9px 14px; border-radius:100px; transition:all .2s; white-space:nowrap;}
.lang-btn:hover{border-color:var(--gold-300); color:var(--gold-300);}
.lang-menu{position:absolute; top:calc(100% + 10px); right:0; background:rgba(10,30,61,0.98); backdrop-filter:blur(16px); border:1px solid var(--border-dark); border-radius:14px; padding:8px; min-width:170px; display:flex; flex-direction:column; gap:2px; opacity:0; transform:translateY(-8px); pointer-events:none; transition:all .22s var(--ease); box-shadow:0 20px 40px -10px rgba(0,0,0,0.5);}
.lang-menu.open{opacity:1; transform:translateY(0); pointer-events:auto;}
.lang-menu button{background:none; border:none; text-align:left; color:rgba(255,255,255,0.8); font-size:13.5px; padding:10px 12px; border-radius:8px; transition:background .15s; white-space:nowrap;}
.lang-menu button:hover{background:rgba(255,255,255,0.08); color:#fff;}

.nav-link-mobile-only{display:none;}
.nav-burger{display:none; flex-direction:column; justify-content:center; gap:5px; width:34px; height:34px; background:none; border:none; padding:0; flex-shrink:0;}
.nav-burger span{display:block; width:22px; height:2px; background:#fff; border-radius:2px; transition:transform .25s var(--ease), opacity .2s;}
.nav-burger.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-burger.active span:nth-child(2){opacity:0;}
.nav-burger.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media(max-width:900px){
  .nav-burger{display:flex;}
  .nav-right{gap:10px;}
  .nav-links{
    display:flex; flex-direction:column; gap:0; flex-wrap:nowrap;
    position:fixed; top:63px; left:0; right:0; z-index:99;
    background:rgba(10,30,61,0.98); backdrop-filter:blur(16px);
    padding:0 32px; max-height:0; overflow:hidden; opacity:0; pointer-events:none;
    transition:max-height .3s var(--ease), opacity .2s var(--ease), padding .3s var(--ease);
    border-bottom:1px solid rgba(255,255,255,0.08);
  }
  .nav-links.open{max-height:70vh; overflow-y:auto; opacity:1; pointer-events:auto; padding:10px 32px 18px;}
  .nav-links a{width:100%; padding:14px 0; border-bottom:1px solid rgba(255,255,255,0.08); font-size:14.5px;}
  .nav-links li:last-child a{border-bottom:none;}
  .nav-link-mobile-only{display:block;}
  .nav-actions{gap:8px;}
  .nav-cta,.nav-survey{font-size:12px; padding:10px 16px;}
  .lang-btn span{display:none;}
  .lang-btn{padding:9px 11px;}
}
@media(max-width:420px){.nav-cta,.nav-survey{font-size:11.5px; padding:9px 13px;}}
@media(max-width:768px){.fidelite-hero-grid{grid-template-columns:1fr !important; gap:36px !important;} .fidelite-hero-grid img{height:300px !important;}}
@media(max-width:768px){.vision-hero-grid{grid-template-columns:1fr !important; gap:36px !important;} .vision-hero-grid img{height:300px !important;}}

/* Rubriques harmonisées : mêmes liens que la page d'accueil sur toutes les pages.
   Quand une page démarre sur un fond clair (ex. futures pages "Nos offres", "Notre vision"...),
   ajouter class="page-light" sur <body> pour que les rubriques passent en bleu marine tant que la nav
   n'est pas encore repassée en mode "scrolled" (fond sombre translucide). */
body.page-light nav:not(.scrolled) .brand,
body.page-light nav:not(.scrolled) .nav-links a,
body.page-light nav:not(.scrolled) .lang-btn{color:var(--navy-900);}
body.page-light nav:not(.scrolled) .lang-btn{border-color:rgba(10,30,61,0.25);}
body.page-light nav:not(.scrolled) .nav-burger span{background:var(--navy-900);}

/* ============ HERO ============ */
.hero{
  min-height:100vh; display:flex; align-items:center; position:relative; overflow:hidden;
  background: radial-gradient(120% 100% at 20% 0%, #1b3c6e 0%, var(--navy-700) 40%, var(--navy-900) 75%);
  padding-top:120px;
}
.hero::before{
  content:""; position:absolute; inset:0; z-index:0;
  background-image: linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
  background-size:56px 56px; mask-image: radial-gradient(circle at 25% 30%, black, transparent 70%);
}

/* Quadrillage repris sur tous les espaces bleus */
.blue-grid{position:relative;}
.blue-grid::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image: linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
  background-size:56px 56px;
}
.hero-canopy{
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:var(--canopy-svg);
  background-size:cover; background-position:center; opacity:0.55;
  mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 35%, black 100%), radial-gradient(120% 90% at 75% 40%, black 55%, transparent 100%);
  mask-composite: intersect; -webkit-mask-composite: source-in;
}
.hero-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:40px; align-items:center; position:relative; z-index:2;}
@media(max-width:980px){.hero-grid{grid-template-columns:1fr;}}
@media(max-width:560px){.orbit-stage{height:400px; transform:scale(0.82);} .app-download{justify-content:center;}}
@media(max-width:400px){.orbit-stage{height:340px; transform:scale(0.68);}}
.eyebrow{
  font-family:var(--mono); font-size:12px; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold-300);
  font-weight:600; display:inline-flex; align-items:center; gap:10px; margin-bottom:26px; padding:8px 16px;
  border:1px solid rgba(232,206,142,0.3); border-radius:100px;
}
.first-badge{
  font-family:var(--mono); font-size:11.5px; letter-spacing:0.06em; text-transform:uppercase; font-weight:700;
  display:inline-flex; align-items:center; gap:8px; margin-bottom:16px; padding:8px 16px 8px 12px;
  background:var(--gold-500); color:var(--navy-900); border-radius:100px;
  box-shadow:0 8px 24px -6px rgba(201,162,75,0.55);
}
.hero h1{font-size:clamp(38px,5.2vw,68px); line-height:1.04; font-weight:700; margin-bottom:26px;}
.hero h1 em{font-style:normal; color:var(--gold-500);}
.hero p.sub{font-size:19px; color:rgba(255,255,255,0.65); max-width:540px; margin-bottom:38px;}
.hero-ctas{display:flex; gap:16px; flex-wrap:wrap; margin-bottom:56px;}
.btn{font-weight:700; font-size:15px; padding:16px 30px; border-radius:100px; border:none; display:inline-flex; align-items:center; gap:10px; transition:all .25s var(--ease);}
.btn-primary{background:var(--gold-500); color:var(--navy-900);}
.btn-primary:hover{background:var(--gold-300); transform:translateY(-2px); box-shadow:0 12px 30px -8px rgba(201,162,75,0.5);}
.btn-ghost{background:rgba(255,255,255,0.06); color:#fff; border:1px solid rgba(255,255,255,0.18);}
.btn-ghost:hover{background:rgba(255,255,255,0.12); transform:translateY(-2px);}
.btn-rdv-white{background:#fff; color:var(--navy-700); border:1px solid #fff;}
.btn-rdv-white:hover{background:var(--n100); color:var(--navy-900); transform:translateY(-2px); box-shadow:0 12px 30px -8px rgba(255,255,255,0.35);}
.section-light .btn-rdv-white{border-color:var(--n300); box-shadow:0 6px 16px -6px rgba(10,30,61,0.16);}
.section-light .btn-rdv-white:hover{background:var(--n100); border-color:var(--navy-500);}

.devis-chooser-overlay{position:fixed; inset:0; z-index:300; background:rgba(10,20,40,0.6); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; padding:24px; opacity:0; pointer-events:none; transition:opacity .25s var(--ease);}
.devis-chooser-overlay.open{opacity:1; pointer-events:auto;}
.devis-chooser-box{position:relative; background:#fff; border-radius:22px; padding:40px; max-width:520px; width:100%; text-align:center; transform:translateY(14px); transition:transform .25s var(--ease); box-shadow:0 40px 80px -20px rgba(0,0,0,0.4);}
.devis-chooser-overlay.open .devis-chooser-box{transform:translateY(0);}
.devis-chooser-box h3{font-size:22px; color:var(--navy-900); margin-bottom:8px;}
.devis-chooser-box p{color:#5A6478; font-size:14px; margin-bottom:24px;}
.devis-chooser-close{position:absolute; top:16px; right:16px; background:none; border:none; color:#8A93A6; font-size:16px; width:32px; height:32px; border-radius:50%;}
.devis-chooser-close:hover{background:var(--n100); color:var(--navy-900);}
.devis-chooser-opts{display:flex; flex-direction:column; gap:12px;}
.devis-chooser-opt{text-align:left; background:var(--n100); border:1.5px solid var(--n300); border-radius:14px; padding:16px 18px; transition:all .2s;}
.devis-chooser-opt:hover{border-color:var(--gold-500); background:rgba(201,162,75,0.08);}
.devis-chooser-opt strong{display:block; color:var(--navy-900); font-size:15px; margin-bottom:4px;}
.devis-chooser-opt span{display:block; color:#5A6478; font-size:13px;}
.hero-trust{display:flex; gap:36px; flex-wrap:wrap;}
.hero-trust div{border-left:2px solid rgba(232,206,142,0.4); padding-left:14px;}
.hero-trust .v{font-family:var(--display); font-size:24px; font-weight:700;}
.hero-trust .k{font-size:12.5px; color:rgba(255,255,255,0.5);}

/* Hero visual: animated data orbit */
.hero-visual{display:flex; flex-direction:column; align-items:center;}
.orbit-stage{position:relative; height:500px; width:100%; display:flex; align-items:center; justify-content:center;}
.hero-visual-caption{margin-top:22px; display:flex; flex-direction:column; align-items:center; gap:16px;}
.hero-subscribers{display:flex; flex-direction:column; align-items:center; gap:2px;}
.hs-num{font-family:var(--display); font-weight:700; font-size:23px; color:var(--gold-300);}
.hs-lbl{font-size:11px; font-family:var(--mono); text-transform:uppercase; letter-spacing:0.06em; color:rgba(255,255,255,0.5);}
.app-download{display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-top:8px;}
.app-download-lbl{font-size:12px; color:rgba(255,255,255,0.45); font-family:var(--mono); text-transform:uppercase; letter-spacing:0.04em;}
.app-badges{display:flex; gap:10px; flex-wrap:wrap;}
.app-badge{display:flex; align-items:center; gap:9px; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.16); border-radius:10px; padding:7px 14px; transition:all .2s;}
.app-badge:hover{background:rgba(255,255,255,0.12); border-color:rgba(232,206,142,0.4);}
.app-badge .ab-k{font-size:8.5px; color:rgba(255,255,255,0.5); text-transform:uppercase; letter-spacing:0.04em;}
.app-badge .ab-v{font-size:13px; font-weight:700; color:#fff; font-family:var(--display);}
.hero-visual-caption .app-badges{justify-content:center; margin-top:16px;}
.store-badge{display:flex; align-items:center; gap:9px; background:#000; border:1px solid rgba(255,255,255,0.18); border-radius:10px; padding:8px 14px; transition:all .2s;}
.store-badge:hover{border-color:rgba(232,206,142,0.5); transform:translateY(-2px);}
.store-badge .ab-k{font-size:8px; color:rgba(255,255,255,0.65); text-transform:uppercase; letter-spacing:0.03em; line-height:1.3;}
.store-badge .ab-v{font-size:13px; font-weight:700; color:#fff; font-family:var(--display); line-height:1.2;}
.orbit{position:absolute; border-radius:50%; border:1px solid rgba(232,206,142,0.18);}
.orbit-1{width:506px; height:506px; animation:spin 40s linear infinite;}
.orbit-2{width:430px; height:430px; animation:spin 30s linear infinite reverse;}
@keyframes spin{from{transform:rotate(0deg);} to{transform:rotate(360deg);}}
.node{position:absolute; width:10px; height:10px; border-radius:50%; background:var(--gold-500); box-shadow:0 0 16px 4px rgba(201,162,75,0.5);}
.core{width:120px; height:120px; border-radius:50%; background:linear-gradient(135deg,#234478,#0A1E3D); border:1px solid rgba(232,206,142,0.4); display:flex; align-items:center; justify-content:center; box-shadow:0 0 60px 10px rgba(35,68,120,0.5);}
.core svg{width:46px; height:46px;}

/* Gabon map */
.gabon-map{position:absolute; width:374px; height:374px; z-index:1;}
.gabon-map svg{width:100%; height:100%; overflow:visible;}
.gabon-shape{fill:rgba(201,162,75,0.10); stroke:var(--gold-500); stroke-width:1.4; stroke-linejoin:round; filter:drop-shadow(0 0 22px rgba(201,162,75,0.25));}
.gabon-marker-ring{fill:none; stroke:var(--gold-300); stroke-width:1.5; transform-origin:center; transform-box:fill-box; animation:pulse-ring 2.6s ease-out infinite;}
.gabon-marker-ring.r2{animation-delay:0.9s;}
.gabon-marker-ring.sm{stroke-width:1; animation-duration:2.2s;}
@keyframes pulse-ring{0%{transform:scale(0.3); opacity:0.9;} 80%{opacity:0;} 100%{transform:scale(2.6); opacity:0;}}
.gabon-marker-dot{fill:var(--gold-300);}
.gabon-marker-dot.hq{fill:#fff;}
.province-dot{animation:dot-glow 3s ease-in-out infinite;}
.province-dot .gabon-marker-dot{fill:var(--gold-500);}
@keyframes dot-glow{0%,100%{opacity:0.55;} 50%{opacity:1;}}
.gabon-label{text-align:center; white-space:nowrap;}
.gabon-label .name{font-family:var(--mono); font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-300); font-weight:700;}
.gabon-label .city{font-size:11px; color:rgba(255,255,255,0.55); margin-top:2px;}
.floating-card{position:absolute; background:rgba(17,27,48,0.9); backdrop-filter:blur(10px); border:1px solid var(--border-dark); border-radius:14px; padding:14px 18px; font-size:12.5px; box-shadow:0 20px 40px -10px rgba(0,0,0,0.4); animation:float 6s ease-in-out infinite;}
@keyframes float{0%,100%{transform:translateY(0);} 50%{transform:translateY(-10px);}}
.fc-1{top:8%; right:0; animation-delay:0s;}
.fc-2{bottom:-2%; left:-6%; animation-delay:2s;}
.fc-1 .lbl, .fc-2 .lbl{color:var(--gold-300); font-family:var(--mono); font-size:10px; letter-spacing:0.08em; text-transform:uppercase;}
.fc-1 .val, .fc-2 .val{font-family:var(--display); font-weight:700; font-size:18px;}
.fc-photo{display:flex; align-items:center; gap:10px; padding:10px 16px 10px 10px;}
.fc-photo img{width:38px; height:38px; border-radius:50%; object-fit:cover; flex-shrink:0;}
.fc-photo .lbl{color:var(--gold-300); font-family:var(--mono); font-size:9.5px; letter-spacing:0.06em; text-transform:uppercase;}
.fc-photo .val{font-family:var(--text); font-weight:700; font-size:12.5px; color:#fff;}
.fc-photo .sub{font-size:10.5px; color:rgba(255,255,255,0.5);}

/* ============ SECTION GENERIC ============ */
section{padding:130px 0; position:relative;}
.section-light{background:var(--n100); color:var(--ink);}
.section-light .section-lede{color:#4B5568;}
.tag{font-family:var(--mono); font-size:15px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-600); font-weight:700; margin-bottom:18px; display:flex; align-items:center; gap:10px;}
.section-light .tag{color:var(--gold-600);}
.tag::before{content:""; width:26px; height:1px; background:var(--gold-500);}
.section-title{font-size:clamp(30px,3.6vw,46px); font-weight:700; margin-bottom:20px; max-width:760px;}
.section-lede{font-size:18px; color:rgba(255,255,255,0.6); max-width:640px; margin-bottom:64px;}

.grid{display:grid; gap:26px;}
.g3{grid-template-columns:repeat(3,1fr);}
.g4{grid-template-columns:repeat(4,1fr);}
.g2{grid-template-columns:repeat(2,1fr);}
@media(max-width:980px){.g3,.g4,.g2{grid-template-columns:1fr;}}

/* Value pillars — couleur de carte en alternance selon la bande (voir --card-* dans :root / .section-light) */
.pillar-card{background:var(--card-bg); border:1px solid var(--card-border); border-radius:18px; padding:36px; transition:transform .3s var(--ease), border-color .3s;}
.pillar-card:hover{transform:translateY(-6px); border-color:rgba(201,162,75,0.4);}
.pillar-icon{width:52px; height:52px; border-radius:14px; background:rgba(201,162,75,0.14); display:flex; align-items:center; justify-content:center; margin-bottom:22px;}
.pillar-icon svg{stroke:var(--gold-600);}
.pillar-card h3{font-size:20px; margin-bottom:10px; color:var(--card-text);}
.pillar-card p{color:var(--card-text-soft); font-size:14.5px;}

/* Stats counters */
.stat-row{display:flex; justify-content:space-between; flex-wrap:wrap; gap:30px;}
.stat{flex:1; min-width:200px;}
.stat .num{font-family:var(--display); font-size:clamp(40px,5vw,64px); font-weight:700; color:var(--navy-900);}
.stat .num span{color:var(--gold-600);}
.stat .lbl{font-size:14px; color:#5A6478; margin-top:8px;}

/* Live database counter */
.stat-live{position:relative;}
.live-badge{display:inline-flex; align-items:center; gap:7px; font-family:var(--mono); font-size:10.5px; letter-spacing:0.12em; text-transform:uppercase; color:#1f9d55; font-weight:700; margin-bottom:10px;}
.live-dot{width:7px; height:7px; border-radius:50%; background:#1f9d55; animation:live-pulse 1.8s infinite;}
@keyframes live-pulse{0%{box-shadow:0 0 0 0 rgba(31,157,85,0.5);} 70%{box-shadow:0 0 0 8px rgba(31,157,85,0);} 100%{box-shadow:0 0 0 0 rgba(31,157,85,0);}}
.stat-live .num{transition:color .2s;}
.stat-live .num.pulse{color:#1f9d55;}
.live-float{position:absolute; top:38px; right:6px; pointer-events:none; height:0;}
.live-float span{position:absolute; right:0; font-family:var(--mono); font-size:12.5px; font-weight:700; color:#1f9d55; animation:float-up 1.7s ease-out forwards; white-space:nowrap;}
@keyframes float-up{0%{opacity:0; transform:translateY(4px);} 18%{opacity:1;} 100%{opacity:0; transform:translateY(-28px);}}

/* Composition de la base — donut interactif */
.donut-panel{background:linear-gradient(160deg,#16203a,#0A1436); border:1px solid var(--border-dark); border-radius:24px; padding:52px; display:grid; grid-template-columns:0.85fr 1.15fr; gap:56px; align-items:center; box-shadow:0 60px 100px -30px rgba(0,0,0,0.5);}
@media(max-width:980px){.donut-panel{grid-template-columns:1fr; padding:32px;}}
.donut-visual{position:relative; display:flex; align-items:center; justify-content:center;}
.donut-svg{width:100%; max-width:360px; transform:rotate(0deg);}
.donut-track{fill:none; stroke:rgba(255,255,255,0.06); stroke-width:30;}
.donut-seg{fill:none; stroke-width:30; transition:stroke-dasharray .55s var(--ease), stroke-dashoffset .55s var(--ease);}
.donut-center{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; pointer-events:none;}
.donut-center .v{font-family:var(--display); font-size:36px; font-weight:700; color:#fff; text-shadow:0 0 26px rgba(232,206,142,0.4);}
.donut-center .k{font-family:var(--mono); font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:rgba(255,255,255,0.45); margin-top:6px; max-width:150px;}
.donut-sliders{display:flex; flex-direction:column; gap:18px;}
.dslider-row{display:grid; grid-template-columns:16px 1fr 46px; align-items:center; gap:14px;}
.dslider-dot{width:12px; height:12px; border-radius:50%; flex-shrink:0;}
.dslider-label{display:flex; justify-content:space-between; font-size:13.5px; color:rgba(255,255,255,0.8); margin-bottom:6px;}
.dslider-row input[type=range]{grid-column:1/3; grid-row:2; -webkit-appearance:none; width:100%; height:5px; border-radius:100px; background:rgba(255,255,255,0.12); outline:none;}
.dslider-wrap{display:flex; flex-direction:column;}
.dslider-wrap input[type=range]::-webkit-slider-thumb{-webkit-appearance:none; width:16px; height:16px; border-radius:50%; background:var(--gold-500); border:2px solid #fff; cursor:pointer; box-shadow:0 2px 8px rgba(0,0,0,0.3);}
.dslider-wrap input[type=range]::-moz-range-thumb{width:16px; height:16px; border-radius:50%; background:var(--gold-500); border:2px solid #fff; cursor:pointer;}
.dslider-pct{font-family:var(--mono); font-weight:700; font-size:14px; color:#fff; text-align:right;}
.donut-cta{margin-top:8px; padding-top:22px; border-top:1px solid var(--border-dark); display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;}
.donut-cta p{font-size:13.5px; color:rgba(255,255,255,0.55); max-width:360px;}
.donut-cta p strong{color:var(--gold-300);}
.donut-cta-btns{display:flex; gap:12px; flex-wrap:wrap; flex-shrink:0;}
.donut-cta-btns .btn{white-space:nowrap;}
@media(max-width:520px){.donut-cta-btns{width:100%;} .donut-cta-btns .btn{flex:1;}}
@media(max-width:600px){.donut-panel{padding:26px;}}

/* Devis */
.devis-shell{background:#fff; border-radius:22px; padding:52px; box-shadow:0 20px 50px -20px rgba(10,30,61,0.15); max-width:760px;}
@media(max-width:700px){.devis-shell{padding:28px;}}

/* Prendre rendez-vous */
.rdv-shell{background:#fff; border-radius:22px; padding:44px; box-shadow:0 20px 50px -20px rgba(10,30,61,0.15); max-width:760px;}
@media(max-width:700px){.rdv-shell{padding:24px;}}
.rdv-days{display:flex; gap:10px; overflow-x:auto; padding-bottom:8px; margin-bottom:24px;}
.rdv-day{flex-shrink:0; min-width:82px; text-align:center; padding:14px 10px; border-radius:14px; border:1.5px solid var(--n300); background:#fff; transition:all .2s;}
.rdv-day .rd-dow{font-family:var(--mono); font-size:10.5px; text-transform:uppercase; letter-spacing:0.06em; color:#8A93A6;}
.rdv-day .rd-num{font-family:var(--display); font-size:20px; font-weight:700; color:var(--navy-900); margin-top:2px;}
.rdv-day .rd-month{font-size:10.5px; color:#8A93A6;}
.rdv-day:hover{border-color:var(--gold-500);}
.rdv-day.active{background:var(--navy-900); border-color:var(--navy-900);}
.rdv-day.active .rd-dow, .rdv-day.active .rd-month{color:rgba(255,255,255,0.6);}
.rdv-day.active .rd-num{color:var(--gold-300);}
.rdv-slots{display:grid; grid-template-columns:repeat(3,1fr); gap:10px;}
@media(max-width:600px){.rdv-slots{grid-template-columns:repeat(2,1fr);}}
.rdv-slot{padding:13px 10px; border-radius:12px; border:1.5px solid var(--n300); background:#fff; font-weight:700; font-size:14px; color:var(--navy-900); transition:all .2s;}
.rdv-slot:hover{border-color:var(--gold-500); background:rgba(201,162,75,0.06);}
.rdv-recap{background:var(--n100); border-radius:12px; padding:14px 18px; margin-bottom:20px; font-size:14px; color:var(--navy-900); font-weight:600;}
.rdv-recap span{color:var(--gold-600);}
.devis-form .field-row, .rdv-form .field-row{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
@media(max-width:600px){.devis-form .field-row, .rdv-form .field-row{grid-template-columns:1fr;}}
.devis-note{font-size:12px; color:#8A93A6; text-align:center; margin-top:16px;}
.devis-confirm{text-align:center; padding:30px 10px;}
.devis-check{width:64px; height:64px; border-radius:50%; background:rgba(31,157,85,0.12); color:#1f9d55; font-size:28px; font-weight:700; display:flex; align-items:center; justify-content:center; margin:0 auto 22px;}
.devis-confirm h3{font-size:24px; color:var(--navy-900); margin-bottom:12px;}
.devis-confirm p{color:#5A6478; font-size:15px; max-width:460px; margin:0 auto 26px;}

/* Product preview */
.product-shell{background:linear-gradient(160deg,#16203a,#0A1436); border:1px solid var(--border-dark); border-radius:20px; padding:22px; box-shadow:0 60px 100px -30px rgba(0,0,0,0.5);}
.product-topbar{display:flex; gap:8px; margin-bottom:18px;}
.product-topbar span{width:11px; height:11px; border-radius:50%; background:rgba(255,255,255,0.15);}
.product-screen{background:var(--surface); border-radius:12px; padding:26px; display:grid; grid-template-columns:1fr 1.6fr; gap:20px;}
.product-nav{display:flex; flex-direction:column; gap:10px;}
.pnav-item{padding:10px 14px; border-radius:8px; font-size:12.5px; color:rgba(255,255,255,0.55);}
.pnav-item.active{background:rgba(201,162,75,0.14); color:var(--gold-300); font-weight:600;}
.product-chart{background:#0d1730; border-radius:10px; padding:18px; height:190px; display:flex; align-items:flex-end; gap:8px;}
.bar{flex:1; background:linear-gradient(180deg,var(--gold-500),var(--gold-600)); border-radius:4px 4px 0 0; opacity:0.9;}
.product-kpis{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:14px;}
.kpi{background:#0d1730; border-radius:8px; padding:12px;}
.kpi .k{font-size:10.5px; color:var(--gold-300); font-family:var(--mono);}
.kpi .v{font-family:var(--display); font-size:18px; font-weight:700; margin-top:4px;}

/* Feature tabs */
.tabs{display:flex; gap:10px; margin-bottom:36px; flex-wrap:wrap;}
.tab-btn{padding:12px 22px; border-radius:100px; border:1px solid var(--border-dark); background:transparent; color:rgba(255,255,255,0.6); font-size:13.5px; font-weight:600; transition:all .2s;}
.tab-btn.active{background:var(--gold-500); color:var(--navy-900); border-color:var(--gold-500);}
.tab-panel{display:none; grid-template-columns:1fr 1fr; gap:50px; align-items:center;}
.tab-panel.active{display:grid;}
@media(max-width:980px){.tab-panel{grid-template-columns:1fr;}}
.tab-panel h3{font-size:26px; margin-bottom:14px;}
.tab-panel p{color:rgba(255,255,255,0.6); font-size:15px; margin-bottom:20px;}
.feat-list{list-style:none;}
.feat-list li{display:flex; gap:12px; margin-bottom:12px; font-size:14px; color:rgba(255,255,255,0.75);}
.feat-list li svg{flex-shrink:0; stroke:var(--gold-500);}
.tab-visual{background:var(--surface); border:1px solid var(--border-dark); border-radius:16px; height:280px; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,0.3); font-family:var(--mono); font-size:12px;}

/* Advantages two-column */
.adv-col{background:#fff; border-radius:20px; padding:44px; box-shadow:0 20px 50px -20px rgba(10,30,61,0.15);}
.adv-col.dark{background:var(--navy-900); color:#fff;}
.adv-col h3{font-size:24px; margin-bottom:22px; color:var(--navy-900);}
.adv-col.dark h3{color:#fff;}
.adv-item{display:flex; gap:14px; margin-bottom:20px;}
.adv-check{width:24px; height:24px; border-radius:50%; background:var(--gold-300); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.adv-item p{font-size:14.5px; color:#3A4356;}
.adv-col.dark .adv-item p{color:rgba(255,255,255,0.7);}

/* Use cases */
.uc-card{position:relative; border-radius:18px; overflow:hidden; height:340px; padding:30px; display:flex; flex-direction:column; justify-content:flex-end; background:linear-gradient(135deg,#1c3d6e,#0A1E3D);}
.uc-card img.uc-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;}
.uc-card .uc-overlay{position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,20,40,0.05) 30%, rgba(8,16,34,0.94) 100%); z-index:1;}
.uc-card > *:not(img):not(.uc-overlay){position:relative; z-index:2;}
.uc-tag{font-family:var(--mono); font-size:11px; color:var(--gold-300); text-transform:uppercase; letter-spacing:0.08em; margin-bottom:10px;}
.uc-card h4{font-size:19px; margin-bottom:8px;}
.uc-card p{font-size:13.5px; color:rgba(255,255,255,0.65);}

/* Testimonials — couleur de carte en alternance */
.testi-card{background:var(--card-bg); border:1px solid var(--card-border); border-radius:18px; padding:34px;}
.testi-card p{font-size:16px; font-style:italic; color:var(--card-text-soft); margin-bottom:22px; line-height:1.55;}
.testi-who{display:flex; align-items:center; gap:12px;}
.testi-avatar{width:42px; height:42px; border-radius:50%; background:var(--navy-500); display:flex; align-items:center; justify-content:center; font-family:var(--display); font-weight:700; font-size:14px; overflow:hidden;}
.testi-avatar img{width:100%; height:100%; object-fit:cover;}
.testi-name{font-size:13.5px; font-weight:700; color:var(--card-text);}

/* Humains — bright photo band */
.humans-band{position:relative; padding:0; overflow:hidden; border-radius:24px; background:linear-gradient(115deg,#3a557e,#0A1E3D 60%);}
.humans-band > img{width:100%; height:520px; object-fit:cover; display:block; filter:saturate(1.05) brightness(1.02);}
.humans-overlay{position:absolute; inset:0; background:linear-gradient(90deg, rgba(10,30,61,0.88) 0%, rgba(10,30,61,0.55) 38%, rgba(10,30,61,0.05) 68%);}
.humans-content{position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; padding:0 60px; max-width:560px;}
.humans-content h2{color:#fff;}
.humans-content p{color:rgba(255,255,255,0.72); font-size:17px; margin-bottom:0;}
.humans-faces{display:flex; gap:0; margin-top:30px;}
.hface{width:56px; height:56px; flex-shrink:0; border-radius:50%; border:3px solid var(--navy-900); object-fit:cover; margin-right:-16px; box-shadow:0 8px 20px rgba(0,0,0,0.3);}
.humans-faces-label{margin-left:20px; font-size:13px; color:var(--gold-300); align-self:center; font-weight:600;}
@media(max-width:900px){.humans-band > img{height:640px;} .humans-content{padding:0 28px; max-width:100%;}}
.testi-role{font-size:12px; color:var(--card-text-mute);}

/* Partners marquee */
.marquee{overflow:hidden; position:relative; mask-image:linear-gradient(90deg,transparent,black 10%,black 90%,transparent);}
.marquee-track{display:flex; gap:70px; width:max-content; animation:scroll-x 55s linear infinite; animation-direction:reverse;}
@keyframes scroll-x{from{transform:translateX(0);} to{transform:translateX(-50%);}}
.partner-logo{font-family:var(--display); font-weight:700; font-size:20px; color:rgba(255,255,255,0.35); letter-spacing:0.02em; white-space:nowrap;}

/* Security */
.sec-badge{display:flex; align-items:center; gap:16px; background:#fff; border-radius:14px; padding:22px; box-shadow:0 20px 40px -18px rgba(10,30,61,0.15);}
.sec-icon{width:46px; height:46px; border-radius:12px; background:rgba(20,49,94,0.08); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.sec-icon svg{stroke:var(--navy-700);}
.sec-badge h4{font-size:15px; color:var(--navy-900); margin-bottom:4px;}
.sec-badge p{font-size:12.5px; color:#5A6478;}

/* FAQ */
.faq-item{border-bottom:1px solid var(--border-dark); padding:24px 0;}
.faq-q{display:flex; justify-content:space-between; align-items:center; cursor:pointer; font-size:17px; font-weight:600;}
.faq-icon{width:22px; height:22px; flex-shrink:0; transition:transform .3s var(--ease); stroke:var(--gold-500);}
.faq-item.open .faq-icon{transform:rotate(45deg);}
.faq-a { max-height:0; overflow:hidden; transition:max-height .35s var(--ease); }
.faq-item.open .faq-a { max-height:200px; }
.faq-a p { padding-top:16px; color:#000 !important; font-weight:500; font-size:14.5px; max-width:720px; }

/* Contact */
.contact-shell{background:#fff; border-radius:22px; padding:56px; display:grid; grid-template-columns:1fr 1fr; gap:60px;}
@media(max-width:980px){.contact-shell{grid-template-columns:1fr; padding:32px;}}
.contact-shell h2{color:var(--navy-900);}
.field{margin-bottom:18px;}
.field label{display:block; font-size:12.5px; font-weight:700; color:var(--navy-700); margin-bottom:8px;}
.field input, .field textarea, .field select{width:100%; border:1.5px solid var(--n300); border-radius:10px; padding:14px 16px; font-family:var(--text); font-size:14.5px; outline:none; transition:border-color .2s; background:#fff; color:var(--ink);}
.field input:focus, .field textarea:focus, .field select:focus{border-color:var(--gold-500); box-shadow:0 0 0 4px rgba(201,162,75,0.15);}
.contact-info-item{display:flex; gap:16px; margin-bottom:26px;}
.contact-info-item .ic{width:44px; height:44px; border-radius:12px; background:var(--navy-900); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.contact-info-item .ic svg{stroke:var(--gold-300);}

/* Footer */
footer{background:#050f24; padding:80px 0 32px;}
.footer-top{display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:40px; margin-bottom:70px;}
@media(max-width:900px){.footer-top{grid-template-columns:1fr 1fr;}}
.footer-col h5{font-size:12.5px; text-transform:uppercase; letter-spacing:0.1em; color:var(--gold-300); margin-bottom:18px;}
.footer-col a{display:block; font-size:14px; color:rgba(255,255,255,0.55); margin-bottom:12px; transition:color .2s;}
.footer-col a:hover{color:#fff;}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.08); padding-top:28px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; font-size:13px; color:rgba(255,255,255,0.4);}

/* Survey */
.survey-shell{display:grid; grid-template-columns:1.1fr 0.9fr; gap:60px; align-items:start;}
@media(max-width:980px){.survey-shell{grid-template-columns:1fr;}}
.survey-stats{display:flex; gap:40px;}
.survey-stats .v{font-family:var(--display); font-size:34px; font-weight:700; color:var(--gold-500);}
.survey-stats .k{font-size:12.5px; color:rgba(255,255,255,0.5); margin-top:4px;}
.survey-form{background:var(--surface); border:1px solid var(--border-dark); border-radius:20px; padding:38px;}
.survey-form .field label{color:rgba(255,255,255,0.75);}
.survey-form .field input, .survey-form .field select{background:rgba(255,255,255,0.04); border:1.5px solid var(--border-dark); color:#fff;}
.survey-form .field input::placeholder{color:rgba(255,255,255,0.35);}
.survey-form .field select{width:100%; padding:14px 16px; border-radius:10px; font-family:var(--text); font-size:14.5px; outline:none;}
.radio-group{display:flex; flex-direction:column; gap:10px;}
.radio-opt{display:flex; align-items:center; gap:10px; font-size:13.5px; color:rgba(255,255,255,0.7); font-weight:500; cursor:pointer;}
.radio-opt input{accent-color:var(--gold-500); width:16px; height:16px;}

/* Newsletter */
.newsletter-form{display:flex; gap:10px; margin-top:28px; flex-wrap:wrap; justify-content:center;}
.newsletter-form input{flex:1; min-width:220px; border:1.5px solid var(--border-dark); background:rgba(255,255,255,0.05); border-radius:100px; padding:14px 20px; font-size:14px; color:#fff; outline:none; transition:border-color .2s;}
.newsletter-form input::placeholder{color:rgba(255,255,255,0.4);}
.newsletter-form input:focus{border-color:var(--gold-500);}
.newsletter-form .btn{border-radius:100px; white-space:nowrap;}
@media(max-width:480px){.newsletter-form{flex-direction:column;} .newsletter-form input, .newsletter-form .btn{width:100%;}}

/* Scroll progress bar */
.scroll-progress{position:fixed; top:0; left:0; height:3px; background:linear-gradient(90deg,var(--gold-600),var(--gold-300)); z-index:200; width:0%; transition:width .1s linear;}

/* Tilt-on-hover for interactive cards */
.tilt{transition:transform .25s ease-out, box-shadow .25s ease-out; will-change:transform;}

/* Trust logos band — bande blanche */
.trust-band{padding:52px 0; background:#fff; border-top:1px solid var(--n300); border-bottom:1px solid var(--n300);}
.trust-label{font-family:var(--mono); font-size:11.5px; letter-spacing:0.16em; text-transform:uppercase; color:#8A93A6; text-align:center; margin-bottom:32px;}
.trust-marquee{overflow:hidden; position:relative; mask-image:linear-gradient(90deg,transparent,black 8%,black 92%,transparent); -webkit-mask-image:linear-gradient(90deg,transparent,black 8%,black 92%,transparent);}
.trust-logos{display:flex; align-items:center; gap:56px; width:max-content; animation:scroll-x 42s linear infinite; animation-direction:reverse;}
.trust-marquee:hover .trust-logos{animation-play-state:paused;}
.trust-logo{display:flex; align-items:center; gap:12px; opacity:0.9; transition:opacity .25s, transform .25s; flex-shrink:0;}
.trust-logo:hover{opacity:1; transform:translateY(-2px);}
.tl-word{font-family:var(--display); font-weight:700; font-size:19px; letter-spacing:0.01em;}
@media(max-width:900px){.trust-logos{gap:32px;} .tl-word{font-size:16px;}}

/* Animated architecture flow diagram */
.flow-wrap{background:var(--surface); border:1px solid var(--border-dark); border-radius:24px; padding:20px; overflow:hidden;}
.flow-svg{width:100%; height:auto; display:block;}
.flow-path{fill:none; stroke:rgba(232,206,142,0.28); stroke-width:1.6; stroke-dasharray:4 6;}
.flow-node-bg{fill:var(--navy-900); stroke:var(--border-dark); stroke-width:1.5;}
.flow-node-bg.core{fill:url(#coreGrad); stroke:var(--gold-500); stroke-width:1.5;}
.flow-halo{fill:none; stroke:var(--gold-300); stroke-width:1.2; transform-origin:center; transform-box:fill-box; animation:pulse-ring 3s ease-out infinite;}
.flow-label{font-family:'Inter',sans-serif; font-size:13px; fill:#fff; font-weight:600; text-anchor:middle;}
.flow-label.core{font-family:'Space Grotesk',sans-serif; font-size:15px; fill:var(--gold-300); font-weight:700;}
.flow-sublabel{font-family:'JetBrains Mono',monospace; font-size:9.5px; fill:rgba(255,255,255,0.45); text-anchor:middle; text-transform:uppercase; letter-spacing:0.06em;}
.flow-particle{fill:var(--gold-300); filter:drop-shadow(0 0 4px rgba(232,206,142,0.9));}

/* Cursor-follow subtle glow — actif sur tous les espaces bleus */
.glow{position:fixed; top:0; left:0; width:560px; height:560px; border-radius:50%; background:radial-gradient(circle, rgba(232,206,142,0.22), transparent 70%); pointer-events:none; transition:transform .15s ease-out, opacity .3s ease; z-index:1; opacity:0;}

/* ============ OFFRES ENTREPRISES ============ */
.offer-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:8px;}
.offer-grid.secondary{grid-template-columns:repeat(4,1fr); margin-top:0;}
@media(max-width:980px){.offer-grid, .offer-grid.secondary{grid-template-columns:1fr;}}
.offer-card{position:relative; background:var(--card-bg); border:1px solid var(--card-border); border-radius:20px; padding:32px; display:flex; flex-direction:column; transition:transform .3s var(--ease), border-color .3s; box-shadow:0 20px 44px -28px rgba(10,30,61,0.18);}
.offer-card:hover{transform:translateY(-6px); border-color:rgba(201,162,75,0.45);}
/* La carte "featured" garde toujours son dégradé sombre signature, quelle que soit la bande */
.offer-card.featured{border-color:rgba(201,162,75,0.55); background:linear-gradient(160deg,#16203a,#0A1436); box-shadow:0 26px 54px -24px rgba(0,0,0,0.4);}
.offer-card.featured h3, .offer-card.featured .offer-price .amount, .offer-card.featured .ot-price{color:#fff;}
.offer-card.featured .offer-price .period, .offer-card.featured .offer-desc, .offer-card.featured .offer-features li, .offer-card.featured .offer-note{color:rgba(255,255,255,0.65);}
.offer-badge{align-self:flex-start; font-family:var(--mono); font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; font-weight:700; color:var(--gold-600); background:rgba(201,162,75,0.12); border:1px solid rgba(201,162,75,0.3); border-radius:100px; padding:5px 12px; margin-bottom:18px;}
.offer-card.featured .offer-badge{color:var(--gold-300);}
.offer-card h3{font-size:21px; margin-bottom:10px; color:var(--card-text);}
.offer-price{display:flex; align-items:baseline; gap:6px; margin-bottom:16px; flex-wrap:wrap;}
.offer-price .amount{font-family:var(--display); font-size:25px; font-weight:700; color:var(--card-text);}
.offer-price .period{font-size:12.5px; color:var(--card-text-mute);}
.offer-desc{font-size:14px; color:var(--card-text-soft); margin-bottom:18px;}
.offer-features{list-style:none; margin-bottom:22px; flex-grow:1;}
.offer-features li{display:flex; gap:10px; font-size:13px; color:var(--card-text-soft); margin-bottom:10px; line-height:1.45;}
.offer-features li svg{flex-shrink:0; stroke:var(--gold-500); margin-top:2px;}
.offer-cta{margin-top:auto; width:100%; justify-content:center; font-size:13.5px; padding:13px 20px;}
.offer-note{font-size:11.5px; color:var(--card-text-mute); margin-top:12px; text-align:center;}
.offer-tiers{display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:20px;}
.offer-tier{background:rgba(120,140,170,0.08); border:1px solid var(--card-border); border-radius:10px; padding:10px 6px; text-align:center;}
.offer-tier .ot-len{font-size:10px; color:var(--card-text-mute); font-family:var(--mono); text-transform:uppercase;}
.offer-tier .ot-price{font-family:var(--display); font-weight:700; font-size:13.5px; margin-top:4px; color:var(--card-text);}
@media(max-width:600px){.offer-tiers{grid-template-columns:repeat(2,1fr);}}
.offer-ministry-banner{background:linear-gradient(120deg,#1c3d6e,#0A1E3D); border:1px solid rgba(201,162,75,0.3); border-radius:20px; padding:26px 32px; display:flex; align-items:center; gap:20px; margin:32px 0 44px; flex-wrap:wrap;}
.offer-cta-secondary{display:inline-flex; align-items:center; gap:8px; margin-top:10px; font-size:12.5px; font-weight:700; color:var(--gold-600); border:1.5px solid var(--gold-500); border-radius:100px; padding:10px 18px; width:100%; justify-content:center; background:var(--card-bg); transition:all .2s;}
.offer-cta-secondary:hover{background:var(--gold-500); color:var(--navy-900);}

/* ============ PROGRAMME DE FIDÉLITÉ ============ */
.age-spectrum{display:flex; gap:20px; flex-wrap:wrap; margin:30px 0 12px;}
.age-avatar{display:flex; flex-direction:column; align-items:center; gap:8px;}
.age-avatar img{width:64px; height:64px; border-radius:50%; object-fit:cover; border:2px solid var(--gold-300); box-shadow:0 8px 20px -6px rgba(10,30,61,0.35);}
.age-avatar span{font-family:var(--mono); font-size:11px; color:var(--gold-600); font-weight:700;}
.age-spectrum-caption{color:#5A6478; font-size:13.5px; margin-bottom:34px; max-width:600px;}
.fidelity-ladder{display:flex; flex-direction:column; gap:18px;}
.fl-item{display:grid; grid-template-columns:66px 1fr 1.1fr; align-items:center; gap:18px;}
@media(max-width:700px){.fl-item{grid-template-columns:56px 1fr;} .fl-prize{grid-column:1/3; margin-top:-6px;}}
.fl-pts{font-family:var(--mono); font-size:12px; color:var(--gold-300); font-weight:700;}
.fl-bar{height:8px; border-radius:100px; background:rgba(255,255,255,0.08); overflow:hidden;}
.fl-fill{height:100%; width:0; background:linear-gradient(90deg,var(--gold-600),var(--gold-300)); border-radius:100px; transition:width 1.1s var(--ease);}
.fl-fill.in{}
.fl-prize{font-size:13.5px; color:#fff; font-weight:600;}
.fl-item.featured .fl-prize{color:var(--gold-300); font-size:15px;}
.fidelity-earn{display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:26px;}
@media(max-width:700px){.fidelity-earn{grid-template-columns:1fr;}}
.fidelity-earn-item{background:rgba(255,255,255,0.04); border:1px solid var(--border-dark); border-radius:14px; padding:16px 18px; display:flex; gap:12px; align-items:flex-start;}
.fidelity-earn-item .fe-pts{font-family:var(--display); font-weight:700; font-size:20px; color:var(--gold-300); flex-shrink:0; min-width:44px;}
.fidelity-earn-item p{font-size:13px; color:rgba(255,255,255,0.65); margin:0;}
.fidelity-earn-item strong{color:#fff;}

/* ============ DONUT XL — composition multi-dimensions ============ */
.donut-dims{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:32px;}
.donut-dim-btn{padding:10px 18px; border-radius:100px; border:1px solid var(--border-dark); background:rgba(255,255,255,0.03); color:rgba(255,255,255,0.6); font-size:13px; font-weight:600; transition:all .2s;}
.donut-dim-btn:hover{border-color:rgba(201,162,75,0.4); color:#fff;}
.donut-dim-btn.active{background:var(--gold-500); color:var(--navy-900); border-color:var(--gold-500);}
.donut-panel-xl{padding:58px; grid-template-columns:1.05fr 0.95fr;}
@media(max-width:980px){.donut-panel-xl{padding:30px; grid-template-columns:1fr;}}
.donut-glow{position:absolute; inset:-24px; border-radius:50%; background:radial-gradient(circle, rgba(201,162,75,0.16), transparent 70%); filter:blur(12px); animation:donut-breathe 4.5s ease-in-out infinite; pointer-events:none;}
@keyframes donut-breathe{0%,100%{opacity:0.55; transform:scale(0.94);} 50%{opacity:1; transform:scale(1.05);}}
.donut-ring-deco{fill:none; stroke:rgba(232,206,142,0.16); stroke-width:1; stroke-dasharray:2 9; animation:spin 70s linear infinite; transform-origin:center; transform-box:fill-box;}
.donut-seg{stroke-linecap:round; cursor:pointer; transition:stroke-dasharray .65s var(--ease), stroke-dashoffset .65s var(--ease), filter .25s, opacity .25s;}
.donut-seg:hover{filter:drop-shadow(0 0 10px rgba(232,206,142,0.7));}
/* Variante camembert sur fond blanc (page dédiée) */
.section-light .donut-panel-xl{background:#fff; border:1px solid var(--n300); box-shadow:0 30px 70px -34px rgba(10,30,61,0.18);}
.section-light .donut-track{stroke:var(--n300);}
.section-light .donut-center .v{color:var(--navy-900); text-shadow:none;}
.section-light .donut-center .k{color:#8A93A6;}
.section-light .dslider-label{color:var(--ink);}
.section-light .dslider-pct{color:var(--navy-900);}
.section-light .dslider-row input[type=range]{background:var(--n300);}
.section-light .donut-dim-btn{border-color:var(--n300); color:#5A6478; background:#fff;}
.section-light .donut-dim-btn:hover{color:var(--navy-900); border-color:rgba(201,162,75,0.5);}
.section-light .donut-dim-btn.active{background:var(--gold-500); color:var(--navy-900); border-color:var(--gold-500);}
.section-light .donut-cta{border-top-color:var(--n300);}
.section-light .donut-cta p{color:#5A6478;}
.section-light .donut-ring-deco{stroke:rgba(201,162,75,0.3);}
/* Variante échelle de lots (fidelity-ladder) sur fond blanc */
.section-light .fl-prize{color:var(--navy-900);}
.section-light .fl-item.featured .fl-prize{color:var(--gold-600);}
.section-light .fl-bar{background:var(--n300);}
.section-light .fidelity-earn-item{background:#fff; border-color:var(--n300);}
.section-light .fidelity-earn-item p{color:#5A6478;}
.section-light .fidelity-earn-item strong{color:var(--navy-900);}

/* ============ LAUNCH POPUP (7 500 premiers inscrits) ============ */
.lp-overlay{
  position:fixed; inset:0; z-index:400; background:rgba(6,14,28,0.62); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  display:flex; align-items:center; justify-content:center; padding:24px;
  opacity:0; pointer-events:none; transition:opacity .5s var(--ease);
}
.lp-overlay.open{opacity:1; pointer-events:auto;}
.lp-card{
  position:relative; width:100%; max-width:900px; background:#fff; border-radius:28px; overflow:hidden;
  display:grid; grid-template-columns:0.9fr 1.1fr; box-shadow:0 60px 120px -30px rgba(0,0,0,0.55);
  transform:translateY(26px) scale(0.97); opacity:0; transition:transform .6s var(--ease), opacity .55s var(--ease);
  max-height:88vh;
}
.lp-overlay.open .lp-card{transform:translateY(0) scale(1); opacity:1;}
@media(max-width:760px){ .lp-card{grid-template-columns:1fr; max-height:92vh; overflow-y:auto;} .lp-photo{min-height:220px;} }
.lp-photo{position:relative; overflow:hidden; min-height:100%;}
.lp-photo img{width:100%; height:100%; object-fit:cover; object-position:center center; display:block;}
.lp-photo-scrim{position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,20,40,0.04) 0%, rgba(10,20,40,0.02) 55%, rgba(10,20,40,0.5) 100%);}
.lp-proof{position:absolute; left:20px; bottom:20px; right:20px; display:flex; align-items:center; gap:12px;}
.lp-avatars{display:flex;}
.lp-avatars img{width:36px; height:36px; border-radius:50%; object-fit:cover; border:2.5px solid #fff; margin-left:-10px; box-shadow:0 4px 10px rgba(0,0,0,0.25);}
.lp-avatars img:first-child{margin-left:0;}
.lp-proof-txt{font-size:12px; color:#fff; font-weight:600; line-height:1.3; text-shadow:0 1px 4px rgba(0,0,0,0.35);}
.lp-proof-txt span{display:block; font-weight:400; color:rgba(255,255,255,0.85); font-size:11px;}
.lp-body{padding:40px 40px 34px; display:flex; flex-direction:column; justify-content:center; overflow-y:auto;}
.lp-close{
  position:absolute; top:16px; right:16px; z-index:2; width:34px; height:34px; border-radius:50%;
  background:rgba(120,130,150,0.12); border:none; color:var(--n500); font-size:15px;
  display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all .2s;
}
.lp-close:hover{background:rgba(120,130,150,0.2); color:var(--ink);}
.lp-logo{display:flex; flex-direction:column; align-items:center; margin-bottom:24px;}
.lp-logo-img{width:min(260px, 68%); height:auto; display:block;}
.lp-tag{
  font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; font-weight:700;
  color:var(--gold-600); margin-bottom:14px;
}
.lp-h2{font-family:var(--display); font-size:clamp(22px,2.8vw,28px); font-weight:700; line-height:1.15; color:var(--navy-900); margin-bottom:12px;}
.lp-h2 em{font-style:normal; color:var(--gold-600);}
.lp-sub{font-size:14px; color:#5A6478; line-height:1.6; margin-bottom:22px; max-width:400px;}
.lp-cta{
  background:var(--navy-900); color:#fff; font-weight:700; font-size:14.5px; padding:15px 26px;
  border-radius:100px; border:none; display:inline-flex; align-items:center; gap:10px; cursor:pointer;
  transition:all .25s var(--ease); width:fit-content; margin-bottom:12px;
}
.lp-cta:hover{background:var(--gold-600); transform:translateY(-2px); box-shadow:0 14px 30px -10px rgba(10,30,61,0.4);}
.lp-dismiss{background:none; border:none; color:var(--n500); font-size:12.5px; font-weight:600; cursor:pointer; width:fit-content; padding:4px 0;}
.lp-dismiss:hover{color:var(--navy-900);}
.lp-fine{font-size:10.5px; color:var(--n500); margin-top:18px; max-width:400px; line-height:1.5;}

/* Audio Toggle Button */
.audio-toggle-btn {
  position: fixed;
  bottom: 24px;
  right: 24px;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: var(--navy-900);
  color: #fff;
  border: 2px solid var(--gold-300);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 9999;
  box-shadow: 0 10px 25px rgba(10,30,61,0.2);
  transition: all 0.3s ease;
}
.audio-toggle-btn:hover {
  transform: translateY(-3px) scale(1.05);
  box-shadow: 0 15px 30px rgba(10,30,61,0.3);
  background: var(--gold-500);
  border-color: var(--gold-500);
}
