/* Immoteep v3: one reading column, each section answers one question.
   Fraunces for figures and titles, Inter for reading; paper, forest and
   emerald. Light theme only. */
:root{
  --font-serif:"Fraunces",Georgia,"Times New Roman",serif;
  --font-sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --paper:#f7f4ee; --surface:#fffefb; --surface-2:#f0ebe1;
  --ink:#17201b; --ink-soft:#3a443e; --muted:#69716b; --line:#e5dfd2; --line-strong:#d2c9b6;
  --emerald:#0f6b4f; --emerald-soft:#e3f0e9; --emerald-ink:#073f30;
  --forest:#0e2a21; --forest-2:#163a2e; --mint:#9fd6bd; --on-forest:#eef6f1; --on-forest-soft:#b9cfc4;
  --clay:#b0502f; --clay-soft:#f7e8df; --gold:#9c7420; --gold-soft:#f6eed9;
  --dot-faint:rgba(15,107,79,.28); --band:rgba(15,107,79,.10);
  --r:12px; --r-lg:20px;
  --shadow:0 1px 2px rgba(23,32,27,.04),0 10px 30px -18px rgba(23,32,27,.22);
  --shadow-lift:0 2px 4px rgba(23,32,27,.05),0 22px 44px -22px rgba(23,32,27,.35);
  --bar-h:61px;
  --contours:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 480 400' fill='none' stroke='%239fd6bd' stroke-width='1'%3E%3Cpath d='M267.2 200.0 L267.7 202.2 L267.0 204.4 L265.2 206.3 L263.1 207.9 L261.0 209.2 L259.1 210.5 L257.3 211.7 L255.5 212.7 L253.5 213.5 L251.4 214.0 L249.3 214.2 L247.3 214.4 L245.5 214.8 L243.7 215.4 L241.9 216.1 L240.0 216.7 L238.0 217.0 L235.9 216.8 L234.0 216.3 L232.1 215.6 L230.1 215.1 L227.8 214.9 L225.0 215.0 L221.8 214.9 L218.6 214.4 L216.1 213.1 L214.8 211.1 L215.0 208.5 L216.6 205.8 L219.0 203.4 L221.4 201.5 L223.2 200.0 L224.0 198.7 L223.8 197.4 L223.1 195.8 L222.5 194.0 L222.2 192.2 L222.5 190.4 L223.3 188.8 L224.4 187.2 L225.6 185.6 L226.9 184.0 L228.5 182.4 L230.5 181.1 L232.7 180.3 L235.1 180.0 L237.6 180.2 L240.0 180.6 L242.3 181.1 L244.5 181.4 L246.8 181.7 L248.9 182.3 L250.9 183.3 L252.3 184.9 L252.9 187.1 L252.9 189.4 L252.6 191.5 L252.7 193.1 L253.6 194.1 L255.6 194.7 L258.7 195.4 L262.1 196.4 L265.2 198.0Z'/%3E%3Cpath d='M287.6 200.0 L288.2 203.9 L286.4 207.6 L283.2 210.8 L279.4 213.4 L275.8 215.7 L272.6 217.8 L269.6 219.9 L266.5 221.7 L263.2 223.1 L259.6 224.0 L256.0 224.6 L252.6 225.0 L249.5 225.6 L246.4 226.6 L243.3 227.8 L240.0 228.8 L236.5 229.3 L233.0 229.1 L229.6 228.2 L226.3 227.2 L222.7 226.5 L218.6 226.2 L213.7 226.3 L208.2 226.1 L202.8 225.0 L198.7 222.6 L196.7 219.0 L197.5 214.5 L200.5 209.8 L204.7 205.8 L208.8 202.5 L211.6 200.0 L212.5 197.8 L211.9 195.4 L210.5 192.7 L209.2 189.5 L208.8 186.3 L209.4 183.2 L210.8 180.4 L212.7 177.7 L214.9 175.0 L217.4 172.2 L220.2 169.6 L223.5 167.4 L227.4 166.0 L231.6 165.5 L235.9 165.7 L240.0 166.5 L243.9 167.3 L247.8 167.9 L251.6 168.6 L255.3 169.6 L258.6 171.5 L260.9 174.4 L261.9 178.1 L261.9 182.0 L261.6 185.5 L261.9 188.0 L263.8 189.6 L267.7 190.6 L273.2 191.7 L279.2 193.6 L284.4 196.4Z'/%3E%3Cpath d='M308.3 200.0 L308.7 205.5 L305.7 210.7 L300.8 215.1 L295.3 218.8 L290.1 222.0 L285.6 225.0 L281.5 228.0 L277.4 230.6 L272.8 232.7 L267.8 234.1 L262.8 234.9 L257.9 235.5 L253.5 236.4 L249.2 237.8 L244.7 239.5 L240.0 240.9 L235.0 241.6 L230.0 241.4 L225.1 240.3 L220.3 239.0 L215.1 238.2 L209.1 237.9 L202.0 238.0 L194.2 237.6 L186.8 235.8 L181.3 232.1 L179.1 226.7 L180.6 220.2 L185.2 213.6 L191.2 208.0 L196.8 203.5 L200.3 200.0 L201.2 196.9 L199.8 193.4 L197.5 189.4 L195.5 184.9 L194.9 180.2 L195.8 175.8 L198.1 171.8 L201.0 168.0 L204.3 164.3 L207.8 160.5 L211.8 156.8 L216.6 153.7 L222.1 151.7 L228.1 150.9 L234.2 151.3 L240.0 152.3 L245.6 153.5 L251.0 154.5 L256.4 155.6 L261.6 157.2 L266.0 160.1 L269.1 164.3 L270.5 169.5 L270.6 174.9 L270.3 179.6 L271.1 182.9 L274.4 184.9 L280.4 186.3 L288.5 187.9 L297.1 190.7 L304.3 194.8Z'/%3E%3Cpath d='M329.4 200.0 L329.1 207.2 L324.7 213.8 L318.0 219.4 L310.6 224.0 L304.0 228.1 L298.4 232.0 L293.3 235.9 L288.1 239.5 L282.3 242.3 L276.0 244.2 L269.5 245.3 L263.3 246.1 L257.5 247.2 L251.9 249.0 L246.1 251.1 L240.0 253.0 L233.5 254.0 L227.0 253.7 L220.6 252.6 L214.2 251.2 L207.3 250.2 L199.3 250.0 L190.0 250.0 L180.0 249.2 L170.7 246.6 L164.2 241.5 L161.9 234.2 L164.4 225.7 L170.7 217.2 L178.5 210.0 L185.4 204.4 L189.4 200.0 L189.8 195.9 L187.4 191.4 L184.0 186.1 L181.3 180.1 L180.5 173.9 L182.0 168.2 L185.1 163.1 L189.1 158.3 L193.5 153.6 L198.2 148.7 L203.5 144.0 L209.7 140.0 L216.8 137.4 L224.6 136.4 L232.4 136.9 L240.0 138.2 L247.2 139.7 L254.3 141.1 L261.2 142.7 L267.7 145.1 L273.3 149.0 L277.1 154.5 L278.8 161.2 L279.0 168.0 L279.0 173.8 L280.6 177.8 L285.4 180.1 L293.8 181.7 L304.7 183.9 L315.9 187.6 L324.8 193.2Z'/%3E%3Cpath d='M350.7 200.0 L349.5 208.8 L343.4 216.9 L334.6 223.5 L325.5 229.0 L317.4 233.9 L310.8 238.8 L304.9 243.7 L298.8 248.2 L291.9 251.8 L284.2 254.2 L276.3 255.6 L268.6 256.6 L261.5 258.0 L254.6 260.2 L247.5 262.8 L240.0 265.1 L232.0 266.4 L223.9 266.3 L215.9 265.1 L207.9 263.6 L199.2 262.6 L189.1 262.4 L177.7 262.3 L165.5 261.1 L154.7 257.4 L147.3 250.8 L145.3 241.5 L149.0 230.9 L157.1 220.6 L166.6 212.0 L174.6 205.3 L178.7 200.0 L178.3 195.0 L174.7 189.3 L170.0 182.6 L166.5 175.1 L165.8 167.5 L167.8 160.5 L172.0 154.2 L177.2 148.5 L182.8 142.8 L188.6 137.0 L195.2 131.2 L202.8 126.3 L211.5 123.1 L221.0 121.8 L230.7 122.4 L240.0 124.1 L248.9 126.0 L257.5 127.9 L265.9 130.1 L273.7 133.3 L280.3 138.2 L284.7 145.1 L286.8 153.3 L287.2 161.3 L287.6 168.0 L290.3 172.4 L297.0 175.0 L308.0 176.9 L321.7 179.7 L335.3 184.5 L345.7 191.5Z'/%3E%3Cpath d='M372.0 200.0 L369.6 210.5 L361.5 219.8 L350.7 227.5 L339.8 233.9 L330.5 239.7 L323.0 245.5 L316.4 251.4 L309.5 257.0 L301.4 261.4 L292.4 264.3 L283.0 266.0 L273.9 267.2 L265.5 268.8 L257.3 271.3 L248.9 274.4 L240.0 277.2 L230.5 278.9 L220.8 278.9 L211.2 277.8 L201.4 276.4 L190.8 275.5 L178.7 275.2 L165.0 274.9 L150.9 273.0 L138.6 268.2 L130.8 259.8 L129.3 248.5 L134.5 235.8 L144.3 223.8 L155.4 213.8 L164.1 206.1 L168.0 200.0 L166.6 194.1 L161.5 187.2 L155.5 179.0 L151.3 169.9 L150.6 160.8 L153.4 152.5 L158.7 145.3 L165.2 138.7 L172.0 132.1 L179.1 125.2 L186.8 118.4 L195.9 112.6 L206.2 108.7 L217.5 107.2 L228.9 107.9 L240.0 109.9 L250.5 112.4 L260.6 114.9 L270.4 117.7 L279.5 121.8 L287.0 127.9 L292.0 136.1 L294.5 145.6 L295.2 154.7 L296.3 162.1 L300.4 166.9 L309.2 169.7 L322.9 171.8 L339.5 175.3 L355.5 181.2 L367.2 189.7Z'/%3E%3Cpath d='M393.4 200.0 L389.4 212.1 L379.2 222.7 L366.2 231.4 L353.6 238.6 L343.2 245.2 L335.0 252.0 L327.8 259.1 L320.1 265.7 L311.0 270.9 L300.6 274.4 L289.8 276.3 L279.3 277.7 L269.4 279.6 L260.0 282.4 L250.3 286.0 L240.0 289.4 L229.0 291.5 L217.7 291.9 L206.4 290.9 L194.8 289.5 L182.2 288.7 L168.0 288.4 L152.2 287.7 L136.3 285.0 L122.8 278.9 L114.7 268.7 L114.0 255.2 L120.7 240.5 L132.3 226.8 L144.8 215.5 L154.0 206.9 L157.4 200.0 L154.5 193.1 L147.7 184.9 L140.3 175.2 L135.5 164.5 L135.0 154.0 L138.8 144.5 L145.4 136.3 L153.2 128.8 L161.3 121.4 L169.5 113.5 L178.5 105.7 L188.9 98.9 L200.9 94.4 L214.0 92.6 L227.2 93.4 L240.0 95.8 L252.1 98.9 L263.8 102.1 L274.9 105.7 L285.1 110.8 L293.4 118.0 L299.1 127.5 L301.9 138.1 L303.2 148.2 L305.2 156.1 L310.9 161.1 L322.2 164.0 L338.7 166.5 L358.1 170.6 L376.3 177.8 L388.9 188.0Z'/%3E%3Cpath d='M414.6 200.0 L408.8 213.6 L396.3 225.5 L381.1 235.1 L366.9 243.1 L355.5 250.6 L346.8 258.5 L339.2 266.7 L330.8 274.4 L320.6 280.5 L308.9 284.5 L296.5 286.7 L284.5 288.2 L273.4 290.2 L262.7 293.5 L251.7 297.6 L240.0 301.6 L227.5 304.3 L214.5 305.0 L201.4 304.3 L187.9 303.1 L173.3 302.3 L157.0 301.8 L139.2 300.7 L121.6 297.1 L107.2 289.4 L99.1 277.2 L99.4 261.6 L107.8 244.9 L121.1 229.6 L134.8 217.2 L144.2 207.7 L146.6 200.0 L142.1 192.1 L133.4 182.6 L124.6 171.3 L119.3 159.0 L119.1 147.0 L124.0 136.4 L132.0 127.3 L141.3 119.0 L150.6 110.7 L160.0 101.8 L170.2 92.9 L182.0 85.1 L195.6 79.9 L210.4 77.9 L225.5 78.9 L240.0 81.8 L253.7 85.6 L266.8 89.5 L279.2 94.0 L290.5 100.1 L299.7 108.5 L305.9 119.1 L309.2 130.8 L311.1 141.7 L314.4 150.0 L322.0 155.1 L335.8 158.0 L355.4 160.8 L377.5 165.8 L397.6 174.3 L410.9 186.2Z'/%3E%3Cpath d='M435.5 200.0 L427.6 215.2 L412.7 228.2 L395.4 238.7 L379.7 247.4 L367.6 255.9 L358.5 264.9 L350.5 274.4 L341.5 283.2 L330.2 290.2 L317.1 294.6 L303.2 297.0 L289.8 298.6 L277.3 300.8 L265.3 304.5 L253.1 309.3 L240.0 314.0 L225.9 317.3 L211.2 318.5 L196.3 318.1 L180.8 317.1 L164.2 316.3 L145.8 315.6 L126.1 313.8 L107.0 309.0 L91.9 299.7 L84.1 285.4 L85.6 267.7 L95.6 249.0 L110.6 232.2 L125.2 218.7 L134.4 208.5 L135.5 200.0 L129.1 191.0 L118.5 180.2 L108.3 167.2 L102.5 153.3 L103.0 139.9 L109.1 128.3 L118.6 118.3 L129.3 109.3 L139.9 100.0 L150.4 90.1 L161.8 80.0 L175.0 71.3 L190.2 65.4 L206.8 63.2 L223.7 64.5 L240.0 68.0 L255.3 72.4 L269.8 77.3 L283.4 82.7 L295.7 89.8 L305.6 99.3 L312.5 111.0 L316.4 123.7 L319.2 135.1 L323.8 143.6 L333.6 148.7 L350.2 151.7 L372.8 154.9 L397.7 160.8 L419.4 170.7 L432.9 184.4Z'/%3E%3Cpath d='M456.1 200.0 L445.9 216.6 L428.5 230.7 L409.1 242.1 L392.1 251.7 L379.4 261.1 L370.1 271.3 L361.9 282.0 L352.2 292.0 L339.9 299.8 L325.3 304.7 L309.9 307.3 L295.0 308.9 L281.2 311.3 L268.0 315.5 L254.5 321.0 L240.0 326.5 L224.3 330.5 L207.9 332.4 L191.0 332.4 L173.6 331.5 L154.9 330.6 L134.4 329.6 L112.9 327.0 L92.6 320.9 L77.0 309.7 L69.8 293.3 L72.6 273.4 L84.3 252.9 L100.7 234.6 L115.9 220.2 L124.6 209.3 L124.1 200.0 L115.5 189.9 L102.9 177.6 L91.4 163.0 L85.4 147.5 L86.6 132.8 L94.1 120.0 L105.3 109.3 L117.5 99.5 L129.3 89.4 L140.9 78.4 L153.4 67.2 L168.0 57.4 L184.8 50.8 L203.2 48.5 L222.0 50.0 L240.0 54.2 L256.9 59.6 L272.7 65.4 L287.4 71.9 L300.6 80.0 L311.4 90.5 L318.9 103.2 L323.5 116.5 L327.3 128.4 L333.7 137.0 L345.8 142.0 L365.4 145.0 L391.1 148.7 L418.5 155.6 L441.6 167.1 L455.0 182.6Z'/%3E%3Cpath d='M489.9 40.0 L487.8 41.4 L486.0 42.6 L484.9 43.7 L484.4 44.9 L484.3 46.3 L484.2 47.8 L483.6 49.1 L482.4 50.1 L480.7 50.7 L478.9 50.9 L477.1 51.0 L475.7 51.3 L474.4 52.0 L473.2 53.2 L471.8 54.6 L470.0 56.0 L468.0 56.9 L465.8 57.3 L463.7 57.1 L461.7 56.5 L459.9 55.6 L458.3 54.4 L457.1 52.9 L456.3 51.2 L456.1 49.4 L456.4 47.5 L457.1 45.7 L457.7 44.2 L457.9 43.0 L457.2 42.1 L455.8 41.1 L453.9 40.0 L452.0 38.5 L450.7 36.9 L450.4 35.1 L451.2 33.6 L452.6 32.4 L454.2 31.4 L455.7 30.4 L456.9 29.3 L457.9 27.9 L458.9 26.3 L460.2 24.9 L461.9 24.0 L464.0 23.8 L466.2 24.2 L468.2 25.2 L470.0 26.4 L471.5 27.5 L472.8 28.4 L474.1 28.9 L475.4 29.2 L476.8 29.5 L478.3 29.8 L479.9 30.1 L481.7 30.4 L483.9 30.7 L486.3 31.1 L488.8 31.8 L491.0 32.9 L492.3 34.5 L492.5 36.3 L491.6 38.3Z'/%3E%3Cpath d='M504.4 40.0 L500.9 42.5 L498.0 44.6 L496.2 46.5 L495.7 48.7 L495.6 51.2 L495.4 53.9 L494.2 56.3 L491.9 58.0 L488.9 58.9 L485.6 59.2 L482.6 59.4 L480.1 60.0 L478.0 61.6 L475.8 63.9 L473.2 66.6 L470.0 69.0 L466.3 70.7 L462.4 71.3 L458.6 70.7 L455.2 69.4 L452.1 67.4 L449.6 65.1 L447.6 62.4 L446.3 59.4 L446.0 56.1 L446.5 52.9 L447.5 49.8 L448.3 47.4 L448.2 45.4 L446.8 43.8 L444.0 42.1 L440.4 40.0 L437.2 37.4 L435.2 34.3 L435.0 31.3 L436.5 28.6 L439.2 26.5 L442.1 24.7 L444.7 23.0 L446.7 20.9 L448.3 18.3 L450.1 15.5 L452.5 13.1 L455.6 11.5 L459.4 11.3 L463.3 12.4 L466.9 14.4 L470.0 16.6 L472.6 18.5 L474.9 19.8 L477.2 20.5 L479.7 20.9 L482.3 21.1 L485.1 21.5 L488.2 21.8 L491.6 22.3 L495.5 22.8 L499.8 23.7 L504.0 25.1 L507.5 27.3 L509.5 30.2 L509.5 33.6 L507.6 37.0Z'/%3E%3Cpath d='M518.2 40.0 L513.4 43.5 L509.5 46.5 L507.5 49.3 L507.0 52.6 L507.1 56.3 L506.7 60.1 L504.8 63.4 L501.4 65.8 L497.0 66.9 L492.2 67.3 L488.0 67.7 L484.6 68.9 L481.6 71.4 L478.5 75.0 L474.7 79.1 L470.0 82.7 L464.6 85.0 L458.9 85.6 L453.6 84.5 L448.7 82.1 L444.6 79.0 L441.2 75.4 L438.6 71.4 L437.0 67.0 L436.6 62.5 L437.2 58.0 L438.3 53.9 L439.0 50.5 L438.3 47.9 L435.7 45.6 L431.3 43.1 L426.2 40.0 L421.8 36.1 L419.3 31.7 L419.5 27.4 L422.0 23.7 L426.0 20.7 L430.2 18.2 L433.7 15.6 L436.4 12.4 L438.6 8.6 L441.1 4.6 L444.7 1.1 L449.4 -0.8 L454.9 -0.8 L460.5 1.0 L465.7 4.1 L470.0 7.3 L473.6 9.9 L476.9 11.6 L480.3 12.3 L483.9 12.4 L488.0 12.4 L492.3 12.6 L497.0 13.1 L502.1 13.7 L507.7 14.6 L513.7 16.0 L519.5 18.3 L524.0 21.7 L526.3 26.0 L525.9 30.9 L522.9 35.7Z'/%3E%3Cpath d='M531.3 40.0 L525.3 44.5 L520.9 48.3 L518.7 52.1 L518.5 56.5 L518.7 61.4 L518.1 66.4 L515.5 70.6 L510.8 73.5 L504.9 74.8 L498.8 75.3 L493.4 76.0 L489.1 77.9 L485.4 81.6 L481.3 86.7 L476.3 92.3 L470.0 97.0 L462.8 99.8 L455.4 100.1 L448.5 98.1 L442.4 94.6 L437.4 90.1 L433.3 85.1 L430.2 79.8 L428.3 74.2 L427.8 68.4 L428.3 62.8 L429.3 57.9 L429.5 53.8 L427.9 50.5 L423.9 47.5 L417.9 44.2 L411.3 40.0 L405.9 34.8 L403.2 29.1 L403.9 23.6 L407.6 18.8 L412.9 15.0 L418.3 11.7 L422.7 8.2 L426.0 3.9 L428.7 -1.2 L432.1 -6.5 L436.9 -10.8 L443.2 -13.0 L450.5 -12.6 L457.9 -9.8 L464.5 -5.6 L470.0 -1.4 L474.6 1.9 L478.8 3.6 L483.3 4.0 L488.4 3.7 L493.9 3.3 L499.9 3.3 L506.3 3.7 L513.2 4.6 L520.6 6.0 L528.1 8.2 L535.1 11.5 L540.3 16.1 L542.7 21.9 L541.6 28.3 L537.4 34.6Z'/%3E%3Cpath d='M543.8 40.0 L536.9 45.4 L532.1 50.1 L530.1 54.9 L530.1 60.4 L530.6 66.5 L529.6 72.6 L526.1 77.7 L520.0 81.0 L512.6 82.6 L505.2 83.2 L498.9 84.3 L493.8 87.1 L489.3 92.2 L484.3 99.0 L478.0 106.2 L470.0 111.9 L461.0 114.9 L451.9 114.7 L443.5 111.7 L436.3 106.7 L430.5 100.6 L425.8 94.2 L422.4 87.6 L420.2 80.8 L419.4 74.0 L419.7 67.6 L420.2 61.8 L419.7 57.1 L416.9 53.2 L411.4 49.6 L403.8 45.3 L395.8 40.0 L389.6 33.5 L386.9 26.5 L388.4 19.7 L393.4 14.0 L400.0 9.3 L406.5 5.2 L411.7 0.7 L415.4 -4.8 L418.7 -11.3 L423.0 -17.7 L429.1 -22.8 L437.2 -25.0 L446.4 -23.9 L455.4 -20.0 L463.4 -14.6 L470.0 -9.4 L475.5 -5.8 L480.7 -4.3 L486.4 -4.5 L493.0 -5.5 L500.2 -6.4 L508.1 -6.7 L516.3 -6.2 L524.9 -5.0 L533.8 -3.0 L542.8 0.1 L550.7 4.6 L556.4 10.7 L558.5 18.0 L556.6 25.9 L551.1 33.5Z'/%3E%3C/svg%3E");
}

