/* ==========================================================================
   ECI — Engineering Construction Integration
   Feuille de style unique du site  •  www.eci.mg
   --------------------------------------------------------------------------
   Vous pouvez modifier ici les couleurs, les tailles et les espacements.
   Tout est regroupé dans le bloc « VARIABLES » ci-dessous.
   ========================================================================== */

/* ============ 0. POLICES (hébergées avec le site, aucune dépendance) ==== */
/* Les fichiers se trouvent dans assets/fonts. Ne rien modifier ici.        */
@font-face{font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/barlow-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Barlow';font-style:italic;font-weight:400;font-display:swap;src:url('../fonts/barlow-latin-400-italic.woff2') format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/barlow-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/barlow-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/barlow-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/barlow-condensed-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/barlow-condensed-latin-700-normal.woff2') format('woff2')}

/* ============================ 1. VARIABLES ============================== */
:root{
  /* Couleurs de la charte ECI — ne pas modifier sans validation de la gérance */
  --navy:#011E56;          /* bleu nuit ECI du logo — titres, textes, filets */
  --navy-700:#0A2C6E;      /* bleu clair : survols, dégradés                */
  --navy-bg:#010C28;       /* FOND bleu nuit très foncé : bandeaux, sections */
  --navy-deep:#01071A;     /* FOND le plus foncé : bandeau haut, pied de page*/
  --navy-900:#01071A;      /* conservé pour compatibilité                    */
  --orange:#FE620D;        /* orange ECI — accent, max. 10 % de la page     */
  --orange-700:#C24608;    /* orange foncé — texte orange lisible (AA)      */
  --grey:#898989;          /* gris ECI                                      */

  --ink:#1B2231;           /* texte courant                                  */
  --ink-soft:#4E5A73;      /* texte secondaire                               */
  --paper:#FFFFFF;
  --paper-2:rgba(240,243,249,.72);   /* bandes alternées, translucides      */
  --line:#DCE3EE;
  --line-strong:#C3CDDF;

  /* Motif nid d'abeille — trait très fin, sans fond */
  --hex-light:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1200'%20height='900'%20viewBox='0%200%201200%20900'%3E%3Cg%20fill='none'%20stroke-linejoin='round'%3E%3Cpolygon%20points='769.5,102.7%20655.2,168.7%20655.2,300.7%20769.5,366.7%20883.8,300.7%20883.8,168.7'%20stroke='%23898989'%20stroke-opacity='0.288'%20stroke-width='1.0'/%3E%3Cpolygon%20points='403.7,780.4%20301.5,839.4%20301.5,957.4%20403.7,1016.4%20505.9,957.4%20505.9,839.4'%20stroke='%230A2C6E'%20stroke-opacity='0.152'%20stroke-width='1.0'/%3E%3Cpolygon%20points='403.7,-119.6%20301.5,-60.6%20301.5,57.4%20403.7,116.4%20505.9,57.4%20505.9,-60.6'%20stroke='%230A2C6E'%20stroke-opacity='0.152'%20stroke-width='1.0'/%3E%3Cpolygon%20points='1069.5,-84.1%20925.8,-1.1%20925.8,164.9%201069.5,247.9%201213.3,164.9%201213.3,-1.1'%20stroke='%23011E56'%20stroke-opacity='0.149'%20stroke-width='1.0'/%3E%3Cpolygon%20points='1069.5,815.9%20925.8,898.9%20925.8,1064.9%201069.5,1147.9%201213.3,1064.9%201213.3,898.9'%20stroke='%23011E56'%20stroke-opacity='0.149'%20stroke-width='1.0'/%3E%3Cpolygon%20points='-130.5,-84.1%20-274.2,-1.1%20-274.2,164.9%20-130.5,247.9%2013.3,164.9%2013.3,-1.1'%20stroke='%23011E56'%20stroke-opacity='0.149'%20stroke-width='1.0'/%3E%3Cpolygon%20points='-130.5,815.9%20-274.2,898.9%20-274.2,1064.9%20-130.5,1147.9%2013.3,1064.9%2013.3,898.9'%20stroke='%23011E56'%20stroke-opacity='0.149'%20stroke-width='1.0'/%3E%3Cpolygon%20points='196.8,277.4%2053.1,360.4%2053.1,526.4%20196.8,609.4%20340.6,526.4%20340.6,360.4'%20stroke='%23898989'%20stroke-opacity='0.247'%20stroke-width='1.0'/%3E%3Cpolygon%20points='373.4,508.8%20293.8,554.8%20293.8,646.8%20373.4,692.8%20453.1,646.8%20453.1,554.8'%20stroke='%23898989'%20stroke-opacity='0.197'%20stroke-width='1.2'/%3E%3Cpolygon%20points='557.5,392.5%20467.5,444.5%20467.5,548.5%20557.5,600.5%20647.6,548.5%20647.6,444.5'%20stroke='%23898989'%20stroke-opacity='0.146'%20stroke-width='1.2'/%3E%3Cpolygon%20points='302.9,46.8%20212.8,98.8%20212.8,202.8%20302.9,254.8%20392.9,202.8%20392.9,98.8'%20stroke='%230A2C6E'%20stroke-opacity='0.169'%20stroke-width='1.0'/%3E%3Cpolygon%20points='68.9,83.1%20-10.7,129.1%20-10.7,221.1%2068.9,267.1%20148.6,221.1%20148.6,129.1'%20stroke='%23898989'%20stroke-opacity='0.15'%20stroke-width='1.2'/%3E%3Cpolygon%20points='1268.9,83.1%201189.3,129.1%201189.3,221.1%201268.9,267.1%201348.6,221.1%201348.6,129.1'%20stroke='%23898989'%20stroke-opacity='0.15'%20stroke-width='1.2'/%3E%3Cpolygon%20points='846.7,710.0%20718.5,784.0%20718.5,932.0%20846.7,1006.0%20974.8,932.0%20974.8,784.0'%20stroke='%23898989'%20stroke-opacity='0.181'%20stroke-width='1.0'/%3E%3Cpolygon%20points='846.7,-190.0%20718.5,-116.0%20718.5,32.0%20846.7,106.0%20974.8,32.0%20974.8,-116.0'%20stroke='%23898989'%20stroke-opacity='0.181'%20stroke-width='1.0'/%3E%3Cpolygon%20points='517.1,515.0%20427.0,567.0%20427.0,671.0%20517.1,723.0%20607.1,671.0%20607.1,567.0'%20stroke='%23898989'%20stroke-opacity='0.186'%20stroke-width='1.2'/%3E%3Cpolygon%20points='220.1,523.3%20105.8,589.3%20105.8,721.3%20220.1,787.3%20334.4,721.3%20334.4,589.3'%20stroke='%23011E56'%20stroke-opacity='0.216'%20stroke-width='1.1'/%3E%3Cpolygon%20points='-8.3,577.1%20-136.5,651.1%20-136.5,799.1%20-8.3,873.1%20119.8,799.1%20119.8,651.1'%20stroke='%23898989'%20stroke-opacity='0.202'%20stroke-width='1.0'/%3E%3Cpolygon%20points='1191.7,577.1%201063.5,651.1%201063.5,799.1%201191.7,873.1%201319.8,799.1%201319.8,651.1'%20stroke='%23898989'%20stroke-opacity='0.202'%20stroke-width='1.0'/%3E%3Cpolygon%20points='1061.6,727.7%20947.3,793.7%20947.3,925.7%201061.6,991.7%201175.9,925.7%201175.9,793.7'%20stroke='%23011E56'%20stroke-opacity='0.175'%20stroke-width='1.0'/%3E%3Cpolygon%20points='1061.6,-172.3%20947.3,-106.3%20947.3,25.7%201061.6,91.7%201175.9,25.7%201175.9,-106.3'%20stroke='%23011E56'%20stroke-opacity='0.175'%20stroke-width='1.0'/%3E%3Cpolygon%20points='544.8,123.2%20465.1,169.2%20465.1,261.2%20544.8,307.2%20624.5,261.2%20624.5,169.2'%20stroke='%230A2C6E'%20stroke-opacity='0.245'%20stroke-width='1.0'/%3E%3Cpolygon%20points='1134.7,636.3%201055.0,682.3%201055.0,774.3%201134.7,820.3%201214.4,774.3%201214.4,682.3'%20stroke='%23FE620D'%20stroke-opacity='0.191'%20stroke-width='1.0'/%3E%3Cpolygon%20points='-65.3,636.3%20-145.0,682.3%20-145.0,774.3%20-65.3,820.3%2014.4,774.3%2014.4,682.3'%20stroke='%23FE620D'%20stroke-opacity='0.191'%20stroke-width='1.0'/%3E%3Cpolygon%20points='771.8,319.4%20669.6,378.4%20669.6,496.4%20771.8,555.4%20874.0,496.4%20874.0,378.4'%20stroke='%23011E56'%20stroke-opacity='0.268'%20stroke-width='1.1'/%3E%3Cpolygon%20points='372.2,-116.3%20257.9,-50.3%20257.9,81.7%20372.2,147.7%20486.5,81.7%20486.5,-50.3'%20stroke='%23011E56'%20stroke-opacity='0.258'%20stroke-width='1.1'/%3E%3Cpolygon%20points='372.2,783.7%20257.9,849.7%20257.9,981.7%20372.2,1047.7%20486.5,981.7%20486.5,849.7'%20stroke='%23011E56'%20stroke-opacity='0.258'%20stroke-width='1.1'/%3E%3Cpolygon%20points='60.7,-172.0%20-67.5,-98.0%20-67.5,50.0%2060.7,124.0%20188.9,50.0%20188.9,-98.0'%20stroke='%23898989'%20stroke-opacity='0.135'%20stroke-width='1.2'/%3E%3Cpolygon%20points='60.7,728.0%20-67.5,802.0%20-67.5,950.0%2060.7,1024.0%20188.9,950.0%20188.9,802.0'%20stroke='%23898989'%20stroke-opacity='0.135'%20stroke-width='1.2'/%3E%3Cpolygon%20points='1260.7,-172.0%201132.5,-98.0%201132.5,50.0%201260.7,124.0%201388.9,50.0%201388.9,-98.0'%20stroke='%23898989'%20stroke-opacity='0.135'%20stroke-width='1.2'/%3E%3Cpolygon%20points='1260.7,728.0%201132.5,802.0%201132.5,950.0%201260.7,1024.0%201388.9,950.0%201388.9,802.0'%20stroke='%23898989'%20stroke-opacity='0.135'%20stroke-width='1.2'/%3E%3Cpolygon%20points='248.1,187.2%20158.1,239.2%20158.1,343.2%20248.1,395.2%20338.2,343.2%20338.2,239.2'%20stroke='%23898989'%20stroke-opacity='0.19'%20stroke-width='1.0'/%3E%3Cpolygon%20points='1006.5,452.2%20878.3,526.2%20878.3,674.2%201006.5,748.2%201134.7,674.2%201134.7,526.2'%20stroke='%23898989'%20stroke-opacity='0.163'%20stroke-width='1.2'/%3E%3Cpolygon%20points='727.9,-185.0%20584.2,-102.0%20584.2,64.0%20727.9,147.0%20871.7,64.0%20871.7,-102.0'%20stroke='%23898989'%20stroke-opacity='0.183'%20stroke-width='1.2'/%3E%3Cpolygon%20points='727.9,715.0%20584.2,798.0%20584.2,964.0%20727.9,1047.0%20871.7,964.0%20871.7,798.0'%20stroke='%23898989'%20stroke-opacity='0.183'%20stroke-width='1.2'/%3E%3Cpolygon%20points='223.9,734.2%20156.4,773.2%20156.4,851.2%20223.9,890.2%20291.5,851.2%20291.5,773.2'%20stroke='%23898989'%20stroke-opacity='0.171'%20stroke-width='1.2'/%3E%3C/g%3E%3C/svg%3E");
  --hex-dark:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1200'%20height='900'%20viewBox='0%200%201200%20900'%3E%3Cg%20fill='none'%20stroke-linejoin='round'%3E%3Cpolygon%20points='226.8,97.4%20159.3,136.4%20159.3,214.4%20226.8,253.4%20294.4,214.4%20294.4,136.4'%20stroke='%23FFFFFF'%20stroke-opacity='0.159'%20stroke-width='1.0'/%3E%3Cpolygon%20points='258.5,516.7%20178.8,562.7%20178.8,654.7%20258.5,700.7%20338.2,654.7%20338.2,562.7'%20stroke='%23A9BBDC'%20stroke-opacity='0.15'%20stroke-width='1.0'/%3E%3Cpolygon%20points='769.5,165.5%20641.4,239.5%20641.4,387.5%20769.5,461.5%20897.7,387.5%20897.7,239.5'%20stroke='%23FE620D'%20stroke-opacity='0.16'%20stroke-width='1.0'/%3E%3Cpolygon%20points='653.3,301.4%20585.8,340.4%20585.8,418.4%20653.3,457.4%20720.9,418.4%20720.9,340.4'%20stroke='%23FFFFFF'%20stroke-opacity='0.074'%20stroke-width='1.1'/%3E%3Cpolygon%20points='698.2,720.8%20570.1,794.8%20570.1,942.8%20698.2,1016.8%20826.4,942.8%20826.4,794.8'%20stroke='%238899BB'%20stroke-opacity='0.145'%20stroke-width='1.2'/%3E%3Cpolygon%20points='698.2,-179.2%20570.1,-105.2%20570.1,42.8%20698.2,116.8%20826.4,42.8%20826.4,-105.2'%20stroke='%238899BB'%20stroke-opacity='0.145'%20stroke-width='1.2'/%3E%3Cpolygon%20points='125.4,54.3%2045.8,100.3%2045.8,192.3%20125.4,238.3%20205.1,192.3%20205.1,100.3'%20stroke='%238899BB'%20stroke-opacity='0.099'%20stroke-width='1.2'/%3E%3Cpolygon%20points='583.2,507.1%20515.6,546.1%20515.6,624.1%20583.2,663.1%20650.7,624.1%20650.7,546.1'%20stroke='%23FE620D'%20stroke-opacity='0.186'%20stroke-width='1.0'/%3E%3Cpolygon%20points='879.6,-46.3%20812.0,-7.3%20812.0,70.7%20879.6,109.7%20947.1,70.7%20947.1,-7.3'%20stroke='%238899BB'%20stroke-opacity='0.093'%20stroke-width='1.2'/%3E%3Cpolygon%20points='879.6,853.7%20812.0,892.7%20812.0,970.7%20879.6,1009.7%20947.1,970.7%20947.1,892.7'%20stroke='%238899BB'%20stroke-opacity='0.093'%20stroke-width='1.2'/%3E%3Cpolygon%20points='150.1,289.1%206.3,372.1%206.3,538.1%20150.1,621.1%20293.9,538.1%20293.9,372.1'%20stroke='%23FE620D'%20stroke-opacity='0.366'%20stroke-width='1.1'/%3E%3Cpolygon%20points='1350.1,289.1%201206.3,372.1%201206.3,538.1%201350.1,621.1%201493.9,538.1%201493.9,372.1'%20stroke='%23FE620D'%20stroke-opacity='0.366'%20stroke-width='1.1'/%3E%3Cpolygon%20points='76.1,640.5%20-67.7,723.5%20-67.7,889.5%2076.1,972.5%20219.8,889.5%20219.8,723.5'%20stroke='%238899BB'%20stroke-opacity='0.137'%20stroke-width='1.2'/%3E%3Cpolygon%20points='76.1,-259.5%20-67.7,-176.5%20-67.7,-10.5%2076.1,72.5%20219.8,-10.5%20219.8,-176.5'%20stroke='%238899BB'%20stroke-opacity='0.137'%20stroke-width='1.2'/%3E%3Cpolygon%20points='1276.1,640.5%201132.3,723.5%201132.3,889.5%201276.1,972.5%201419.8,889.5%201419.8,723.5'%20stroke='%238899BB'%20stroke-opacity='0.137'%20stroke-width='1.2'/%3E%3Cpolygon%20points='1276.1,-259.5%201132.3,-176.5%201132.3,-10.5%201276.1,72.5%201419.8,-10.5%201419.8,-176.5'%20stroke='%238899BB'%20stroke-opacity='0.137'%20stroke-width='1.2'/%3E%3Cpolygon%20points='370.5,780.0%20256.2,846.0%20256.2,978.0%20370.5,1044.0%20484.9,978.0%20484.9,846.0'%20stroke='%23FFFFFF'%20stroke-opacity='0.099'%20stroke-width='1.0'/%3E%3Cpolygon%20points='370.5,-120.0%20256.2,-54.0%20256.2,78.0%20370.5,144.0%20484.9,78.0%20484.9,-54.0'%20stroke='%23FFFFFF'%20stroke-opacity='0.099'%20stroke-width='1.0'/%3E%3Cpolygon%20points='907.6,262.3%20827.9,308.3%20827.9,400.3%20907.6,446.3%20987.3,400.3%20987.3,308.3'%20stroke='%23FE620D'%20stroke-opacity='0.32'%20stroke-width='1.1'/%3E%3Cpolygon%20points='930.7,701.0%20828.5,760.0%20828.5,878.0%20930.7,937.0%201032.9,878.0%201032.9,760.0'%20stroke='%23FFFFFF'%20stroke-opacity='0.121'%20stroke-width='1.0'/%3E%3Cpolygon%20points='930.7,-199.0%20828.5,-140.0%20828.5,-22.0%20930.7,37.0%201032.9,-22.0%201032.9,-140.0'%20stroke='%23FFFFFF'%20stroke-opacity='0.121'%20stroke-width='1.0'/%3E%3Cpolygon%20points='476.6,-31.6%20409.0,7.4%20409.0,85.4%20476.6,124.4%20544.1,85.4%20544.1,7.4'%20stroke='%23FE620D'%20stroke-opacity='0.282'%20stroke-width='1.1'/%3E%3Cpolygon%20points='476.6,868.4%20409.0,907.4%20409.0,985.4%20476.6,1024.4%20544.1,985.4%20544.1,907.4'%20stroke='%23FE620D'%20stroke-opacity='0.282'%20stroke-width='1.1'/%3E%3Cpolygon%20points='693.0,397.2%20613.4,443.2%20613.4,535.2%20693.0,581.2%20772.7,535.2%20772.7,443.2'%20stroke='%23FE620D'%20stroke-opacity='0.262'%20stroke-width='1.1'/%3E%3Cpolygon%20points='1237.4,-33.4%201093.7,49.6%201093.7,215.6%201237.4,298.6%201381.2,215.6%201381.2,49.6'%20stroke='%23FFFFFF'%20stroke-opacity='0.088'%20stroke-width='1.1'/%3E%3Cpolygon%20points='1237.4,866.6%201093.7,949.6%201093.7,1115.6%201237.4,1198.6%201381.2,1115.6%201381.2,949.6'%20stroke='%23FFFFFF'%20stroke-opacity='0.088'%20stroke-width='1.1'/%3E%3Cpolygon%20points='37.4,-33.4%20-106.3,49.6%20-106.3,215.6%2037.4,298.6%20181.2,215.6%20181.2,49.6'%20stroke='%23FFFFFF'%20stroke-opacity='0.088'%20stroke-width='1.1'/%3E%3Cpolygon%20points='37.4,866.6%20-106.3,949.6%20-106.3,1115.6%2037.4,1198.6%20181.2,1115.6%20181.2,949.6'%20stroke='%23FFFFFF'%20stroke-opacity='0.088'%20stroke-width='1.1'/%3E%3Cpolygon%20points='1120.5,405.2%201052.9,444.2%201052.9,522.2%201120.5,561.2%201188.0,522.2%201188.0,444.2'%20stroke='%23FFFFFF'%20stroke-opacity='0.076'%20stroke-width='1.1'/%3E%3Cpolygon%20points='571.6,231.3%20504.1,270.3%20504.1,348.3%20571.6,387.3%20639.2,348.3%20639.2,270.3'%20stroke='%23FFFFFF'%20stroke-opacity='0.158'%20stroke-width='1.0'/%3E%3Cpolygon%20points='930.9,532.8%20840.9,584.8%20840.9,688.8%20930.9,740.8%201021.0,688.8%201021.0,584.8'%20stroke='%238899BB'%20stroke-opacity='0.1'%20stroke-width='1.2'/%3E%3Cpolygon%20points='304.8,729.9%20237.3,768.9%20237.3,846.9%20304.8,885.9%20372.4,846.9%20372.4,768.9'%20stroke='%23A9BBDC'%20stroke-opacity='0.143'%20stroke-width='1.0'/%3E%3Cpolygon%20points='1217.7,721.1%201150.2,760.1%201150.2,838.1%201217.7,877.1%201285.3,838.1%201285.3,760.1'%20stroke='%23FFFFFF'%20stroke-opacity='0.071'%20stroke-width='1.1'/%3E%3Cpolygon%20points='17.7,721.1%20-49.8,760.1%20-49.8,838.1%2017.7,877.1%2085.3,838.1%2085.3,760.1'%20stroke='%23FFFFFF'%20stroke-opacity='0.071'%20stroke-width='1.1'/%3E%3C/g%3E%3C/svg%3E");

  --shell:1240px;          /* largeur maximale du contenu */
  --gut:clamp(1rem,4vw,1.6rem);
  --sec-y:clamp(3.2rem,6vw,5rem);
  --r:3px;                 /* rayon des angles : volontairement très faible */
}