*{box-sizing:border-box}
html{scroll-padding-top:calc(var(--bar-h) + 64px)}
body{background:var(--paper);color:var(--ink);font:16px/1.6 var(--font-sans);margin:0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.wrap{max-width:1120px;margin:0 auto;padding-inline:16px}
@media (min-width:600px){.wrap{padding-inline:24px}}
h1,h2,h3{font-family:var(--font-serif);font-weight:500;text-wrap:balance;margin:0;font-optical-sizing:auto}
.num{font-variant-numeric:tabular-nums}
a{color:var(--emerald)}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--emerald);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* top bar */
header.bar{position:sticky;top:0;z-index:1100;background:color-mix(in srgb,var(--surface) 97%,transparent);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--line)}
header.bar .wrap{display:flex;gap:16px;align-items:center;padding-block:10px;flex-wrap:wrap}
.brand{font-family:var(--font-serif);font-size:21px;font-weight:600;color:var(--ink);text-decoration:none;display:flex;gap:9px;align-items:center;letter-spacing:-.01em}
.brand svg{width:30px;height:30px;padding:5px;border-radius:9px;background:var(--forest);color:var(--mint)}
.brand .beta{font-family:var(--font-sans,system-ui,sans-serif);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--emerald-ink);background:var(--emerald-soft);border-radius:999px;padding:2px 7px;margin-left:-3px;align-self:center}
.search{flex:1;min-width:200px;max-width:520px;position:relative;margin:0}
.search input{width:100%;color:var(--ink);padding:10px 14px 10px 38px;border:1px solid var(--line);border-radius:999px;background:var(--paper);transition:border-color .15s,box-shadow .15s,background .15s}
.search input:focus{outline:none;background:var(--surface);border-color:var(--emerald);box-shadow:0 0 0 4px var(--emerald-soft)}
.search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--muted)}
.sugg{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 12px 30px -12px rgba(0,0,0,.25);padding:6px;display:grid}
.sugg[hidden]{display:none}
.sugg a{padding:8px 10px;border-radius:8px;display:flex;justify-content:space-between;gap:8px;color:var(--ink);text-decoration:none}
.sugg a:hover,.sugg a:focus-visible{background:var(--emerald-soft)}
.sugg small{color:var(--muted)}
.navlinks{display:flex;gap:4px;align-items:center;margin-left:auto}

/* hero */
.hero{padding-block:28px 40px;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:40px;align-items:start}
.eyebrow{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600}
.hero h1{font-size:clamp(44px,7vw,84px);line-height:.98;margin-top:10px;letter-spacing:-.025em;overflow-wrap:anywhere;font-weight:450}
.hero h1 .cp{display:block;font-family:var(--font-sans);font-size:15px;letter-spacing:0;color:var(--muted);font-weight:500;margin-top:12px}
.brief{margin:26px 0 0;display:grid;gap:0;border-top:1px solid var(--line)}
.brief div{display:grid;grid-template-columns:112px minmax(0,1fr);gap:16px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--line)}
.brief dt{font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--emerald);font-weight:700}
.brief dd{margin:0;font-size:16px;color:var(--ink-soft);max-width:62ch}
.keyfig{position:relative;overflow:hidden;background:var(--forest);color:var(--on-forest);border-radius:var(--r-lg);padding:24px 24px 18px;display:grid;gap:18px;box-shadow:var(--shadow-lift);margin-top:28px}
.keyfig::before{content:"";position:absolute;inset:0;background:var(--contours) right -120px top -90px/420px auto no-repeat;opacity:.22;pointer-events:none}
.keyfig>*{position:relative}
.keyfig .kf-title{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mint);font-weight:700}
.keyfig .row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.1)}
.keyfig .lab{color:var(--on-forest-soft);font-size:14px;line-height:1.3}
.keyfig .lab small{font-size:12px;opacity:.85}
.keyfig .val{font-family:var(--font-serif);font-size:40px;font-weight:450;white-space:nowrap;letter-spacing:-.02em;line-height:1}
.keyfig .val.small{font-size:28px}
.keyfig .val small{font-family:var(--font-sans);font-size:13px;color:var(--on-forest-soft);font-weight:400;letter-spacing:0}
.keyfig .foot{font-size:12px;color:var(--on-forest-soft)}
.keyfig a{color:var(--mint)}