/* ============================ 2. BASE ================================== */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:'Barlow','Segoe UI',system-ui,-apple-system,Arial,sans-serif;
  font-size:16.5px;line-height:1.65;color:var(--ink);
  background:#fbfcfe;
  overflow-x:hidden;
}

/* Fond nid d'abeille permanent, fixe, sans fond de couleur */
body::before{
  content:"";position:fixed;inset:-160px;z-index:-2;
  background-image:var(--hex-light);
  background-size:1200px 900px;
  opacity:1;pointer-events:none;
  animation:hexDrift 120s ease-in-out infinite alternate;
  will-change:transform;
}
/* Voile clair pour adoucir le motif en haut et en bas de l'écran */
body::after{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.45),rgba(255,255,255,.16) 45%,rgba(255,255,255,.5));
}

img,svg,video{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{color:var(--navy);margin:0 0 .6rem;line-height:1.18}
h1,h2{font-family:'Barlow Condensed','Barlow',sans-serif;font-weight:700;letter-spacing:.005em}
h1{font-size:clamp(2.1rem,5vw,3.35rem);text-transform:none}
h2{font-size:clamp(1.65rem,3.6vw,2.4rem)}
h3{font-size:1.06rem;font-weight:600;letter-spacing:.005em}
h4{font-size:.95rem;font-weight:600}
p{margin:0 0 1rem}
a{color:var(--navy);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:var(--orange)}
a:hover{color:var(--orange-700)}
ul,ol{margin:0 0 1rem;padding-left:1.15rem}
li{margin-bottom:.35rem}
strong{font-weight:600}
:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
::selection{background:var(--navy);color:#fff}

.shell{max-width:var(--shell);margin-inline:auto;padding-inline:var(--gut)}
.skip{position:absolute;left:-9999px;background:var(--navy);color:#fff;padding:.7rem 1.1rem;z-index:2000}
.skip:focus{left:1rem;top:.5rem}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ==================== 3. BANDEAU HAUT + EN-TÊTE ======================== */
/* L'ensemble reste collé en haut de l'écran pendant le défilement.        */
.topfix{position:sticky;top:0;z-index:900}

.utility{
  overflow:hidden;
  background:var(--navy-deep);color:#C8D3E8;
  font-size:.86rem;line-height:1.2;letter-spacing:.01em;
  border-bottom:1px solid rgba(255,255,255,.10);
  position:relative;
}
.utility::before{
  content:"";position:absolute;inset:-140px;
  background-image:var(--hex-dark);background-size:1200px 900px;opacity:.85;pointer-events:none;
}
.utility .shell{display:flex;align-items:center;gap:.9rem;min-height:40px;position:relative}
.utility a{color:#DCE5F5;text-decoration:none;white-space:nowrap}
.utility a:hover{color:var(--orange)}
.u-sep{width:1px;height:14px;background:rgba(255,255,255,.22);flex:none}
.u-claim{
  color:#fff;font-weight:500;font-style:italic;white-space:nowrap;
}
.u-claim b{color:var(--orange);font-weight:600;font-style:normal}
.u-spacer{flex:1 1 auto}
.u-lang{display:flex;align-items:center;gap:.15rem;flex:none}
.u-lang button{
  background:none;border:1px solid rgba(255,255,255,.25);color:#C8D3E8;
  font:inherit;font-size:.88rem;font-weight:700;padding:.16rem .52rem;border-radius:var(--r);cursor:pointer;
}
.u-lang button[aria-pressed="true"]{background:var(--orange);border-color:var(--orange);color:#fff}
.u-lang span{color:rgba(255,255,255,.35)}

.masthead{background:#fff;border-bottom:1px solid var(--line);box-shadow:0 1px 0 rgba(1,30,86,.04);transition:box-shadow .3s ease}
.masthead .shell{display:flex;align-items:center;gap:1.6rem;min-height:134px;transition:min-height .35s ease}
.brand{flex:none;display:block;line-height:0;position:relative}
.brand img{height:110px;width:auto;transition:height .35s ease}
.nav{margin-left:auto}
.nav ul{display:flex;gap:1.15rem;list-style:none;margin:0;padding:0}
.nav a{
  font-size:1.02rem;font-weight:600;color:var(--navy);text-decoration:none;
  padding:.45rem 0;display:block;border-bottom:2px solid transparent;white-space:nowrap;
}
.nav a:hover{border-bottom-color:var(--orange);color:var(--orange-700)}
.nav a[aria-current="page"]{border-bottom-color:var(--orange)}
.burger{
  display:none;margin-left:auto;background:#fff;border:1px solid var(--line-strong);
  border-radius:var(--r);width:44px;height:40px;cursor:pointer;color:var(--navy);
  align-items:center;justify-content:center;
}
.burger span,.burger span::before,.burger span::after{
  content:"";display:block;width:20px;height:2px;background:var(--navy);position:relative
}
.burger span::before{top:-6px}
.burger span::after{top:4px}

/* ============================ 4. BOUTONS =============================== */
.btn{
  display:inline-block;font:inherit;font-weight:600;font-size:.93rem;
  padding:.72rem 1.3rem;border-radius:var(--r);text-decoration:none;text-align:center;
  border:2px solid transparent;cursor:pointer;transition:background .16s,color .16s,border-color .16s;
}
.btn-main{background:var(--orange);color:#fff;border-color:var(--orange)}
.btn-main:hover{background:var(--orange-700);border-color:var(--orange-700);color:#fff}
.btn-ghost{border-color:var(--navy);color:var(--navy);background:transparent}
.btn-ghost:hover{background:var(--navy);color:#fff}
.btn-sm{padding:.5rem .95rem;font-size:.84rem}
.hero .btn-ghost,.page-head .btn-ghost,.sec--navy .btn-ghost,.cta-band .btn-ghost{
  border-color:rgba(255,255,255,.78);color:#fff;background:transparent}
.hero .btn-ghost:hover,.page-head .btn-ghost:hover,.sec--navy .btn-ghost:hover,.cta-band .btn-ghost:hover{
  background:#fff;color:var(--navy)}
.btns{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.5rem}

/* ============================ 5. SECTIONS ============================== */
.sec{padding:var(--sec-y) 0;position:relative}
.sec--alt{background:var(--paper-2);border-block:1px solid var(--line)}
.sec--navy{background:var(--navy-bg);color:#D4DDEF;position:relative;overflow:hidden}
.sec--navy h2,.sec--navy h3,.sec--navy h4{color:#fff}
.sec--navy a{color:#fff}
.sec--navy::before{
  content:"";position:absolute;inset:-140px;background-image:var(--hex-dark);
  background-size:1200px 900px;opacity:1;pointer-events:none;
}
.sec--navy .shell{position:relative}

/* Titre de section : filet orange vertical, repris de la plaquette ECI */
.tl{display:flex;gap:.85rem;align-items:flex-start;margin-bottom:1.6rem}
.tl::before{content:"";flex:none;width:4px;align-self:stretch;background:var(--orange);margin-top:.28rem}
.tl h2,.tl h1{margin:0}
.tl .kicker{
  display:block;font-family:'Barlow',sans-serif;font-size:.74rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--orange-700);margin-bottom:.25rem;
}
.sec--navy .tl .kicker{color:var(--orange)}
.lead{font-size:1.08rem;color:var(--ink-soft);max-width:70ch}
.sec--navy .lead{color:#C2CFE6}
.narrow{max-width:74ch}

/* ============================ 6. GRILLES =============================== */
.grid{display:grid;gap:1.25rem}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.5rem,4vw,3rem);align-items:center}
.split--wide{grid-template-columns:1.25fr .75fr;align-items:start}

/* ============================ 7. BLOCS ================================= */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.4rem 1.35rem}
.card p{font-size:.92rem;color:var(--ink-soft);margin-bottom:0}
.card p+p{margin-top:.7rem}
.card--edge{border-top:3px solid var(--orange)}
.card--flat{background:transparent;border:0;padding:0}
a.card{text-decoration:none;display:block;transition:border-color .16s,transform .16s}
a.card:hover{border-color:var(--navy);transform:translateY(-2px)}
.sec--navy .card{background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.2)}
.sec--navy .card p{color:#C2CFE6}

.pillar{border:1px solid var(--line);border-radius:var(--r);background:#fff;padding:1.5rem 1.4rem;position:relative}
.pillar .pillar-h{
  font-family:'Barlow Condensed',sans-serif;font-size:1.5rem;font-weight:700;
  color:var(--navy);text-transform:uppercase;letter-spacing:.02em;margin-bottom:.15rem;
}
.pillar .pillar-s{font-size:.78rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--orange-700);margin-bottom:.8rem}
.pillar p{font-size:.92rem;color:var(--ink-soft);margin:0}

/* Listes à puce carrée orange */
.ticks{list-style:none;padding:0;margin:0}
.ticks li{position:relative;padding-left:1.45rem;margin-bottom:.55rem;font-size:.95rem;color:var(--ink-soft)}
.ticks li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;background:var(--orange)}
.ticks--navy li::before{background:var(--navy)}
.sec--navy .ticks li{color:#C2CFE6}
.sec--navy .ticks li::before{background:var(--orange)}

/* Étapes numérotées — réservées aux séquences réelles */
.steps{display:grid;gap:1.1rem;grid-template-columns:repeat(3,1fr);counter-reset:st}
.step{background:#fff;border:1px solid var(--line);border-left:3px solid var(--orange);border-radius:var(--r);padding:1.3rem 1.25rem}
.step .st-n{font-family:'Barlow Condensed',sans-serif;font-size:2.1rem;font-weight:700;color:var(--line-strong);line-height:1;margin-bottom:.3rem}
.step h3{margin-bottom:.4rem}
.step p{font-size:.9rem;color:var(--ink-soft);margin:0}
.sec--navy .step h3{color:var(--navy)}
.sec--navy .step p,.sec--navy .step .ticks li{color:var(--ink-soft)}

/* Encadrés d'information */
.note{border-left:3px solid var(--orange);background:#FFF6F0;padding:.95rem 1.15rem;font-size:.9rem;color:#6B3C1B;border-radius:0 var(--r) var(--r) 0;margin:1.3rem 0}
.note--navy{border-left-color:var(--navy);background:rgba(240,243,249,.9);color:#2B3550}
.note p:last-child{margin-bottom:0}
.hint{font-size:.83rem;color:var(--grey)}

/* Figures et médias */
.fig{margin:0;border:1px solid var(--line);background:#fff;border-radius:var(--r);overflow:hidden}
.fig img{width:100%;display:block}
.split .fig img{max-height:560px;object-fit:cover;object-position:center 30%}
.fig figcaption{font-size:.8rem;color:var(--ink-soft);padding:.6rem .85rem;border-top:1px solid var(--line);background:#fff}
.fig--tall img{aspect-ratio:3/4;object-fit:cover}
.fig--wide img{aspect-ratio:16/9;object-fit:cover}
.fig--portrait img{aspect-ratio:1/1;object-fit:cover;object-position:center 45%}
.zoom{cursor:zoom-in}
.media-frame{position:relative}
.media-frame::after{content:"";position:absolute;inset:auto -14px -14px auto;width:78px;height:78px;border:2px solid var(--orange);z-index:-1}

video{background:#000;border-radius:var(--r);width:100%}
.video-note{font-size:.82rem;color:var(--ink-soft);margin-top:.5rem}
.sec--navy .video-note{color:#9FB2D2}

/* Tableaux */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:#fff}
table{width:100%;border-collapse:collapse;font-size:.92rem;background:#fff}
caption{caption-side:bottom;text-align:left;font-size:.8rem;color:var(--grey);padding:.6rem .85rem}
th,td{padding:.72rem .9rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
thead th{background:var(--navy);color:#fff;font-weight:600;font-size:.85rem;letter-spacing:.02em}
tbody th{background:rgba(240,243,249,.85);color:var(--navy);font-weight:600;width:34%}
tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}

/* Paires libellé / valeur */
.dl{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.dl li{display:flex;justify-content:space-between;gap:1rem;padding:.65rem 0;border-bottom:1px solid var(--line);font-size:.93rem}
.dl li span:first-child{color:var(--ink-soft)}
.dl li span:last-child{font-weight:600;color:var(--navy);text-align:right}

/* Comparatif deux colonnes */
.vs{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff}
.vs-h{padding:.85rem 1.15rem;font-weight:600;font-size:.95rem;color:#fff}
.vs-h.a{background:var(--grey)}
.vs-h.b{background:var(--navy)}
.vs ul{list-style:none;margin:0;padding:1.1rem 1.15rem}
.vs li{position:relative;padding-left:1.35rem;margin-bottom:.6rem;font-size:.92rem;color:var(--ink-soft)}
.vs li:last-child{margin-bottom:0}
.vs li::before{position:absolute;left:0;font-weight:700}
.vs.a li::before{content:"–";color:var(--grey)}
.vs.b li::before{content:"+";color:var(--orange)}

/* Fil d'Ariane */
.crumb{background:rgba(240,243,249,.8);border-bottom:1px solid var(--line);font-size:.8rem;padding:.6rem 0;color:var(--ink-soft)}
.crumb a{color:var(--navy);text-decoration:none}
.crumb a:hover{text-decoration:underline}
.crumb .sep{margin:0 .45rem;color:var(--line-strong)}

/* ============================ 8. HERO ================================== */
.hero{background:var(--navy-bg);color:#fff;position:relative;overflow:hidden;padding:clamp(2.6rem,5vw,4.2rem) 0 clamp(2.6rem,5vw,4rem)}
.hero::before{content:"";position:absolute;inset:-140px;background-image:var(--hex-dark);background-size:1200px 900px;opacity:1}
.hero::after{
  content:"";position:absolute;right:-90px;top:-70px;width:420px;height:420px;
  background:radial-gradient(circle at 60% 40%,rgba(254,98,13,.28),transparent 62%);pointer-events:none;
}
.hero .shell{position:relative;z-index:1}
.hero-grid{display:grid;grid-template-columns:1.06fr .94fr;gap:clamp(1.6rem,4vw,3rem);align-items:center}
.hero h1{color:#fff;max-width:16ch;margin-bottom:1rem}
.hero .lead{color:#C4D1E8;max-width:56ch}
.claim{
  display:inline-flex;align-items:center;gap:.6rem;margin-bottom:1.1rem;
  font-size:.82rem;font-weight:600;letter-spacing:.17em;text-transform:uppercase;color:var(--orange);
}
.claim::before{content:"";width:34px;height:2px;background:var(--orange)}
.hero-media{border:1px solid rgba(255,255,255,.22);border-radius:var(--r);overflow:hidden;background:rgba(255,255,255,.05)}
.hero-media img,.hero-media video{width:100%;display:block;aspect-ratio:4/3.4;object-fit:cover}

.page-head{background:var(--navy-bg);color:#fff;position:relative;overflow:hidden;padding:clamp(2.2rem,4.5vw,3.2rem) 0}
.page-head::before{content:"";position:absolute;inset:-140px;background-image:var(--hex-dark);background-size:1200px 900px;opacity:1}
.page-head .shell{position:relative;z-index:1}
.page-head h1{color:#fff;margin-bottom:.7rem}
.page-head .lead{color:#C4D1E8}

/* =================== 9. HEXAGONES (schéma d'approche) ================== */
.hexmap{width:100%;max-width:520px;margin-inline:auto}
.hexmap text{font-family:'Barlow',sans-serif}

/* ============================ 10. BANDE CTA ============================ */
.cta-band{background:var(--navy-deep);color:#C8D3E8;position:relative;overflow:hidden;padding:clamp(2.2rem,4vw,3rem) 0}
.cta-band::before{content:"";position:absolute;inset:-140px;background-image:var(--hex-dark);background-size:1200px 900px;opacity:.9}
.cta-band .shell{position:relative;display:flex;align-items:center;justify-content:space-between;gap:1.6rem;flex-wrap:wrap}
.cta-band h2{color:#fff;margin-bottom:.35rem}
.cta-band p{margin:0;color:#B9C7E0}

/* ============================ 11. FORMULAIRES ========================== */
form.eci{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:clamp(1.2rem,3vw,1.8rem)}
fieldset{border:0;margin:0 0 1.3rem;padding:0}
legend{font-weight:600;color:var(--navy);font-size:.98rem;margin-bottom:.7rem;padding:0}
.field{margin-bottom:.95rem}
.field label{display:block;font-size:.86rem;font-weight:600;color:var(--navy);margin-bottom:.3rem}
.req{color:var(--orange-700)}
input[type=text],input[type=email],input[type=tel],select,textarea{
  width:100%;font:inherit;font-size:.95rem;padding:.62rem .7rem;
  border:1px solid #C2CBDB;border-radius:var(--r);background:#fff;color:var(--ink);
}
textarea{min-height:130px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--navy);outline:3px solid rgba(254,98,13,.3);outline-offset:0}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.checks{display:grid;grid-template-columns:repeat(2,1fr);gap:.35rem}
.chk{display:flex;gap:.55rem;align-items:flex-start;font-size:.88rem;color:var(--ink-soft);font-weight:400}
.field label.chk{display:flex;gap:.55rem;align-items:flex-start;font-weight:400;color:var(--ink-soft)}
.chk input{margin-top:.3rem;flex:none}
.consent{font-size:.84rem;line-height:1.55}
.form-ok{display:none;border-left:3px solid #1C7A4B;background:#EEFAF3;padding:.9rem 1.1rem;font-size:.9rem;color:#14563A;border-radius:0 var(--r) var(--r) 0;margin-bottom:1rem}
.form-ok.on{display:block}
.pot{position:absolute;left:-9999px}

/* ============================ 12. PIED DE PAGE ========================= */
footer.site{background:var(--navy-deep);color:#AFBFDB;padding:clamp(2.4rem,5vw,3.2rem) 0 1.4rem;font-size:.9rem;position:relative;overflow:hidden}
footer.site::before{content:"";position:absolute;inset:-140px;background-image:var(--hex-dark);background-size:1200px 900px;opacity:.85}
footer.site .shell{position:relative}
footer.site h4{color:#fff;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.85rem}
footer.site a{color:#C3D0E7;text-decoration:none}
footer.site a:hover{color:var(--orange);text-decoration:underline}
footer.site ul{list-style:none;margin:0;padding:0}
footer.site li{margin-bottom:.4rem}
.fgrid{display:grid;grid-template-columns:1.35fr .85fr 1fr 1.5fr;gap:clamp(1.4rem,3vw,2.4rem)}
.f-logo img{height:88px;width:auto;margin-bottom:1rem}
.f-claim{color:var(--orange);font-weight:600;font-style:italic}
.addr{font-style:normal;line-height:1.6}
.addr .addr-t{display:block;color:var(--navy);font-weight:600;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.15rem}
footer.site .addr .addr-t{color:#fff}
.addr+.addr{margin-top:.9rem}
.fbot{border-top:1px solid rgba(255,255,255,.14);margin-top:2rem;padding-top:1.1rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.82rem}

/* ============================ 13. VISIONNEUSE ========================== */
.lb{position:fixed;inset:0;background:rgba(1,19,58,.94);z-index:1500;display:none;align-items:center;justify-content:center;padding:2.5rem 1rem}
.lb.on{display:flex}
.lb img{max-width:min(1400px,96vw);max-height:88vh;width:auto;border:1px solid rgba(255,255,255,.2)}
.lb-close{position:absolute;top:1rem;right:1rem;background:#fff;border:0;border-radius:var(--r);width:42px;height:42px;font-size:1.4rem;line-height:1;color:var(--navy);cursor:pointer}
.lb-cap{position:absolute;bottom:1rem;left:0;right:0;text-align:center;color:#C8D3E8;font-size:.85rem;padding:0 1rem}


/* ================= 13 bis. FINITIONS PREMIUM ET ANIMATIONS ============== */

/* --- Nid d'abeille : dérive lente et respiration discrète --------------- */
@keyframes hexDrift{
  0%  {transform:translate3d(0,0,0)}
  50% {transform:translate3d(-60px,-38px,0)}
  100%{transform:translate3d(-110px,-24px,0)}
}
@keyframes hexDriftAlt{
  0%  {transform:translate3d(-90px,-30px,0)}
  100%{transform:translate3d(0,-70px,0)}
}
@keyframes hexBreath{
  0%,100%{opacity:.78}
  50%    {opacity:1}
}
.hero::before,.page-head::before,.sec--navy::before{
  animation:hexDriftAlt 90s ease-in-out infinite alternate, hexBreath 14s ease-in-out infinite;
  will-change:transform,opacity;
}
.cta-band::before,footer.site::before,.utility::before{
  animation:hexDrift 150s ease-in-out infinite alternate;
  will-change:transform;
}

/* --- Logo : point orange qui clignote simplement ------------------------ */
@keyframes eciBlink{
  0%,58%,100%{opacity:0}
  66%,86%    {opacity:.9}
}
.brand::after{
  content:"";position:absolute;pointer-events:none;
  left:81.9%;top:53.45%;width:8.15%;aspect-ratio:1/1;border-radius:50%;
  background:#fff;opacity:0;
  animation:eciBlink 2.8s ease-in-out infinite;
}

/* --- En-tête compact pendant le défilement ------------------------------ */
.topfix.is-scrolled .masthead{box-shadow:0 10px 30px rgba(0,8,31,.10)}
.topfix.is-scrolled .masthead .shell{min-height:96px}
.topfix.is-scrolled .brand img{height:78px}

/* --- Apparition progressive des blocs ----------------------------------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}

/* --- Chiffres clés ------------------------------------------------------ */
.hero{padding-bottom:clamp(5rem,8vw,6.6rem)}
.keyfigs{position:relative;z-index:3;margin-top:-58px}
.kf-grid{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;
  border:1px solid var(--line);border-radius:6px;box-shadow:0 24px 60px rgba(0,8,31,.14);overflow:hidden}
.kf{padding:1.6rem 1.5rem 1.5rem;position:relative}
.kf+.kf{border-left:1px solid var(--line)}
.kf::before{content:"";position:absolute;left:1.5rem;top:0;width:34px;height:3px;background:var(--orange)}
.kf-n{display:block;font-family:'Barlow Condensed','Barlow',sans-serif;font-weight:700;
  font-size:clamp(2.3rem,4vw,3rem);line-height:1;color:var(--navy);margin:.45rem 0 .4rem}
.kf-n sup{font-size:.5em;color:var(--orange);vertical-align:super;margin-left:.05em}
.kf-l{display:block;font-size:.9rem;line-height:1.45;color:var(--ink-soft)}

/* --- Cartes, boutons, figures ------------------------------------------- */
.card,.pillar,.step,.vs,.fig,.table-wrap{border-radius:6px}
.card,.pillar,.step{transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}
.card:hover,.pillar:hover,.step:hover{border-color:#C9D3E4;box-shadow:0 16px 40px rgba(0,8,31,.08);transform:translateY(-3px)}
.sec--navy .card:hover{box-shadow:0 16px 40px rgba(0,0,0,.25)}
.btn{border-radius:4px;letter-spacing:.01em}
.btn-main::after{content:"→";display:inline-block;margin-left:.55rem;transition:transform .2s ease}
.btn-main:hover::after{transform:translateX(3px)}
.btn-main{box-shadow:0 8px 22px rgba(254,98,13,.28)}
.fig{position:relative;box-shadow:0 14px 36px rgba(0,8,31,.07)}
.fig:has(img.zoom)::after{
  content:"⤢";position:absolute;top:.7rem;right:.7rem;width:34px;height:34px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:1rem;color:var(--navy);
  background:rgba(255,255,255,.92);box-shadow:0 4px 14px rgba(0,8,31,.18);
  opacity:0;transition:opacity .25s ease;pointer-events:none}
.fig:hover::after{opacity:1}
.fig img.zoom{transition:transform .6s ease}
.fig:hover img.zoom{transform:scale(1.025)}
.hero-media{border-radius:6px;box-shadow:0 30px 70px rgba(0,0,0,.35)}
video{border-radius:6px;box-shadow:0 20px 50px rgba(0,0,0,.28)}

/* --- Titres ------------------------------------------------------------- */
h1,h2{letter-spacing:-.005em}
.hero h1{font-size:clamp(2.5rem,5.6vw,4rem);line-height:1.05}
.page-head h1{font-size:clamp(2.3rem,4.8vw,3.4rem);line-height:1.08}
.tl .kicker{letter-spacing:.18em}

/* --- Mentions discrètes ------------------------------------------------- */
.fine{font-size:.8rem;line-height:1.55;color:var(--grey);margin-top:1rem;max-width:80ch}
.sec--navy .fine{color:#8FA0C2}

/* ============================ 14. RESPONSIVE =========================== */
@media(max-width:1200px){
  .nav ul{gap:.9rem}
  .nav a{font-size:.94rem}
  .brand img{height:92px}
  .masthead .shell{min-height:118px}
  .topfix.is-scrolled .brand img{height:70px}
  .topfix.is-scrolled .masthead .shell{min-height:88px}
}
@media(max-width:1040px){
  .burger{display:inline-flex}
  .nav{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);
       box-shadow:0 10px 24px rgba(1,30,86,.12);display:none;margin:0}
  .nav.open{display:block}
  .nav ul{flex-direction:column;gap:0;padding:.4rem var(--gut) 1rem}
  .nav li{border-bottom:1px solid var(--line)}
  .nav a{padding:.9rem 0}
  .masthead{position:relative}
  .masthead .shell{min-height:96px}
  .brand img{height:74px}
  .topfix.is-scrolled .brand img{height:58px}
  .topfix.is-scrolled .masthead .shell{min-height:78px}
  .kf-grid{grid-template-columns:repeat(2,1fr)}
  .kf:nth-child(3){border-left:0}
  .kf:nth-child(n+3){border-top:1px solid var(--line)}
  .nav a{font-size:1.06rem}
  .hero-grid,.split,.split--wide,.g2,.g3,.g4,.steps,.f2,.checks{grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr 1fr}
  .media-frame::after{display:none}
}
@media(max-width:760px){
  body::before,.utility::before,.hero::before,.page-head::before,
  .sec--navy::before,.cta-band::before,footer.site::before{background-size:820px 615px}
  .u-claim{display:none}
  .utility .shell{gap:.6rem}
}
@media(max-width:560px){
  .brand img{height:64px}
  .topfix.is-scrolled .brand img{height:52px}
  .kf{padding:1.2rem 1rem}
  .keyfigs{margin-top:-36px}
  .u-mail,.u-sep.s1,.u-sep.s2{display:none}
  .fgrid{grid-template-columns:1fr}
  .fbot{flex-direction:column}
  body{font-size:16px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}

/* ============================ 15. IMPRESSION =========================== */
@media print{
  .topfix,.burger,.cta-band,.lb,form.eci{display:none!important}
  body::before,body::after{display:none}
  body{font-size:11pt;color:#000}
  .sec--navy,.hero,.page-head,footer.site{background:#fff!important;color:#000!important}
  .sec--navy h2,.hero h1,.page-head h1,footer.site h4{color:#000!important}
  a{text-decoration:none;color:#000}
}