/* sections */
section.blk{padding-block:56px 8px}
.blk-head{display:flex;justify-content:space-between;align-items:end;gap:12px 20px;flex-wrap:wrap;margin-bottom:24px}
.blk-head h2{font-size:clamp(26px,3.4vw,36px);line-height:1.1;letter-spacing:-.015em}
.q{display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--emerald);margin-bottom:10px}
.q::before{content:"";width:22px;height:2px;border-radius:2px;background:currentColor}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:4px;background:var(--surface-2)}
.seg button{border:0;background:transparent;border-radius:999px;padding:7px 16px;cursor:pointer;font-size:14px;font-weight:500;color:var(--ink-soft);transition:background .15s,color .15s}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 3px rgba(23,32,27,.12)}
html:not(.js) .seg{display:none}
.js [data-type-panel]:not(.on){display:none}
.js .type-title{display:none}
.type-title{font-size:20px;margin:0 0 10px}
[data-type-panel]+[data-type-panel]{margin-top:28px}
.js [data-type-panel]+[data-type-panel]{margin-top:0}
.grid2{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr);gap:28px;align-items:start}
.big{font-family:var(--font-serif);font-size:60px;line-height:1;font-weight:450;letter-spacing:-.025em}
.big small{font-size:18px;color:var(--muted);font-family:var(--font-sans)}
.lede{font-size:17px;color:var(--ink-soft);margin:10px 0 0;max-width:68ch}
.facts{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:8px;font-size:14px;color:var(--ink-soft)}
.facts li{display:flex;gap:8px}
.facts li::before{content:"";flex:0 0 6px;height:6px;border-radius:50%;background:var(--emerald);margin-top:8px}
.pol-blocs{margin-top:16px}
.bloc-bars{display:grid;grid-template-columns:auto 1fr;gap:8px 12px;align-items:center;margin-top:12px;font-size:13px;color:var(--muted)}
.bloc-bar{display:flex;height:14px;border-radius:7px;overflow:hidden;background:var(--surface-2)}
.bloc-legend{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13.5px;color:var(--ink-soft)}
.bloc-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px}
.bloc-legend small{color:var(--muted)}
.b-left{background:#c4473a}.b-centre{background:#d9a62e}.b-right{background:#3f6fa8}.b-far_right{background:#26304f}.b-other{background:var(--line-strong)}
.pol-all summary{cursor:pointer;font-size:13px;color:var(--emerald);margin-top:10px}
.pol-round{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px 22px;min-width:0;box-shadow:var(--shadow)}
.card h3{font-family:var(--font-sans);font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px}
svg.chart{width:100%;height:auto;display:block;overflow:visible}
svg.chart text{fill:var(--muted);font:12px var(--font-sans)}
svg.chart text.em{fill:var(--emerald);font-weight:600}
svg.chart text.strong{fill:var(--ink);font-weight:600}
svg.chart text.ink{fill:var(--ink)}
.caption{font-size:12.5px;color:var(--muted);margin-top:8px}
.warn{display:flex;gap:10px;background:var(--gold-soft);color:var(--ink-soft);border-radius:14px;border:1px solid #ecdcb2;padding:12px 16px;font-size:14px;margin-top:14px}
.warn b{color:var(--gold)}

/* living */
.live{display:grid;gap:14px}
.liverow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:24px;align-items:center}
.liverow h3{font-size:20px;margin-bottom:4px;font-family:var(--font-serif);color:var(--ink);letter-spacing:0}
.liverow p{margin:0;color:var(--ink-soft);font-size:14.5px}
.pill{display:inline-block;font-size:12px;font-weight:600;padding:2px 9px;border-radius:999px;margin-left:6px;vertical-align:middle;font-family:var(--font-sans)}
.pill.low{background:var(--clay-soft);color:var(--clay)}
.pill.mid{background:var(--surface-2);color:var(--ink-soft)}
.pill.high{background:var(--emerald-soft);color:var(--emerald)}

.partners{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.partners li{border:1px dashed var(--line-strong);border-radius:12px;padding:10px 12px;font-size:14px;color:var(--ink-soft)}
.partners small{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.partners a{margin-left:4px;font-weight:600}
section.blk.first{border-top:0}

/* sales table */
.tbl{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow)}
table{border-collapse:collapse;width:100%;font-size:14px;min-width:560px}
th,td{padding:9px 12px;text-align:left;border-top:1px solid var(--line);white-space:nowrap}
thead th{border-top:0;font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em;background:var(--surface-2)}
td.r,th.r{text-align:right;font-variant-numeric:tabular-nums}

/* search page */
.search-title{font-size:clamp(28px,4vw,40px);margin-bottom:16px}
.results{list-style:none;padding:0;margin:0;display:grid;gap:8px;font-size:17px}
.results small{color:var(--muted);font-size:13px}

.budget-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;align-items:center;max-width:640px}
.budget-form label{grid-column:1/-1;font-size:15px;color:var(--ink-soft)}
.budget-form label b{font-size:20px;color:var(--ink)}
.budget-form input[type=range]{width:100%;accent-color:var(--emerald)}
.budget-form button,.budget-alert button,.budget-alert .cta{border:0;border-radius:999px;background:var(--emerald);color:var(--surface);padding:9px 18px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block}
.js .budget-form button{display:none}
.budget-rows{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:6px;max-width:720px}
.budget-rows li{display:grid;grid-template-columns:minmax(0,14em) minmax(0,1fr) 5.5em;gap:12px;align-items:center;padding:6px 10px;border-radius:10px}
.budget-rows li.here{background:var(--emerald-soft)}
.budget-rows .name small{color:var(--muted);font-size:12.5px}
.budget-rows .bar{height:8px;border-radius:4px;background:var(--line)}
.budget-rows .bar i{display:block;height:100%;border-radius:4px;background:var(--emerald)}
.budget-rows b{text-align:right}
.budget-alert{margin-top:20px}
@media (max-width:560px){.budget-rows li{grid-template-columns:minmax(0,1fr) 5em}.budget-rows .bar{display:none}}

.mapv3{position:relative;height:calc(100vh - 64px);min-height:420px}
.mapv3 #map{position:absolute;inset:0;z-index:0}
.map-controls{position:absolute;z-index:500;top:12px;left:56px;right:12px;max-width:520px;display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 14px;box-shadow:0 2px 10px rgba(0,0,0,.08)}
.map-type{display:inline-flex;gap:4px;border:1px solid var(--line-strong);border-radius:999px;padding:3px;margin:0}
.map-type label{border-radius:999px;padding:5px 12px;cursor:pointer;font-size:14px;color:var(--ink-soft)}
.map-type label:has(input:checked){background:var(--emerald);color:var(--surface)}
.map-type input{position:absolute;opacity:0;pointer-events:none}
.map-type label:has(input:focus-visible){outline:2px solid var(--emerald);outline-offset:2px}
.map-budget{display:grid;gap:2px;flex:1 1 200px;font-size:14px;color:var(--ink-soft)}
.map-budget input{width:100%;accent-color:var(--emerald)}
.map-hint{position:absolute;z-index:500;top:84px;left:56px;right:12px;max-width:520px;background:var(--surface);border-radius:12px;padding:10px 14px;font-size:14px;margin:0}
.map-legend{position:absolute;z-index:500;bottom:24px;left:12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 12px;font-size:12px;color:var(--muted);display:grid;gap:4px}
.map-legend ol{list-style:none;margin:0;padding:0;display:flex;gap:2px}
.map-legend li{padding-top:12px;min-width:44px;text-align:center;background:linear-gradient(var(--swatch),var(--swatch)) top/100% 10px no-repeat}
.map-legend .na::before{content:"";display:inline-block;width:10px;height:10px;background:#c9c9c4;margin-right:6px;vertical-align:-1px}
.map-card{position:absolute;z-index:600;right:12px;bottom:24px;width:min(340px,calc(100% - 24px));background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px 18px;box-shadow:0 4px 18px rgba(0,0,0,.12)}
.map-card h2{font-size:22px;margin:0 24px 6px 0}
.map-card .big-line{font-family:var(--font-serif);font-size:24px;margin:0}
.map-card .close{position:absolute;top:8px;right:10px;border:0;background:transparent;font-size:22px;cursor:pointer;color:var(--muted)}
.map-card .cta{display:inline-block;margin-top:12px;font-weight:600}
@media (max-width:560px){.map-controls{left:12px;top:64px}.map-legend{bottom:12px}.map-card{bottom:84px}}

.sources{margin-top:64px;padding-block:28px 8px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}
.sources p{max-width:90ch}

@media (max-width:820px){
  .hero,.grid2,.liverow{grid-template-columns:minmax(0,1fr)}
  .hero{gap:20px}
  .big{font-size:40px}
  .brief div{grid-template-columns:minmax(0,1fr);gap:2px}
}

/* home (Task 20) */
.home-hero{padding-block:clamp(40px,10vh,96px) 24px;max-width:760px}
.home-hero h1{font-size:clamp(38px,7vw,68px);line-height:1.02;margin:8px 0 14px;letter-spacing:-.01em}
.home-hero .lede{font-size:17px;color:var(--ink-soft);max-width:60ch}
.search--big{display:flex;gap:8px;margin-top:24px;max-width:640px}
.search--big input{font-size:17px;padding:14px 16px 14px 44px}
.search--big svg{left:16px;width:20px;height:20px}
.search--big button{border:0;border-radius:999px;background:var(--emerald);color:var(--surface);padding:0 22px;font-weight:600;cursor:pointer}
.home-hint{color:var(--muted);font-size:14px;margin-top:12px}
.home-more{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;padding-block:24px 48px}
.home-more .card{display:grid;gap:4px;color:var(--ink);text-decoration:none}
.home-more .card span{color:var(--muted);font-size:14px}
.home-more .card:hover{border-color:var(--emerald)}

/* partner agency (Task 20) */
.agency-box{display:flex;gap:16px;align-items:center;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--emerald);border-radius:var(--r);padding:16px 18px;margin-top:20px;position:relative}
.agency-box img{width:64px;height:64px;object-fit:contain;flex:none}
.agency-box .eyebrow{color:var(--emerald)}
.agency-box h3{font-size:19px;margin:2px 0 4px}
.agency-box p{margin:0 0 8px;color:var(--muted);font-size:14px}
.agency-box .tag{position:absolute;top:10px;right:14px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.agency-box .actions{display:flex;flex-wrap:wrap;gap:14px;font-weight:600}
@media (max-width:560px){.agency-box{flex-direction:column;align-items:flex-start}}
.sales-cta{margin-top:12px}
.partner-blocks{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.partner-block{position:relative;background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--r);padding:16px 18px}
.partner-block h3{font-size:18px;margin:0 0 6px;padding-right:96px}
.partner-block p{margin:0 0 8px;color:var(--muted);font-size:14px}
.partner-block .monthly{color:var(--ink)}
.partner-block .hyp{font-size:12px}
.partner-block a{font-weight:600}
.partner-block .tag{position:absolute;top:10px;right:14px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}

/* Task 23 — header tools, breadcrumb, suggestions */
.navlinks a{font-size:14px;font-weight:600;color:var(--ink-soft);text-decoration:none;padding:7px 10px;border-radius:999px;white-space:nowrap}
.navlinks a:hover{background:var(--emerald-soft);color:var(--emerald)}
.sg-h{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:8px 10px 2px}
.sg-title{font-family:var(--font-sans);font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:20px 0 8px}
.crumbs{padding-top:20px;font-size:14px;color:var(--muted)}
.crumbs a{color:var(--emerald);text-decoration:none;font-weight:600}
.more{font-size:14px;font-weight:600;text-decoration:none}
.sub{font-family:var(--font-sans);font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:28px 0 12px}
.hero.single{grid-template-columns:minmax(0,1fr)}

/* quartiers map */
.qgrid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:20px;margin-top:18px;align-items:start}
.qmap-card{padding:12px}
.qmap{width:100%;height:auto;display:block;max-height:560px}
.qmap .iris{stroke:var(--surface);stroke-width:1.5;transition:filter .15s}
.qmap a:hover .iris,.qmap a:focus-visible .iris{filter:brightness(.92);stroke:var(--ink);stroke-width:2}
.qmap .iris.sel{stroke:var(--emerald);stroke-width:3}
.qmap .n{font:600 12px var(--font-sans);fill:var(--ink);text-anchor:middle;dominant-baseline:middle;pointer-events:none;paint-order:stroke;stroke:var(--surface);stroke-width:3px}
.qmap .sale{stroke:var(--surface);stroke-width:.8}
.qlegend{display:flex;flex-wrap:wrap;gap:6px 14px;padding:8px 4px 0;font-size:12px;color:var(--ink-soft)}
.qlegend span{display:flex;gap:6px;align-items:center}
.qlegend i{width:14px;height:10px;border-radius:2px;display:inline-block}
.qlegend i.round{width:10px;height:10px;border-radius:999px}
.qlegend i.sq{width:9px;height:9px;background:var(--surface);border:2px solid var(--ink)}
.qlegend i.here{background:var(--clay)}
.qlist{list-style:none;margin:0;padding:0;display:grid;gap:2px;max-height:560px;overflow:auto}
.qlist a{display:grid;grid-template-columns:2em minmax(0,1fr) auto;gap:8px;align-items:baseline;padding:8px 10px;border-radius:10px;color:var(--ink);text-decoration:none}
.qlist a:hover,.qlist a:focus-visible{background:var(--emerald-soft)}
.qlist .n{color:var(--muted);font-size:12px;font-weight:600}
.qlist .num{font-weight:600}
.qlist .none{font-size:12px;color:var(--muted)}
.qlist .grp>a .nm{font-weight:650}
.qsub{list-style:none;margin:0 0 4px 2em;padding:0;display:grid;gap:2px}
.qsub a{padding:5px 10px;font-size:14px}

/* star and oriented scales */
.star-wrap{display:flex;flex-wrap:wrap;gap:24px;align-items:center;margin-top:8px}
.star-card{flex:1 1 380px;padding:14px;min-width:0;max-width:520px}
.star{width:100%;height:auto;display:block}
.star .ring,.star .axis{fill:none;stroke:var(--line);stroke-width:1}
.star .lab{font:700 13px var(--font-sans);fill:var(--ink)}
.star .out{font:11px var(--font-sans);fill:var(--muted)}
.star .median{fill:none;stroke:var(--muted);stroke-width:1.5;stroke-dasharray:5 4}
.star .poly.s-q{fill:var(--emerald);fill-opacity:.18;stroke:var(--emerald);stroke-width:2.5;stroke-linejoin:round}
.star .poly.s-c{fill:none;stroke:#b07a2a;stroke-width:1.8;stroke-linejoin:round}
.star .dot.s-q{fill:var(--emerald);stroke:var(--emerald);stroke-width:1.8}
.star .dot.s-c{fill:#b07a2a;stroke:#b07a2a;stroke-width:1.5}
.star .dot.hollow{fill:var(--surface)}
.star-legend{display:flex;flex-wrap:wrap;gap:14px;padding:6px 6px 2px;font-size:12px;color:var(--ink-soft)}
.star-legend span{display:flex;gap:6px;align-items:center}
.sw{display:inline-block;width:16px}
.sw.s-q{height:10px;border-radius:2px;background:rgba(15,107,79,.25);border:2px solid var(--emerald)}
.sw.s-c{border-top:2px solid #b07a2a}
.sw.med{border-top:2px dashed var(--muted)}
.star-help{flex:1 1 280px;margin:0;font-size:16px;line-height:1.6;color:var(--ink-soft);max-width:52ch}
.scales{margin-top:18px;padding:0}
.scale{display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;align-items:center;padding:14px 20px;border-top:1px solid var(--line)}
.scale:first-child{border-top:0}
.scale-lab b{font-family:var(--font-serif);font-size:18px;font-weight:500}
.scale-lab small{display:block;font-size:12px;color:var(--muted)}
.scale-body{display:grid;gap:6px}
.verdict{font-size:14px;color:var(--ink-soft)}
.verdict.high{color:#0f6b4f}
.verdict.low{color:#9a4a1c}
.scale-bar{position:relative;height:8px;border-radius:999px;background:linear-gradient(90deg,#e9d9c4,#efeae0 50%,#cfe5d9);max-width:420px}
.scale-bar .mid{position:absolute;left:50%;top:-3px;bottom:-3px;border-left:1.5px dashed var(--muted)}
.scale-bar .mark{position:absolute;top:-4px;width:16px;height:16px;margin-left:-8px;border-radius:999px;background:var(--emerald);border:2px solid var(--surface);box-shadow:0 0 0 1px var(--emerald)}
.scale-bar .mark.s-c{top:-2px;width:12px;height:12px;margin-left:-6px;background:var(--surface);border:2px solid #b07a2a;box-shadow:none}
.scale-ends{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);max-width:420px}
.pill.high,.pill.low,.pill.mid{white-space:normal}

/* price range against the commune */
.ranges{display:grid;gap:18px}
.range-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:8px 18px;align-items:center}
.range-row small{display:block;font-size:12px;color:var(--muted)}
.range-row p{grid-column:2;margin:0;font-size:14px;color:var(--ink-soft)}
.range{position:relative;height:14px;border-radius:999px;background:var(--surface-2)}
.range .band{position:absolute;top:0;bottom:0;border-radius:999px;background:var(--band);border:1px solid var(--emerald)}
.range .med{position:absolute;top:-4px;bottom:-4px;width:3px;margin-left:-1.5px;background:var(--emerald);border-radius:2px}
.range .ref{position:absolute;top:-3px;width:12px;height:12px;margin-left:-6px;margin-top:4px;border-radius:999px;background:var(--surface);border:2px solid #b07a2a}

/* around an address */
.around-card{max-width:520px;padding:12px}
.around{width:100%;height:auto;display:block}
.around .zone{fill:var(--emerald-soft);fill-opacity:.5;stroke:var(--emerald);stroke-width:1.5;stroke-dasharray:6 4}
.around .school{fill:var(--surface);stroke:var(--ink);stroke-width:2}
.around .here{fill:var(--clay);stroke:var(--surface);stroke-width:3}

/* ideas and home scales */
.ideas{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:18px}
.idea{display:flex;flex-direction:column;gap:6px;color:var(--ink);text-decoration:none;padding:18px}
.idea:hover{border-color:var(--emerald)}
.idea h3{font-family:var(--font-serif);font-size:21px;font-weight:500;color:var(--ink);letter-spacing:0;margin:0}
.idea .where{font-size:13px;color:var(--muted)}
.idea .ppm{font-family:var(--font-serif);font-size:24px}
.idea .ppm small{font-family:var(--font-sans);font-size:13px;color:var(--muted)}
.idea .why{font-size:14px;font-weight:600;color:var(--emerald)}
.idea .caption{margin-top:auto}
.scales3{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;padding-top:28px}
.scales3 .card{display:grid;gap:4px}
.scales3 .card span:last-child{color:var(--muted);font-size:14px}
.scales3 .step{width:26px;height:26px;border-radius:999px;background:var(--emerald-soft);color:var(--emerald);font-weight:700;display:grid;place-items:center;font-size:13px}

@media (max-width:820px){
  .qgrid,.scale,.range-row{grid-template-columns:minmax(0,1fr)}
  .range-row p{grid-column:1}
  .qlist{max-height:none}
  .navlinks{width:100%;overflow-x:auto}
}

/* carte des quartiers (Task 24) */
.cq{padding-block:28px 48px;max-width:1280px}
.cq-head h1{font-size:clamp(32px,5vw,48px);line-height:1.05;margin-top:6px}
.cq-lede{margin:12px 0 0;font-size:16px;color:var(--ink-soft);max-width:72ch}
.cq-grid{margin-top:24px;display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}
.cq-form{flex:1 1 320px;max-width:370px;display:grid;gap:18px;padding:18px}
.cq-main{flex:999 1 560px;min-width:0;display:grid;gap:14px}
.cq-field{border:0;margin:0;padding:0;min-width:0}
.cq-lab{margin:0 0 8px;padding:0;font-size:13px;font-weight:700;display:flex;justify-content:space-between;gap:8px;align-items:baseline;width:100%}
.cq-lab small{font-weight:500;color:var(--muted);font-size:12px}
.cq-ref{margin:0;font-size:14px}
.cq-ref span{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.cq-pills,.cq-sens{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.cq-sens{font-size:12px;color:var(--ink-soft)}
.cq-pill input,.cq-weights input{position:absolute;opacity:0;pointer-events:none}
.cq-pill span{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-soft);font-size:13px;cursor:pointer}
.cq-pill.small span{min-height:30px;padding:0 10px;font-size:12px}
.cq-pill input:checked+span,.cq-weights input:checked+span{background:var(--emerald);border-color:var(--emerald);color:#fff;font-weight:600}
.cq-pill input:focus-visible+span,.cq-weights input:focus-visible+span{outline:2px solid var(--emerald);outline-offset:2px}
.cq-field input[type=range]{width:100%;accent-color:var(--emerald)}
.cq-scale{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}
.cq-presets{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 6px;font-size:12px;color:var(--muted)}
.cq-presets a{border:1px dashed var(--muted);border-radius:999px;padding:4px 10px;color:var(--ink-soft);text-decoration:none}
.cq-presets a:hover{border-color:var(--emerald);color:var(--emerald)}
.cq-crit{border:0;border-top:1px solid var(--line);margin:0;padding:12px 0;display:grid;gap:8px;min-width:0}
.cq-crit-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.cq-crit legend{float:left;padding:0;font-size:14px;font-weight:600}
.cq-crit legend small{font-size:11px;font-weight:500;color:var(--muted)}
.cq-crit select{font-size:12px;padding:4px 6px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--ink-soft);max-width:150px}
.cq-weights{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;clear:both}
.cq-weights span{display:flex;align-items:center;justify-content:center;min-height:34px;padding:0 4px;border-radius:8px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-soft);font-size:12px;cursor:pointer;text-align:center}
.cq-method{margin:0;font-size:12px;color:var(--muted)}
.cq-submit{min-height:44px;border:0;border-radius:999px;background:var(--emerald);color:#fff;font-weight:600;cursor:pointer}
.cq-bar{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;justify-content:space-between}
.cq-count{margin:0;font-size:17px}
.cq-count b{font-family:var(--font-serif);font-size:26px;font-weight:500}
.cq-count span{color:var(--muted);font-size:14px}
.cq-colour{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.cq-map{position:relative;overflow:hidden;padding:0}
#cq-leaflet{width:100%;height:clamp(440px,72vh,720px);background:#f3efe6;z-index:0}
.cq-label span{display:block;transform:translate(-50%,-50%);white-space:nowrap;font:700 12px/1 var(--font-sans);color:var(--ink);text-shadow:0 0 3px #fffefb,0 0 3px #fffefb,0 0 2px #fffefb}
.cq-tip{font:500 12.5px/1.4 var(--font-sans);width:max-content;max-width:300px;white-space:normal}
.cq-compose{display:block;margin-top:10px}
.cq-compose input{position:absolute;opacity:0;pointer-events:none}
.cq-compose span{display:flex;align-items:center;justify-content:center;min-height:40px;border-radius:999px;border:1px dashed var(--emerald);color:var(--emerald);font-size:14px;font-weight:600;cursor:pointer}
.cq-compose input:checked+span{background:var(--emerald);border-style:solid;color:#fff}
.cq-compose input:focus-visible+span{outline:2px solid var(--emerald);outline-offset:2px}
.cq-index-panel[hidden]{display:none}
.cq-hint{margin:0;font-size:12.5px;color:var(--muted)}
.cq-legend-note{flex-basis:100%;margin:0;font-size:12px;color:var(--muted)}
.cq-row.current{background:var(--emerald-soft,#e6f2ec);margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:8px}
.cq-card{z-index:1000}
.cq-card{position:absolute;left:12px;bottom:12px;width:380px;max-width:calc(100% - 24px);max-height:calc(100% - 24px);overflow:auto;box-shadow:0 16px 36px -18px rgba(0,0,0,.35)}
.cq-close{position:absolute;right:8px;top:6px;border:0;background:transparent;font-size:22px;line-height:1;color:var(--muted);cursor:pointer;width:32px;height:32px}
.cq-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding-right:26px}
.cq-card h2{font-size:22px;line-height:1.15;margin-top:2px}
.cq-index{margin:0;text-align:right;white-space:nowrap}
.cq-index span{display:block;font-size:11px;color:var(--muted)}
.cq-index>b:first-of-type{font-family:var(--font-serif);font-size:30px;font-weight:500}
.cq-index.high>b:first-of-type,.cq-li-index.high{color:var(--emerald)}
.cq-index.low>b:first-of-type,.cq-li-index.low{color:#9a4a1c}
.cq-index.na>b:first-of-type{color:var(--muted)}
.cq-bang{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:4px;border-radius:999px;background:#fdf0d5;border:1px solid #b07800;color:#8a5a00;font:800 12px/1 var(--font-sans);vertical-align:super}
.cq-status{margin:6px 0 8px;font-size:12px;color:var(--muted)}
.cq-missing{margin:0 0 8px;padding:8px 10px;border-radius:10px;background:#fdf0d5;border:1px solid #e8c77a;font-size:12.5px;line-height:1.45;color:#6b4600}
.cq-row{display:grid;grid-template-columns:86px minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 0;border-top:1px solid var(--line);font-size:13px}
.cq-row.off{opacity:.55}
.cq-row-lab small{display:block;font-size:11px;color:var(--muted)}
.cq-row-val{display:grid;gap:3px;min-width:0}
.cq-row-val small{color:var(--muted);font-size:11.5px}
.cq-pos{position:relative;height:6px;border-radius:999px;background:linear-gradient(90deg,#e9d9c4,#efeae0 50%,#cfe5d9)}
.cq-pos::before{content:"";position:absolute;left:50%;top:-2px;bottom:-2px;border-left:1px dashed var(--muted)}
.cq-pos i{position:absolute;top:-3px;width:12px;height:12px;margin-left:-6px;border-radius:999px;background:var(--emerald);border:2px solid var(--surface)}
.cq-tag{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap}
.cq-tag.low{background:var(--clay-soft);color:#9a4a1c}
.cq-tag.warn{background:#fdf0d5;color:#8a5a00;border:1px solid #e8c77a}
.cq-card-links{margin:12px 0 0;display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:14px}
.cq-open{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;background:var(--emerald);color:#fff;text-decoration:none;font-weight:600}
.cq-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12px;color:var(--ink-soft);align-items:center}
.cq-legend span{display:flex;gap:6px;align-items:center}
.cq-legend i{width:16px;height:12px;border-radius:3px;display:inline-block}
.cq-legend i.hatch{background:repeating-linear-gradient(45deg,#f7f4ee 0 3px,#cfc6b2 3px 5px)}
.cq-legend i.out{background:#ebe7df;border:1px solid #ddd6c8}
.cq-legend .cq-bang{vertical-align:middle;margin:0}
.cq-best{margin-top:10px}
.cq-best h2{font-size:24px}
.cq-best-sub{margin:4px 0 12px;font-size:13px;color:var(--muted)}
.cq-best-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.cq-best-list a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none}
.cq-best-list a:hover,.cq-best-list a[aria-current]{border-color:var(--emerald)}
.cq-best-list a[aria-current]{box-shadow:0 0 0 1px var(--emerald)}
.cq-best-list small{font-size:12px;color:var(--muted)}
.cq-li-index{font-family:var(--font-serif);font-size:18px}
.cq-li-index .cq-bang{width:16px;height:16px;font-size:11px}
.cq-empty{padding:24px}
.cq-sources{margin:32px 0 0;font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:20px}
@media (max-width:640px){.cq-form{max-width:none}.cq-card{position:static;width:auto;max-width:none;max-height:none;box-shadow:none;border-width:1px 0 0;border-radius:0}}
/* Se déplacer (Task 25) */
.tr-grid{display:grid;gap:12px;margin-top:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.tr-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.tr-list li{display:grid;gap:2px}
.tr-list small{color:var(--muted);font-size:12px}
.tr-list b{font-weight:600}
.tr-summary,.tr-rank{margin:12px 0 0;font-size:14px;color:var(--ink-soft)}
.tr-sub{font-family:var(--font-sans);font-size:15px;font-weight:600;margin:24px 0 0}
.tr-amenities{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.tr-amenities li.far::before{background:var(--line-strong)}
/* Passerelles vers la carte des quartiers */
.hero-links{margin:14px 0 0;font-size:14px}
.hero-links a{font-weight:600}
.scale-map{display:block;font-size:12px;margin-top:2px}

/* ---------------------------------------------------------------
   Refonte visuelle (octobre 2026)
   --------------------------------------------------------------- */
.btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 20px;border-radius:999px;background:var(--emerald);color:#fff;font-weight:600;text-decoration:none;border:0;cursor:pointer;transition:background .15s,transform .15s}
.btn:hover{background:var(--emerald-ink)}
.btn.ghost{background:transparent;color:var(--emerald);box-shadow:inset 0 0 0 1.5px var(--emerald)}
.btn.ghost:hover{background:var(--emerald-soft)}
.btn.light{background:var(--mint);color:var(--forest)}
.btn.light:hover{background:#b9e4cf}
a.more{display:inline-flex;align-items:center;gap:6px;color:var(--emerald)}
a.more::after{content:"→";transition:transform .15s}
a.more:hover::after{transform:translateX(3px)}
.hero-links{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 0}
.hero-links a{font-weight:600}

/* Fond du haut de page : lignes de niveau */
.town-top{position:relative;background:linear-gradient(180deg,var(--surface) 0%,var(--paper) 100%);border-bottom:1px solid var(--line)}
.town-top::before{content:"";position:absolute;inset:0;background:var(--contours) right -80px top -60px/720px auto no-repeat;opacity:.55;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent 30%,#000 80%);mask-image:linear-gradient(90deg,transparent 30%,#000 80%)}
.town-top>.wrap{position:relative}
.crumbs{padding-top:22px;font-size:13.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.crumbs a{color:var(--ink-soft);text-decoration:none;font-weight:500}
.crumbs a:hover{color:var(--emerald);text-decoration:underline}

/* Sommaire de la page, collé sous l'en-tête */
.toc{position:sticky;top:var(--bar-h);z-index:1050;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.toc ol{list-style:none;margin:0 auto;padding:8px 16px;display:flex;align-items:center;gap:4px;overflow-x:auto;scrollbar-width:none;max-width:1120px}
@media (min-width:600px){.toc ol{padding-inline:24px}}
.toc ol::-webkit-scrollbar{display:none}
.toc li{display:flex;margin:0}
.toc a{display:inline-flex;align-items:center;height:32px;line-height:1;white-space:nowrap;padding:0 14px;border-radius:999px;font-size:13.5px;font-weight:500;color:var(--ink-soft);text-decoration:none;transition:background .15s,color .15s}
.toc a:hover{background:var(--surface-2);color:var(--ink)}
.toc a[aria-current="true"]{background:var(--forest);color:var(--on-forest)}

/* Pages département, index */
.page-hero{position:relative;overflow:hidden;background:var(--surface);border-bottom:1px solid var(--line);padding-bottom:40px}
.page-hero::before{content:"";position:absolute;inset:0;background:var(--contours) right -60px top -40px/620px auto no-repeat;opacity:.5;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent 35%,#000 85%);mask-image:linear-gradient(90deg,transparent 35%,#000 85%)}
.page-hero .wrap{position:relative}
.page-hero h1{font-size:clamp(36px,5.5vw,64px);line-height:1.02;letter-spacing:-.02em;margin-top:14px;font-weight:450;max-width:18ch}
.page-hero .eyebrow{margin-top:24px}
.town-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.town-tiles a{display:grid;gap:2px;height:100%;padding:16px 18px;border-radius:16px;background:var(--surface);border:1px solid var(--line);color:var(--ink);text-decoration:none;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s,border-color .15s}
.town-tiles a:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift);border-color:var(--mint)}
.town-tiles b{font-family:var(--font-serif);font-size:20px;font-weight:500;line-height:1.2}
.town-tiles span{font-size:14px;color:var(--emerald);font-weight:600}
.town-tiles small{font-size:12.5px;color:var(--muted)}
.ext-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px}
.ext ol{margin:0;padding:0;list-style:none;counter-reset:ext;display:grid;gap:2px}
.ext li{counter-increment:ext;display:grid;grid-template-columns:1.6em minmax(0,1fr) auto;gap:8px;align-items:baseline;padding:6px 0;border-top:1px solid var(--line);font-size:14.5px}
.ext li:first-child{border-top:0}
.ext li::before{content:counter(ext);font-size:12px;color:var(--muted);font-weight:700}
.ext a{color:var(--ink);text-decoration:none;font-weight:500}
.ext a:hover{color:var(--emerald);text-decoration:underline}
.ext .num{font-weight:600}
.filter input{min-width:240px;padding:9px 14px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface)}
.tbl a{color:var(--ink);font-weight:500;text-decoration:none}
.tbl a:hover{color:var(--emerald);text-decoration:underline}
.tbl td small{color:var(--muted);font-size:11.5px;margin-left:4px}
.tbl .none{color:var(--muted)}
th[data-sort]{cursor:pointer;user-select:none}
th[data-sort]::after{content:" ↕";opacity:.4}
th[aria-sort="ascending"]::after{content:" ↑";opacity:1}
th[aria-sort="descending"]::after{content:" ↓";opacity:1}
tbody tr:hover{background:var(--paper)}
.region-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;padding-block:40px 24px}
.region{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 20px;box-shadow:var(--shadow)}
.region h2{font-size:20px;margin-bottom:10px}
.region ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.region a{display:flex;gap:10px;align-items:baseline;padding:5px 6px;margin-inline:-6px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:15px}
.region a:hover{background:var(--emerald-soft);color:var(--emerald-ink)}
.region .code{min-width:2.4em;font-size:12px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}

/* Pied de page du site */
.site-foot{margin-top:72px;background:var(--forest);color:var(--on-forest-soft);font-size:14px;position:relative;overflow:hidden}
.site-foot::before{content:"";position:absolute;inset:0;background:var(--contours) left -120px bottom -160px/700px auto no-repeat;opacity:.18;pointer-events:none}
.site-foot .wrap{position:relative}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:32px;padding-block:52px 32px}
.foot-brand .brand{color:var(--on-forest)}
.foot-brand .brand svg{background:var(--mint);color:var(--forest)}
.foot-brand .brand .beta{background:var(--forest-2);color:var(--mint)}
.foot-brand p{margin:14px 0 0;max-width:38ch;line-height:1.6}
.site-foot h2{font-family:var(--font-sans);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mint);font-weight:700;margin-bottom:12px}
.site-foot ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.site-foot nav[aria-label="Grandes villes"] ul{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}
.site-foot a{color:var(--on-forest);text-decoration:none}
.site-foot a:hover{color:var(--mint);text-decoration:underline}
.site-foot a.all{color:var(--mint);font-weight:600}
.foot-legal{border-top:1px solid rgba(255,255,255,.1);padding-block:20px 32px;font-size:12.5px}
.foot-legal p{margin:0;max-width:100ch}
@media (max-width:860px){.foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.foot-brand{grid-column:1/-1}}
@media (max-width:520px){.foot-grid{grid-template-columns:minmax(0,1fr)}}

/* Accueil */
.home-top{position:relative;overflow:hidden;background:var(--forest);color:var(--on-forest)}
.home-top::before{content:"";position:absolute;inset:0;background:var(--contours) right -220px center/900px auto no-repeat;opacity:.3;pointer-events:none}
.home-top .wrap{position:relative}
.home-hero{padding-block:clamp(56px,12vh,120px) clamp(48px,9vh,96px);max-width:820px}
.home-hero .eyebrow{color:var(--mint)}
.home-hero h1{font-size:clamp(44px,8vw,92px);line-height:.98;margin:14px 0 20px;letter-spacing:-.03em;font-weight:400}
.home-hero h1 em{font-style:italic;color:var(--mint)}
.home-hero .lede{font-size:clamp(17px,2vw,19px);color:var(--on-forest-soft);max-width:58ch}
.home-hero .search--big input{background:var(--surface);border-color:transparent;box-shadow:0 10px 40px -12px rgba(0,0,0,.5)}
.home-hero .search--big button{background:var(--mint);color:var(--forest);font-size:16px}
.home-hero .search--big button:hover{background:#b9e4cf}
.home-hint{color:var(--on-forest-soft);font-size:14px;margin-top:14px}
.home-hint a{color:var(--on-forest);font-weight:600}
.home-proof{display:flex;flex-wrap:wrap;gap:10px 28px;margin:36px 0 0;padding:0;list-style:none;font-size:14px;color:var(--on-forest-soft)}
.home-proof b{display:block;font-family:var(--font-serif);font-size:30px;font-weight:450;color:var(--on-forest);letter-spacing:-.01em}
.home-sec{padding-block:64px 0}
.home-hero .home-sub{margin:0 0 10px;font-size:clamp(18px,2.2vw,22px);font-weight:600;color:var(--on-forest)}
.home-sources{max-width:820px;color:var(--ink-soft)}
.home-sources ul{margin:14px 0;padding-left:20px;display:grid;gap:8px}
.home-sources b{color:var(--ink)}
.home-sec .blk-head{margin-bottom:22px}
.scales3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;padding:0}
.scales3 .card{display:grid;gap:6px;align-content:start}
.scales3 .card b{font-family:var(--font-serif);font-size:22px;font-weight:500}
.scales3 .card span:last-child{color:var(--muted);font-size:15px}
.scales3 .step{width:34px;height:34px;border-radius:10px;background:var(--forest);color:var(--mint);font-weight:700;display:grid;place-items:center;font-size:14px;margin-bottom:6px}
.home-more{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;padding:0}
.tool{position:relative;overflow:hidden;display:grid;gap:8px;align-content:end;min-height:220px;padding:26px;border-radius:var(--r-lg);color:var(--on-forest);text-decoration:none;background:var(--forest-2);box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}
.tool::before{content:"";position:absolute;inset:0;background:var(--contours) right -100px top -80px/520px auto no-repeat;opacity:.45;transition:transform .6s}
.tool:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}
.tool:hover::before{transform:scale(1.06)}
.tool>*{position:relative}
.tool b{font-family:var(--font-serif);font-size:28px;font-weight:450;line-height:1.1}
.tool span{color:var(--on-forest-soft);max-width:44ch}
.tool i{font-style:normal;color:var(--mint);font-weight:600}
.tool.alt{background:var(--emerald-ink)}
.home-regions{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.home-regions a{display:inline-block;padding:8px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:14.5px}
.home-regions a:hover{border-color:var(--emerald);color:var(--emerald)}

/* Commerces et services : tuiles */
.svc{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.svc li{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 16px;display:grid;gap:2px;box-shadow:var(--shadow)}
.svc b{font-family:var(--font-serif);font-size:30px;font-weight:450;line-height:1;letter-spacing:-.01em}
.svc span{font-size:14px;color:var(--ink-soft)}
.svc li.zero{box-shadow:none;background:transparent;border-style:dashed}
.svc li.zero b{color:var(--muted)}

/* Questions fréquentes */
.faq{display:grid;gap:10px;max-width:820px}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:0 20px;box-shadow:var(--shadow)}
.faq summary{cursor:pointer;list-style:none;padding:16px 28px 16px 0;position:relative;font-family:var(--font-serif);font-size:19px;font-weight:500}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:12px;font:400 24px var(--font-sans);color:var(--emerald);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0 0 18px;color:var(--ink-soft)}

/* Loyers côte à côte */
.housing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:12px}

@media (max-width:820px){
  .hero{gap:8px;padding-bottom:28px}
  .keyfig{margin-top:12px}
  .brief div{grid-template-columns:minmax(0,1fr);gap:2px}
  .big{font-size:48px}
  section.blk{padding-top:44px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Budget : liste plus lisible */
.budget-rows li{grid-template-columns:minmax(0,17em) minmax(0,1fr) 5.5em;padding:8px 12px}
.budget-rows .name a{color:var(--ink);text-decoration:none;font-weight:500}
.budget-rows .name a:hover{color:var(--emerald);text-decoration:underline}
.budget-rows .name small{white-space:nowrap}
.budget-rows li:not(.here):hover{background:var(--surface)}
.budget-rows .bar{height:10px;border-radius:999px;background:var(--surface-2)}
.budget-rows .bar i{border-radius:999px;background:linear-gradient(90deg,var(--emerald),#2f9b74)}
.budget-form input[type=range],.cq-field input[type=range],.map-budget input{height:28px}
.home-hero .search--big input:focus{box-shadow:0 0 0 4px rgba(159,214,189,.5),0 10px 40px -12px rgba(0,0,0,.5)}
.leaflet-container{isolation:isolate}

/* Carte des quartiers sur fond de carte (fiches ville et quartier) */
.qmap-leaflet{width:100%;height:clamp(360px,62vh,560px);border-radius:12px;background:#f3efe6}
.qmap-n{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:var(--surface);color:var(--ink);font:600 11px/1 var(--font-sans);box-shadow:0 1px 4px rgba(0,0,0,.25)}
.qmap-card .leaflet-tooltip{font:13px var(--font-sans)}

/* Qui habite ici ? */
.demo{padding:18px 22px}
.demo-rows{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.demo-rows li{display:grid;grid-template-columns:minmax(0,19em) minmax(0,1fr) 4.5em 9em;gap:12px;align-items:center}
.demo-label{font-size:14.5px}
.demo-bar{position:relative;height:12px;border-radius:999px;background:var(--surface-2)}
.demo-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--emerald),#2f9b74)}
.demo-bar em{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;background:var(--ink)}
.demo-rows b{text-align:right}
.demo-rows small{color:var(--muted);font-size:12.5px}
.qlegend .tick{display:inline-block;width:2px;height:12px;background:var(--ink);border-radius:0}
@media (max-width:700px){.demo-rows li{grid-template-columns:minmax(0,1fr) 4em;gap:4px 10px}.demo-bar{grid-column:1/-1;grid-row:2}.demo-rows small{grid-column:1/-1}}

/* Photo de la commune (Wikimedia Commons) */
.hero-side{display:grid;gap:14px;align-content:start}
.town-photo{margin:0;position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);background:var(--surface-2);aspect-ratio:16/9}
.town-photo img{width:100%;height:100%;object-fit:cover;display:block}
.town-photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:18px 12px 6px;font-size:11px;line-height:1.35;color:rgba(255,255,255,.9);background:linear-gradient(transparent,rgba(0,0,0,.55));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.town-photo figcaption a{color:inherit}
.qsummary{font-size:17px;margin:10px 0 0;max-width:68ch}
.qsummary+.lede{margin-top:8px;font-size:15px}

/* Pages réglementaires */
.legal{max-width:72ch;padding-top:32px;padding-bottom:56px}
.legal h2{font-size:22px;margin:36px 0 10px}
.legal h3{font-size:17px;margin:22px 0 6px}
.legal p,.legal li{line-height:1.6;color:var(--ink-soft)}
.legal ul{padding-left:1.2em}
.legal li+li{margin-top:6px}
.legal .legal-summary{font-size:17px;color:var(--ink);border-left:3px solid var(--line);padding-left:14px}
.legal-links{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:48px;padding-top:20px;border-top:1px solid var(--line);font-size:14px}
.foot-legal .foot-links{margin:0 0 8px}
.foot-links a{color:inherit}

/* Mon projet (Task 26) */
.pj{padding-bottom:64px}
.pj .blk.first{padding-top:32px}
.pj-messages{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:8px}
.pj-messages li{background:var(--emerald-soft);color:var(--emerald-ink);border-radius:var(--r);padding:10px 14px;font-weight:600;font-size:15px}
.pj-messages li.error{background:var(--clay-soft);color:var(--clay)}
.pj-form{max-width:560px;margin-top:32px;display:grid;gap:12px}
.pj-form p{margin:0}
.pj label,.pj-label{font-size:13px;font-weight:600;color:var(--ink-soft)}
.pj input[type=email],.pj input:not([type]),.pj select,.pj textarea{width:100%;padding:10px 14px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);font:inherit;color:var(--ink)}
.pj textarea{resize:vertical;min-height:72px}
.pj input:focus,.pj select:focus,.pj textarea:focus{outline:none;border-color:var(--emerald);box-shadow:0 0 0 4px var(--emerald-soft)}
.pj .btn{justify-self:start}
.pj-error{color:var(--clay);font-weight:600}
.pj-alt{margin-top:16px}
.pj-actions{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin:14px 0 0}
.pj-hubs{list-style:none;padding:0;margin:0 0 8px;display:grid;gap:6px;font-size:16px}
.pj-inline{display:flex;flex-wrap:wrap;gap:8px;align-items:center;max-width:560px}
.pj-inline input{flex:1;min-width:200px}
.linkish{background:none;border:0;padding:0;color:var(--emerald);font-weight:600;font-size:14px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.pj-account{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;border-top:1px solid var(--line);margin-top:48px;padding-top:24px}
.pj-account .pj-inline{width:auto}
.pj-danger{background:var(--clay)}
.pj-danger:hover{background:#8d3d22}
.muted{color:var(--muted)}
.pj-compare table{min-width:0}
.pj-compare th[scope=row]{font-size:13px;color:var(--muted);font-weight:600;white-space:normal;min-width:120px;background:var(--surface-2)}
.pj-compare td{white-space:normal;vertical-align:top;min-width:150px}
.pj-compare td b{display:block;font-weight:600}
.pj-compare td small{display:block;color:var(--muted);font-size:12.5px;line-height:1.35}
.pj-places{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:24px}
.pj-place h3{font-family:var(--font-serif);font-size:20px;text-transform:none;letter-spacing:0;color:var(--ink);font-weight:500;margin:0}
.pj-place h3 a{color:inherit;text-decoration:none}
.pj-place form{display:grid;gap:8px;margin-top:10px}
.pj-hub-form{display:grid;gap:16px;max-width:560px;margin-top:32px}
.pj-hub-form fieldset{display:grid;gap:8px;margin:0}
.pj-hub-form legend{font-family:var(--font-serif);font-size:19px;padding:0 4px}
.pj-radios{display:flex;flex-wrap:wrap;gap:8px 20px}
.pj-radios label{font-weight:400;font-size:15px;display:flex;gap:6px;align-items:center}
.pj-filters{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:end;margin:32px 0 20px}
.pj-filters label{display:grid;gap:4px}
.pj-filters select{width:auto}
.pj-keep{margin:0;display:inline}
.pj-trips .btn{min-height:40px}
.nav-project{border:1px solid var(--line)}
