/* POLVA · feuille de style unique · refonte v2 (octobre 2026)
   Direction : site de marque, lumineux et photographique. Grandes typographies (Cabinet Grotesk),
   texte en Satoshi, vraies photos (Unsplash), animations au scroll (GSAP + Lenis).
   Logo, couleurs de marque et contenus inchangés. */

/* ---------- polices auto-hébergées ---------- */
@font-face{font-family:'Cabinet Grotesk';src:url('cabinet-grotesk-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Cabinet Grotesk';src:url('cabinet-grotesk-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Cabinet Grotesk';src:url('cabinet-grotesk-800.woff2') format('woff2');font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:'Satoshi';src:url('satoshi-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Satoshi';src:url('satoshi-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Satoshi';src:url('satoshi-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Readex Pro';src:url('readex-arabic.woff2') format('woff2');font-weight:160 700;font-style:normal;font-display:swap;
  unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}

/* ---------- jetons ---------- */
:root{
  /* couleurs de marque (inchangées) */
  --night:#040b1f;--navy:#0a1535;--blue:#1a73ff;--cyan:#3ea8ff;--cyan-light:#5bc8ff;
  --gold:#ffcf5b;--gold-2:#ffb547;--green:#3ddc97;--violet:#8b5cf6;
  /* bleu d'action : même teinte, un cran plus dense pour le texte blanc (AA) */
  --blue-ink:#1868ea;--blue-ink-2:#1259cc;--blue-soft:#e8f0ff;
  /* surfaces claires */
  --white:#ffffff;--paper:#f3f5fa;--paper-2:#e9edf5;--line:#e2e7f0;--line-2:#cdd5e3;
  /* encres */
  --ink:#0a1535;--body:#3a4766;--muted:#5d6987;
  /* compatibilité avec les maquettes d'écrans */
  --bg:#040b1f;--bg-2:#0a1535;--text:#e9eefc;--text-dim:#c2cde8;--text-faint:#93a1c8;
  --card:rgba(255,255,255,.045);--card-2:rgba(255,255,255,.07);--line-dark:rgba(255,255,255,.12);
  --g-blue:linear-gradient(135deg,#1a73ff,#3ea8ff);--g-cyan:linear-gradient(135deg,#1795d8,#5bc8ff);
  --g-gold:linear-gradient(135deg,#ffb547,#ffcf5b);--g-green:linear-gradient(135deg,#17b47c,#3ddc97);
  --g-violet:linear-gradient(135deg,#6d4df2,#9b74ff);
  /* typographie */
  --display:'Cabinet Grotesk','Satoshi',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font:'Satoshi',system-ui,-apple-system,'Segoe UI',sans-serif;
  /* rythme */
  --wrap:1320px;--pad:clamp(20px,4vw,48px);--sp:clamp(88px,11vw,168px);
  --r-sm:14px;--r:22px;--r-lg:32px;--pill:999px;
  --ease:cubic-bezier(.22,1,.36,1);--ease-out:cubic-bezier(.23,1,.32,1);
  --shadow:0 24px 48px -24px rgba(10,21,53,.28);
  --radius:22px;
}
[lang=ar]{--display:'Readex Pro','Cabinet Grotesk',system-ui,sans-serif;--font:'Readex Pro','Satoshi',system-ui,sans-serif}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{font-family:var(--font);font-size:17px;line-height:1.6;background:var(--white);color:var(--body);overflow-x:clip;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
::selection{background:var(--blue);color:#fff}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block;height:auto}
b,strong{font-weight:700;color:var(--ink)}
input,select,textarea,button{font:inherit;color:inherit}
:focus-visible{outline:2.5px solid var(--blue);outline-offset:3px;border-radius:6px}
.skip-link{position:absolute;inset-inline-start:12px;top:-80px;z-index:100;background:var(--ink);color:#fff;font-weight:700;
  padding:12px 20px;border-radius:var(--pill);transition:top .2s var(--ease-out)}
.skip-link:focus{top:12px}
.hp{position:absolute;inset-inline-start:-9999px;opacity:0}

/* ---------- typographie ---------- */
h1,h2,h3,h4{font-family:var(--display);color:var(--ink);font-weight:800}
h1,h2{text-wrap:balance}
h1{font-size:clamp(46px,6.4vw,96px);line-height:.95;letter-spacing:-.035em;margin-bottom:28px}
h2{font-size:clamp(36px,4.7vw,72px);line-height:.98;letter-spacing:-.032em}
h3{font-size:clamp(21px,1.8vw,26px);line-height:1.12;letter-spacing:-.012em;font-weight:700}
h4{font-weight:700}
[lang=ar] h1,[lang=ar] h2,[lang=ar] h3{letter-spacing:0;line-height:1.25;font-weight:700}
[lang=ar] h1{line-height:1.2}
p{text-wrap:pretty}
.lead{font-size:clamp(18px,1.45vw,21px);line-height:1.55;color:var(--body);max-width:56ch;font-weight:500}
.grad{color:inherit}
em{font-style:italic}

/* ---------- mise en page ---------- */
.container{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad);position:relative}
.section{padding-block:var(--sp);position:relative}
.section-head{max-width:900px;margin-bottom:clamp(44px,5.5vw,80px)}
.section-head .lead{margin-top:22px}
.eyebrow{display:inline-block;font-family:var(--font);font-size:16px;font-weight:700;line-height:1.3;color:var(--blue-ink);margin-bottom:18px}
.eyebrow .dot{display:none}
.eyebrow.gold{color:var(--blue-ink)}
.more{margin-top:48px}
.center-note{margin-top:40px;color:var(--muted);font-size:16px;max-width:70ch}
.center-note a:not(.btn){color:var(--blue-ink);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.paper{background:var(--paper)}

/* ---------- boutons : pilules ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 28px;border-radius:var(--pill);
  border:1.5px solid transparent;font-family:var(--font);font-size:16.5px;font-weight:700;line-height:1.15;letter-spacing:-.005em;
  text-align:center;cursor:pointer;white-space:nowrap;position:relative;overflow:hidden;isolation:isolate;
  transition:background-color .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease),transform .2s var(--ease-out),box-shadow .25s var(--ease)}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--blue-ink);color:#fff;box-shadow:0 10px 24px -12px rgba(24,104,234,.7)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn-light{background:#fff;color:var(--ink)}
.btn-ghost-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
@media (hover:hover) and (pointer:fine){
  .btn-primary:hover{background:var(--blue-ink-2);box-shadow:0 16px 30px -14px rgba(24,104,234,.8)}
  .btn-ghost:hover{border-color:var(--ink);background:var(--ink);color:#fff}
  .btn-light:hover{background:var(--blue-soft)}
  .btn-ghost-light:hover{background:#fff;color:var(--ink);border-color:#fff}
}
.btn:disabled{opacity:.6;cursor:progress}

/* ---------- navigation ---------- */
.nav{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.86);border-bottom:1px solid transparent;
  transition:transform .45s var(--ease),border-color .3s ease,background-color .3s ease}
@supports (backdrop-filter:blur(1px)){.nav{background:rgba(255,255,255,.72);backdrop-filter:saturate(1.6) blur(18px)}}
.nav.is-scrolled{border-bottom-color:var(--line)}
.nav.is-hidden{transform:translateY(-100%)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:76px}
.logo{display:inline-flex;align-items:center;gap:12px;font-family:var(--display);font-weight:800;font-size:23px;letter-spacing:.02em;color:var(--ink)}
.logo-mark{width:40px;height:40px;border-radius:11px;overflow:hidden;flex:none}
.nav-links{display:flex;align-items:center;gap:6px}
.nav-links a{position:relative;color:var(--ink);font-size:16px;font-weight:500;padding:10px 16px;border-radius:var(--pill);transition:background-color .2s ease,color .2s ease}
.nav-links a:hover{background:var(--paper)}
.nav-links a.active{background:var(--ink);color:#fff}
.nav-right{display:flex;align-items:center;gap:12px}
.lang-switch{display:flex;align-items:center;background:var(--paper);border-radius:var(--pill);padding:4px}
.lang-switch a{font-size:13.5px;font-weight:700;color:var(--muted);min-width:38px;height:32px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:var(--pill);transition:color .2s ease,background-color .2s ease}
.lang-switch a.on{background:#fff;color:var(--ink);box-shadow:0 2px 8px -2px rgba(10,21,53,.2)}
.lang-switch a:hover:not(.on){color:var(--ink)}
.nav-cta{min-height:46px;padding:0 22px;font-size:15px}
.burger{display:none;width:46px;height:46px;align-items:center;justify-content:center;flex-direction:column;gap:5px;
  background:var(--paper);border:0;border-radius:var(--pill);cursor:pointer}
.burger span{display:block;width:20px;height:2px;background:var(--ink);border-radius:2px;transition:transform .3s var(--ease),opacity .2s ease}
.burger[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded=true] span:nth-child(2){opacity:0}
.burger[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{background:#fff;border-top:1px solid var(--line);padding:8px var(--pad) 28px}
.mobile-menu[hidden]{display:none}
.mobile-menu a:not(.btn){display:block;padding:16px 0;border-bottom:1px solid var(--line);font-family:var(--display);font-size:26px;font-weight:700;color:var(--ink)}
.mobile-menu .btn{width:100%;margin-top:22px}

/* ---------- pictogrammes : pastilles rondes ---------- */
.ico-tile{width:52px;height:52px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none;
  background:var(--blue-soft);color:var(--blue-ink);margin-bottom:22px}
.ico-tile svg{width:24px;height:24px}
.ico-tile.sm{width:42px;height:42px;margin-bottom:0}
.ico-tile.sm svg{width:20px;height:20px}
.ico-tile.duo{width:auto;padding-inline:15px;gap:10px;border-radius:var(--pill);background:var(--paper-2);color:var(--ink)}
.ico-tile.duo svg{width:22px;height:22px}
.ico-tile.duo svg+svg{color:#0b7a50}
.deliv-grid .ico-tile.duo{background:#fff}
.ico-tile.ac-gold{background:#fff3cf;color:#8a5a00}
.ico-tile.ac-green{background:#e3f8ef;color:#0b7a50}
.ico-tile.ac-violet{background:#efe9ff;color:#5b34d6}
.ico-tile.ac-cyan{background:#e4f4ff;color:#0a6fb3}

/* ---------- téléphones (cadre des maquettes) ---------- */
.phone-stage{position:relative;display:flex;justify-content:center;align-items:center}
.phone{position:relative;width:250px;border-radius:40px;padding:9px;background:#0a1535;
  box-shadow:0 2px 0 1px #1f2f5c inset,0 40px 70px -30px rgba(10,21,53,.55),0 18px 30px -18px rgba(10,21,53,.4)}
.phone::before{content:'';position:absolute;top:9px;left:50%;transform:translateX(-50%);width:80px;height:20px;background:#0a1535;border-radius:0 0 13px 13px;z-index:4}
.phone>img{border-radius:31px;width:100%}
.phone .app{border-radius:31px}
.phone.phone-back{position:absolute;transform:translate(-46%,6%) rotate(-8deg) scale(.88);z-index:-1}
[dir=rtl] .phone.phone-back{transform:translate(46%,6%) rotate(8deg) scale(.88)}
.phone-stage{isolation:isolate}

/* ---------- écrans d'application (maquettes HTML/CSS, conservées) ---------- */
.app{position:relative;width:100%;aspect-ratio:244/516;border-radius:29px;overflow:hidden;
  background:#f4f6fa;color:#1b2436;font-size:10.5px;line-height:1.5;display:flex;flex-direction:column;
  text-align:start;pointer-events:none;user-select:none}
.app b,.app h4{font-family:var(--font);letter-spacing:0}
[dir=rtl] .app b,[dir=rtl] .app h4{font-family:inherit}
.app svg{flex:none}
.a-sb{position:relative;z-index:3;display:flex;justify-content:space-between;align-items:center;
  padding:9px 18px 4px;font-size:10px;font-weight:700;color:#1b2436}
.a-sb .a-sbi{display:flex;align-items:center}
.a-nav{margin-top:auto;position:relative;z-index:3;display:flex;align-items:flex-end;justify-content:space-around;
  padding:7px 8px 10px;background:rgba(255,255,255,.94);backdrop-filter:blur(6px);border-top:1px solid #e6eaf2}
.a-ni{display:flex;flex-direction:column;align-items:center;gap:2px;color:#96a0b5;font-size:7.6px;font-weight:600;width:44px}
.a-ni svg{width:16px;height:16px}
.a-ni i{font-style:normal}
.a-ni.on{color:#1a73ff}
.a-fab{width:44px;height:44px;border-radius:50%;background:var(--g-blue);display:flex;align-items:center;justify-content:center;
  margin-top:-24px;box-shadow:0 8px 18px rgba(26,115,255,.45);border:3px solid #fff}
.a-fab img{width:34px;height:34px;border-radius:50%}
.a-srch{display:flex;align-items:center;gap:7px;background:#fff;border:1px solid #e2e7f0;border-radius:99px;
  padding:8px 12px;color:#8d97ac;font-weight:500;box-shadow:0 6px 18px rgba(15,30,80,.08)}
.a-srch svg{width:13px;height:13px}
.a-srch span{flex:1;white-space:nowrap;overflow:hidden}
.a-srch .a-srmic{flex:none;color:#1a73ff}
.a-cta{display:inline-flex;align-items:center;justify-content:center;gap:5px;background:var(--g-blue);color:#fff;
  font-weight:700;font-size:9.5px;border-radius:99px;padding:7px 12px;box-shadow:0 6px 14px rgba(26,115,255,.35);white-space:nowrap}
.a-cta svg{width:11px;height:11px}
.a-cta.sm{padding:5.5px 10px;font-size:8.8px}
.a-cta.big{padding:9px 16px;font-size:10.5px;border-radius:12px}
.a-cta.gold{background:var(--g-gold);color:#3a2800;box-shadow:0 6px 14px rgba(255,181,71,.35)}
.a-tag{display:inline-flex;align-items:center;background:#e7f0ff;color:#1a5fd6;font-size:8px;font-weight:700;
  border-radius:99px;padding:2.5px 7px;white-space:nowrap}
.a-tag.inv{background:rgba(255,255,255,.2);color:#fff}
.a-stars{display:inline-flex;align-items:center;gap:3px;color:#f5a623;font-size:8.6px;font-weight:700}
.a-stars svg{width:10px;height:10px;fill:#f5a623;stroke:#f5a623}
.a-stars b{color:#1b2436}
.a-price{font-weight:800;color:#1b2436;font-size:10px;white-space:nowrap}
.a-thumb{width:36px;height:36px;border-radius:10px;overflow:hidden;flex:none}
.a-thumb svg{width:100%;height:100%;display:block}
.a-th{display:flex;align-items:center;justify-content:space-between;padding:8px 16px 6px}
.a-th h4{font-size:15px;font-weight:800}
.a-thn{width:26px;height:26px;border-radius:50%;background:#fff;border:1px solid #e2e7f0;display:flex;align-items:center;justify-content:center;color:#4a5670}
.a-thn svg{width:13px;height:13px}
.a-licard{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid #e9edf4;border-radius:13px;
  padding:8px 10px;margin:4px 14px 0;box-shadow:0 4px 12px rgba(15,30,80,.05)}
.a-poitxt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.a-poitxt b{font-size:9.8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.a-poitxt>span{color:#8d97ac;font-size:8.6px;white-space:nowrap;overflow:hidden}

/* écran carte */
.a-map .a-mapbg{position:absolute;inset:0}
.a-mapsvg{width:100%;height:100%;display:block}
.a-map .a-sb{text-shadow:0 1px 3px rgba(255,255,255,.8)}
.a-map .a-srch{position:absolute;top:34px;inset-inline:14px;z-index:3}
.a-poicard{position:absolute;bottom:64px;inset-inline:12px;z-index:3;display:flex;align-items:center;gap:9px;
  background:rgba(255,255,255,.97);border-radius:15px;padding:9px 10px;box-shadow:0 12px 30px rgba(10,20,50,.18)}
.a-rtdash{animation:routeFlow 1.6s linear infinite}
@keyframes routeFlow{to{stroke-dashoffset:-16}}

/* écran accueil */
.a-hh{position:relative;padding:6px 16px 14px;background:linear-gradient(160deg,#123c8f,#1a73ff 70%,#2f8fff);color:#fff;
  border-radius:0 0 22px 22px}
.a-home .a-sb{color:#fff}
.a-brand{display:flex;align-items:center;gap:7px;font-size:10px}
.a-brand b{font-size:10.5px}
.a-bdot{width:22px;height:22px;border-radius:7px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:8.5px}
.a-hbell{margin-inline-start:auto;position:relative;color:#fff}
.a-hbell svg{width:14px;height:14px}
.a-hbell::after{content:'';position:absolute;top:0;inset-inline-end:-1px;width:5px;height:5px;border-radius:50%;background:#ffcf5b}
.a-hh h4{font-size:16.5px;font-weight:800;margin:8px 0 9px}
.a-srch.in-h{border:none;box-shadow:none;background:rgba(255,255,255,.16);color:rgba(255,255,255,.75)}
.a-zban{display:flex;align-items:center;gap:8px;margin:12px 14px 0;background:linear-gradient(135deg,#0d2a66,#173f8f);
  color:#fff;border-radius:14px;padding:9px 11px;box-shadow:0 10px 24px rgba(13,42,102,.35)}
.a-zban img{border-radius:50%;flex:none}
.a-zban div{flex:1;min-width:0;display:flex;flex-direction:column}
.a-zban b{font-size:10px}
.a-zban span{font-size:8.6px;color:#a9c6ff;white-space:nowrap;overflow:hidden}
.a-zgo{width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;flex:none}
.a-zgo svg{width:11px;height:11px}
.a-cats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:12px 14px 0}
.a-cats span{display:flex;flex-direction:column;align-items:center;gap:4px;background:#fff;border:1px solid #e9edf4;
  border-radius:12px;padding:8px 2px;color:#1a5fd6;font-size:7.8px;font-weight:600}
.a-cats span i{font-style:normal;color:#4a5670}
.a-cats svg{width:15px;height:15px}
.a-sec{margin:12px 16px 2px;font-size:8.6px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:#8d97ac}

/* écran fiche lieu */
.a-place{background:#fff}
.a-phero{position:relative;height:200px;flex:none}
.a-phero svg{position:absolute;inset:0;width:100%;height:100%}
.a-back,.a-hrt{position:absolute;top:12px;width:26px;height:26px;border-radius:50%;background:rgba(10,20,50,.4);
  backdrop-filter:blur(4px);color:#fff;display:flex;align-items:center;justify-content:center}
.a-back{inset-inline-start:12px}
.a-back svg{width:13px;height:13px;transform:rotate(180deg)}
[dir=rtl] .a-back svg{transform:none}
.a-hrt{inset-inline-end:12px}
.a-hrt svg{width:13px;height:13px}
.a-open{position:absolute;bottom:10px;inset-inline-start:12px;background:rgba(10,25,60,.55);backdrop-filter:blur(4px);
  color:#7dffc0;font-size:8.4px;font-weight:700;border-radius:99px;padding:3px 9px}
.a-pbody{padding:11px 15px 6px}
.a-pbody h4{font-size:15.5px;font-weight:800}
.a-pmeta{display:flex;align-items:center;gap:7px;margin-top:5px;flex-wrap:wrap;font-size:8.8px;color:#5a657d}
.a-rev{color:#96a0b5}
.a-pdesc{margin-top:8px;color:#5a657d;font-size:9.3px;line-height:1.55}
.a-amen{display:flex;gap:7px;margin-top:9px}
.a-amen span{display:inline-flex;align-items:center;gap:4px;font-size:8.4px;font-weight:600;color:#1a5fd6;
  background:#eef4ff;border-radius:9px;padding:4px 8px}
.a-amen svg{width:11px;height:11px}
.a-book{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 15px 13px;
  border-top:1px solid #edf0f6;background:#fff}
.a-book div{display:flex;flex-direction:column;line-height:1.25}
.a-book span{font-size:8.4px;color:#8d97ac}
.a-book b{font-size:14px;font-weight:800}

/* écran marché */
.a-filt{display:flex;gap:6px;padding:4px 14px 8px;overflow:hidden}
.a-filt span{flex:none;font-size:8.6px;font-weight:600;color:#4a5670;background:#fff;border:1px solid #e2e7f0;border-radius:99px;padding:4.5px 10px}
.a-filt span.on{background:#12275c;border-color:#12275c;color:#fff}
.a-mcard{display:flex;gap:9px;background:#fff;border:1px solid #e9edf4;border-radius:14px;padding:9px;margin:5px 14px 0;
  box-shadow:0 4px 12px rgba(15,30,80,.05)}
.a-mthumb{width:46px;height:46px;border-radius:11px;overflow:hidden;flex:none}
.a-mthumb svg{width:100%;height:100%}
.a-mtxt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.a-mrow{display:flex;align-items:center;justify-content:space-between;gap:6px}
.a-mrow b{font-size:9.8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.a-mtxt>span{color:#8d97ac;font-size:8.6px;white-space:nowrap;overflow:hidden}
.a-mrow2{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:3px}

/* écran agenda */
.a-days{display:flex;gap:5px;padding:2px 14px 8px}
.a-days span{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;background:#fff;border:1px solid #e2e7f0;
  border-radius:10px;padding:5px 0;color:#4a5670}
.a-days i{font-style:normal;font-size:7px;font-weight:600;text-transform:uppercase;color:#96a0b5}
.a-days b{font-size:10px}
.a-days span.on{background:var(--g-blue);border-color:transparent;color:#fff;box-shadow:0 6px 14px rgba(26,115,255,.35)}
.a-days span.on i{color:rgba(255,255,255,.8)}
.a-feat{position:relative;margin:4px 14px 0;border-radius:16px;overflow:hidden;display:flex;min-height:118px}
.a-fart{position:absolute;inset:0}
.a-fart svg{width:100%;height:100%}
.a-ftxt{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:4px;justify-content:flex-end;
  padding:11px 12px;color:#fff;width:100%;background:linear-gradient(180deg,transparent 15%,rgba(8,4,26,.82))}
.a-ftxt b{font-size:12px;font-weight:800}
.a-ftxt>span{font-size:8.6px;color:#cfc4f5}
.a-ftxt .a-cta{margin-top:4px}

/* écran billets */
.a-tkt{margin:6px 14px 0;border-radius:16px;overflow:hidden;background:#fff;border:1px solid #e9edf4;box-shadow:0 10px 26px rgba(15,30,80,.09)}
.a-tart{position:relative;height:86px}
.a-tart>svg{position:absolute;inset:0;width:100%;height:100%}
.a-tover{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:9px 12px;
  background:linear-gradient(180deg,transparent 20%,rgba(8,4,26,.8));color:#fff}
.a-tover b{font-size:12px;font-weight:800}
.a-tover span{font-size:8.6px;color:#cfc4f5}
.a-tbody{padding:9px 12px 11px;display:flex;flex-direction:column;gap:7px}
.a-trow{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:8.8px;color:#5a657d;font-weight:600}
.a-trow span{display:inline-flex;align-items:center;gap:4px}
.a-trow svg{width:11px;height:11px;color:#1a5fd6}
.a-tstate{color:#0e9f6e!important}
.a-tstate svg{color:#0e9f6e!important}
.a-perf{position:relative;border-top:2px dashed #dfe4ee;margin:2px -22px}
.a-perf::before,.a-perf::after{content:'';position:absolute;top:-7px;width:14px;height:14px;border-radius:50%;background:#f4f6fa}
.a-perf::before{inset-inline-start:2px}
.a-perf::after{inset-inline-end:2px}
.a-tkt .a-cta.big{align-self:stretch}

/* écran Zou */
.a-chat{background:linear-gradient(180deg,#eef3fb,#f7f8fc)}
.a-zh{display:flex;align-items:center;gap:9px;padding:8px 14px 9px;background:#fff;border-bottom:1px solid #e9edf4}
.a-zh img{border-radius:50%;flex:none}
.a-zh div{flex:1;display:flex;flex-direction:column;line-height:1.3}
.a-zh b{font-size:11.5px;font-weight:800}
.a-zh span{font-size:8.4px;color:#0e9f6e;font-weight:600}
.a-conv{display:flex;flex-direction:column;gap:8px;padding:12px 12px 0;overflow:hidden}
.a-bub{max-width:82%;border-radius:14px;padding:7px 10px;font-size:9.3px;line-height:1.5}
.a-bub.me{align-self:flex-end;background:var(--g-blue);color:#fff;border-end-end-radius:4px}
.a-zrow{display:flex;align-items:flex-end;gap:6px}
.a-zrow img{border-radius:50%;flex:none;margin-bottom:2px}
.a-bub.zou{background:#fff;border:1px solid #e9edf4;border-end-start-radius:4px;box-shadow:0 4px 12px rgba(15,30,80,.05)}
.a-rec{display:flex;align-items:center;gap:7px;background:#f2f6fd;border-radius:10px;padding:6px 8px;margin-top:6px}
.a-rart{width:34px;height:34px;border-radius:8px;overflow:hidden;flex:none}
.a-rart svg{width:100%;height:100%}
.a-rec div{display:flex;flex-direction:column;line-height:1.3;min-width:0}
.a-rec b{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.a-rec span{font-size:8px;color:#8d97ac}
.a-quick{display:flex;gap:6px}
.a-quick span{display:inline-flex;align-items:center;gap:4px;font-size:8.6px;font-weight:700;color:#1a5fd6;
  background:#fff;border:1px solid #cfe0ff;border-radius:99px;padding:5px 10px}
.a-quick svg{width:10px;height:10px}
.a-input{margin-top:auto;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e2e7f0;border-radius:99px;
  padding:8px 8px 8px 14px;margin:10px 12px 12px;color:#96a0b5;font-size:9.3px}
[dir=rtl] .a-input{padding:8px 14px 8px 8px}
.a-input span:first-child{flex:1}
.a-imic{width:24px;height:24px;border-radius:50%;background:var(--g-blue);color:#fff;display:flex;align-items:center;justify-content:center;flex:none}
.a-imic svg{width:12px;height:12px}


/* ---------- accueil : ouverture ---------- */
.hero{position:relative;padding-block:clamp(36px,5vw,72px) clamp(64px,8vw,120px)}
.hero-home{padding-top:clamp(24px,3.4vw,48px);overflow:clip}
.hero-home .hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);column-gap:clamp(32px,5vw,88px);align-items:center}
.hero-home .eyebrow{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:15px;font-weight:500;color:var(--muted);margin-bottom:26px;letter-spacing:.01em}
.hero-home h1{font-size:clamp(46px,6vw,90px);max-width:11ch}
[lang=ar] .hero-home h1{max-width:13ch}
.hero-home .lead{max-width:40ch}
.hero-ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:36px}
.hero-visual{position:relative;isolation:isolate}
.hero-photo{position:relative;aspect-ratio:4/5;border-radius:var(--r-lg);overflow:hidden;background:var(--paper)}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:22% 45%;transform-origin:50% 60%}
/* en arabe, la photo est inversée (hero-ville-rtl) pour que le téléphone couvre le mur et non le visage */
[dir=rtl] .hero-photo img{object-position:78% 45%}
.hero-home .phone-stage{position:absolute;inset-inline-start:-9%;bottom:-6%;z-index:2}
.hero-home .phone{width:clamp(180px,15.5vw,236px);transform:rotate(-5deg)}
[dir=rtl] .hero-home .phone{transform:rotate(5deg)}
.hero-home .phone.phone-back{display:none}

/* ---------- partenaires : défilé de logos ---------- */
.partners{padding-block:clamp(24px,3vw,40px) 0}
.partners .container{display:flex;flex-direction:column;align-items:center;gap:22px}
.partners p{font-size:15px;font-weight:500;color:var(--muted);text-align:center}
.partners-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:20px 48px}
.partners-row span{display:flex;align-items:center;justify-content:center;height:56px;flex:none}
.partners-row img{height:30px;width:auto;filter:grayscale(1);opacity:.72;transition:filter .3s ease,opacity .3s ease}
.partners-row span:hover img{filter:none;opacity:1}
.marquee{width:100%;overflow:hidden;-webkit-mask:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.marquee .partners-row{flex-wrap:nowrap;justify-content:flex-start;width:max-content;gap:0;animation:marquee 34s linear infinite}
.marquee .partners-row span{padding-inline:32px}
.marquee:hover .partners-row{animation-play-state:paused}
[dir=rtl] .marquee .partners-row{animation-name:marquee-rtl}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes marquee-rtl{to{transform:translateX(50%)}}

/* ---------- manifeste ---------- */
#recit{padding-block:var(--sp)}
.quote{font-family:var(--display);font-size:clamp(34px,4.6vw,70px);line-height:1.04;font-weight:800;letter-spacing:-.03em;color:var(--ink);max-width:19ch;text-wrap:balance}
[lang=ar] .quote{letter-spacing:0;line-height:1.3;font-weight:700}
.quote .w{transition:color .2s linear}
#recit .lead{margin-top:36px;max-width:58ch;color:var(--muted)}

/* ---------- les cinq éditions : galerie en accordéon ---------- */
#editions,#actualites{background:var(--paper)}
#editions .section-head{max-width:none;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);column-gap:48px;align-items:end}
#editions .section-head .eyebrow,#editions .section-head h2{grid-column:1}
#editions .section-head .lead{grid-column:2;grid-row:2;margin:0}
.cards-5{display:flex;gap:12px;height:clamp(500px,64vh,640px)}
.cards-5 .card{position:relative;flex:1 1 0;min-width:0;border-radius:var(--r-lg);overflow:hidden;color:#fff;isolation:isolate;
  display:flex;flex-direction:column;justify-content:flex-end;padding:28px;transition:flex-grow .7s var(--ease)}
.cards-5 .card:first-child,.cards-5 .card:hover,.cards-5 .card:focus-within{flex-grow:3.4}
.cards-5:has(.card:hover) .card:not(:hover):not(:focus-within),.cards-5:has(.card:focus-within) .card:not(:focus-within):not(:hover){flex-grow:1}
.cards-5 .ed-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transform:scale(1.08);transition:transform 1.1s var(--ease)}
.cards-5 .card::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(4,11,31,0) 30%,rgba(4,11,31,.82) 100%)}
.cards-5 .card:first-child .ed-img,.cards-5 .card:hover .ed-img,.cards-5 .card:focus-within .ed-img{transform:scale(1)}
.cards-5:has(.card:hover) .card:not(:hover) .ed-img{transform:scale(1.08)}
.cards-5 .top-line{display:none}
.cards-5 .ico-tile{position:absolute;top:22px;inset-inline-start:22px;width:46px;height:46px;margin:0;background:rgba(255,255,255,.92);color:var(--ink)}
.cards-5 .ico-tile svg{width:22px;height:22px}
.cards-5 .card .kicker{font-size:15px;font-weight:700;color:rgba(255,255,255,.88);margin-bottom:6px}
.cards-5 .card:nth-child(1) .ed-img{object-position:50% 88%}
.cards-5 .card:nth-child(3) .ed-img{object-position:45% 50%}
.cards-5 .card:nth-child(4) .ed-img{object-position:55% 50%}
.cards-5 h3{color:#fff;font-size:clamp(22px,2vw,30px);margin:0}
.cards-5 .card>p:not(.kicker),.cards-5 .ed-go{max-height:0;opacity:0;overflow:hidden;transform:translateY(10px);
  transition:max-height .6s var(--ease),opacity .4s ease,transform .6s var(--ease)}
.cards-5 .card>p:not(.kicker){font-size:16.5px;line-height:1.5;color:rgba(255,255,255,.9);max-width:34ch}
.cards-5 .ed-go{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:15.5px;color:#fff;align-self:flex-start;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.4);border-radius:var(--pill);padding:0 18px}
.cards-5 .ed-go svg{width:16px;height:16px}
[dir=rtl] .cards-5 .ed-go svg{transform:scaleX(-1)}
.cards-5 .card:first-child>p:not(.kicker),.cards-5 .card:first-child .ed-go,
.cards-5 .card:hover>p:not(.kicker),.cards-5 .card:hover .ed-go,
.cards-5 .card:focus-within>p:not(.kicker),.cards-5 .card:focus-within .ed-go{max-height:200px;opacity:1;transform:none;transition-delay:.15s}
.cards-5 .card:first-child .ed-go,.cards-5 .card:hover .ed-go,.cards-5 .card:focus-within .ed-go{margin-top:18px;padding-block:11px}
.cards-5:has(.card:hover) .card:not(:hover):not(:focus-within)>p:not(.kicker),.cards-5:has(.card:hover) .card:not(:hover):not(:focus-within) .ed-go{max-height:0;opacity:0;margin-top:0;padding-block:0;transition-delay:0s}
#editions .more{margin-top:44px}

/* ---------- formules ---------- */
.cards-2,.cards-3,.cards-4{display:grid;gap:20px}
.cards-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cards-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cards-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{position:relative;border-radius:var(--r);color:var(--body)}
.card .top-line{display:none}
.card .kicker{font-size:15px;font-weight:700;color:var(--blue-ink);margin-bottom:8px}
.card h3{margin-bottom:10px}
.card p{font-size:16.5px;line-height:1.6;color:var(--body)}
.card p a{color:var(--blue-ink);font-weight:700}
.card p a:hover{text-decoration:underline;text-underline-offset:3px}
.tier{background:var(--paper);padding:36px 34px 40px;border-radius:var(--r-lg);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.tier .price-name{font-family:var(--display);font-size:clamp(30px,2.6vw,40px);line-height:1;font-weight:800;letter-spacing:-.025em;color:var(--ink);margin:4px 0 14px}
[lang=ar] .tier .price-name{letter-spacing:0;font-weight:700}
.tier .kicker{color:var(--muted);font-weight:500}
.tier.featured{background:var(--ink);color:#fff}
.tier.featured .price-name,.tier.featured b{color:#fff}
.tier.featured p,.tier.featured li{color:rgba(255,255,255,.82)}
.tier.featured .kicker{color:var(--gold)}
.tier.featured .ico-tile{background:var(--gold);color:var(--ink)}
@media (hover:hover){.cards-3 .tier:hover{transform:translateY(-6px);box-shadow:var(--shadow)}}
.tier ul{list-style:none;margin-top:22px;display:grid;gap:12px;padding-top:22px;border-top:1px solid var(--line)}
.tier.featured ul{border-top-color:rgba(255,255,255,.16)}
.tier li{position:relative;padding-inline-start:32px;font-size:16px;line-height:1.5;color:var(--body)}
.tier li::before{content:'';position:absolute;inset-inline-start:0;top:.12em;width:21px;height:21px;border-radius:50%;background:var(--blue-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231868ea' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/12px no-repeat}
.tier.featured li::before{background-color:rgba(255,207,91,.2);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffcf5b' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E")}

/* ---------- sections sombres (photo de nuit) ---------- */
.section.dark{background:var(--night);color:rgba(255,255,255,.82);isolation:isolate;overflow:hidden}
.section.dark h2,.section.dark h3,.section.dark .quote{color:#fff}
.section.dark .lead{color:rgba(255,255,255,.78)}
.section.dark .eyebrow{color:var(--cyan-light)}
.section-bg{position:absolute;inset:-12% 0;width:100%;height:124%;object-fit:cover;z-index:-2;pointer-events:none}
.section.dark .section-bg{opacity:.55}
.section.dark::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(4,11,31,.92) 0%,rgba(4,11,31,.55) 45%,rgba(4,11,31,.94) 100%)}

/* ---------- l'application : trois écrans ---------- */
#app .section-head{margin-inline:auto;text-align:center;max-width:820px}
#app .section-head .lead{margin-inline:auto}
.showcase{display:flex;justify-content:center;align-items:flex-start;gap:clamp(20px,4vw,64px)}
.shot{width:250px;text-align:center}
.shot:nth-child(2){margin-top:64px}
.shot .phone{width:250px}
.shot .app{font-size:10.2px}
.shot figcaption{margin-top:22px;font-size:16px;font-weight:700;color:#fff}

/* ---------- atouts ---------- */
#atouts .cards-2>.card{padding:clamp(28px,3.4vw,48px);border-radius:var(--r-lg);background:var(--paper)}
#atouts .cards-2>.card:last-child{background:var(--ink);color:rgba(255,255,255,.82)}
#atouts .cards-2>.card:last-child h3{color:#fff}
#atouts .cards-2>.card:last-child p{color:rgba(255,255,255,.82)}
#atouts .cards-2>.card:last-child p a{color:var(--cyan-light)}
#atouts .cards-2>.card:last-child .ico-tile{background:var(--gold);color:var(--ink)}
#atouts h3{font-size:clamp(26px,2.4vw,36px);margin-bottom:14px}
#atouts .card p+p{margin-top:20px}
.duo-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:28px;align-items:center}
.duo-card .fd-img{border-radius:var(--r);overflow:hidden;background:#fff;aspect-ratio:1}
.duo-card .fd-img img{width:100%;height:100%;object-fit:cover}
.zou-face{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.zou-face img{width:60px;height:60px;border-radius:50%;background:#fff;flex:none;box-shadow:0 0 0 3px #fff,0 8px 20px -8px rgba(10,21,53,.4)}
.zou-face .zf-name{display:block;font-family:var(--display);font-weight:800;font-size:30px;line-height:1;color:var(--ink)}
.zou-face .zf-role{display:block;font-size:15px;color:var(--muted);font-weight:500;margin-top:4px}

/* ---------- référence Djerba : photo plein cadre ---------- */
.section.djerba{color:#fff;isolation:isolate;overflow:hidden;min-height:min(92vh,880px);display:flex;align-items:center}
.section.djerba .container{width:100%}
.section.djerba .section-bg{z-index:-2}
.section.djerba::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(90deg,rgba(4,11,31,.92) 0%,rgba(4,11,31,.72) 42%,rgba(4,11,31,.12) 78%)}
[dir=rtl] .section.djerba::before{background:linear-gradient(270deg,rgba(4,11,31,.92) 0%,rgba(4,11,31,.72) 42%,rgba(4,11,31,.12) 78%)}
.djerba-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(32px,5vw,80px);align-items:end}
.djerba-grid .eyebrow{color:var(--gold)}
.djerba-grid h2{color:#fff;max-width:13ch}
.djerba-grid .lead{color:rgba(255,255,255,.86);margin-top:24px}
.djerba-grid .lead b{color:#fff}
.stats{display:flex;flex-wrap:wrap;gap:20px 56px;margin-top:40px}
.stat b{display:block;font-family:var(--display);font-size:clamp(36px,4vw,60px);line-height:1;font-weight:800;color:#fff;letter-spacing:-.02em}
[lang=ar] .stat b{letter-spacing:0}
.stat span{display:block;margin-top:8px;font-size:15px;color:rgba(255,255,255,.75)}
.djerba-grid .more{margin-top:44px}
.djerba-grid .btn-ghost{color:#fff;border-color:rgba(255,255,255,.6)}
@media (hover:hover){.djerba-grid .btn-ghost:hover{background:#fff;color:var(--ink);border-color:#fff}}
.djerba-card{justify-self:end;width:min(100%,360px);background:rgba(255,255,255,.96);color:var(--ink);border-radius:var(--r-lg);padding:36px 32px;text-align:center;
  box-shadow:0 40px 80px -40px rgba(0,0,0,.6)}
.djerba-card img{width:112px;margin:0 auto 18px}
.djerba-card h3{color:var(--ink);font-size:26px}
.djerba-card .powered{color:var(--muted);font-size:15px;margin-top:6px}
.status-chip{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:8px 16px;border-radius:var(--pill);background:#e3f8ef;color:#0b6b46;font-size:14.5px;font-weight:700}

/* ---------- actualités (accueil) ---------- */
.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.news-card{background:#fff;border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.news-card .news-thumb{width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .9s var(--ease)}
.news-card>*:not(.news-thumb){margin-inline:26px}
.news-card .news-meta{margin-top:22px}
.news-card h3{font-size:clamp(20px,1.6vw,24px);margin:12px 26px 10px}
.news-card>p:not(.news-meta):not(.news-link){font-size:15.5px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.news-card .news-link{margin-top:auto;padding:20px 0 26px}
@media (hover:hover){.news-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}.news-card:hover .news-thumb{transform:scale(1.04)}}
.news-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:14.5px;color:var(--muted)}
.news-tag{display:inline-flex;align-items:center;font-size:13.5px;font-weight:700;color:var(--blue-ink);background:var(--blue-soft);border-radius:var(--pill);padding:4px 12px}
.news-date{font-weight:500}
.news-link a{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--blue-ink)}
.news-link a:hover{text-decoration:underline;text-underline-offset:3px}

/* ---------- grand bandeau final ---------- */
.contact{padding-block:clamp(24px,4vw,56px) var(--sp)}
.cta-band{position:relative;isolation:isolate;overflow:hidden;border-radius:var(--r-lg);min-height:clamp(440px,60vh,600px);
  display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(32px,5vw,72px);color:#fff;background:var(--ink)}
.cta-bg{position:absolute;inset:-10% 0;width:100%;height:120%;object-fit:cover;z-index:-2}
.cta-band::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(4,11,31,.88) 0%,rgba(4,11,31,.55) 55%,rgba(4,11,31,.2) 100%)}
[dir=rtl] .cta-band::after{background:linear-gradient(270deg,rgba(4,11,31,.88) 0%,rgba(4,11,31,.55) 55%,rgba(4,11,31,.2) 100%)}
.cta-band h2{color:#fff;font-size:clamp(44px,6.4vw,104px);max-width:10ch}
.cta-band .contact-lead{margin-top:22px;color:rgba(255,255,255,.9);font-size:clamp(18px,1.4vw,21px);max-width:46ch}
.cta-band .cta-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}

/* ---------- pied de page ---------- */
.footer{background:var(--night);color:rgba(255,255,255,.7);padding:clamp(64px,8vw,104px) 0 36px}
.footer .logo{color:#fff}
.footer-grid{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:40px;margin-bottom:64px}
.footer-brand p{font-size:16px;margin-top:20px;max-width:32ch;color:rgba(255,255,255,.7)}
.footer-grid h3{font-family:var(--font);font-size:14.5px;font-weight:700;color:#fff;letter-spacing:0;margin-bottom:18px}
.footer-grid nav{display:flex;flex-direction:column;gap:12px}
.footer-grid nav a{font-size:16px;color:rgba(255,255,255,.7);width:fit-content;transition:color .2s ease}
.footer-grid nav a:hover{color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:28px;display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;font-size:14.5px}
.socials{display:flex;gap:10px}
.socials a{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:700;color:#fff;transition:background-color .2s ease,color .2s ease,border-color .2s ease}
.socials a:hover{background:#fff;color:var(--ink);border-color:#fff}

/* ---------- en-têtes des pages intérieures ---------- */
.page-head{max-width:var(--wrap)}
.page-head h1{font-size:clamp(46px,6.2vw,96px);max-width:14ch}
.page-head .lead{max-width:56ch}
.page-head:has(.page-photo){display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);column-gap:clamp(32px,5vw,88px);align-items:center}
.page-head:has(.page-photo)>*{grid-column:1}
.page-head .page-photo{grid-column:2;grid-row:1 / span 6;aspect-ratio:4/5;border-radius:var(--r-lg);overflow:hidden;background:var(--paper)}
.page-photo img{width:100%;height:100%;object-fit:cover}
.page-head .hero-ctas .btn-ghost{min-height:46px;padding:0 20px;font-size:15.5px}
.page-head .hero-ctas{gap:8px}

/* plateforme : en-tête avec écrans */
.hero:not(.hero-home) .hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);column-gap:clamp(32px,5vw,88px);align-items:center}
.hero:not(.hero-home) .hero-grid h1{font-size:clamp(46px,5.8vw,88px);max-width:13ch}
.hero:not(.hero-home) .phone-stage{padding-block:24px}
.hero:not(.hero-home) .phone{width:clamp(210px,18vw,260px)}

/* ---------- éditions : photo collante + contenu ---------- */
#destination .container,#university .container,#city .container,#bridge .container,#event .container{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(32px,6vw,104px);align-items:start}
#destination .container>*,#university .container>*,#city .container>*,#bridge .container>*,#event .container>*{grid-column:2}
.ed-art{grid-column:1!important;grid-row:1 / span 4;position:sticky;top:104px;margin:0}
#university .container>*,#bridge .container>*{grid-column:1}
#university .ed-art,#bridge .ed-art{grid-column:2!important}
.ed-photo{position:relative;aspect-ratio:4/5;border-radius:var(--r-lg);overflow:hidden;background:var(--paper)}
.ed-photo img{width:100%;height:118%;object-fit:cover;margin-top:-9%}
.ed-art-label{margin-top:16px;font-size:15px;font-weight:500;color:var(--muted)}
#destination .section-head,#university .section-head,#city .section-head,#bridge .section-head,#event .section-head{margin-bottom:40px}
#destination h2,#university h2,#city h2,#bridge h2,#event h2{font-size:clamp(40px,4.6vw,72px)}
.container>.cards-2:has(.tier){grid-template-columns:minmax(0,1fr);gap:16px}
.cards-2 .tier{padding:30px 32px 34px}
.cards-2 .tier .kicker{font-family:var(--display);font-size:22px;font-weight:700;color:var(--ink);margin-bottom:0;letter-spacing:-.01em}
.cards-2 .tier ul{margin-top:18px}
#destination .center-note{margin-top:28px}

/* ---------- plateforme ---------- */
.deliv-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.deliv-grid .card,.pillar,.value-tile{background:var(--paper);border-radius:var(--r);padding:30px 28px 34px}
.deliv-grid h3,.pillar h3,.value-tile h3{font-size:22px;margin-bottom:8px}
.deliv-grid p,.pillar p,.value-tile p{font-size:16px;color:var(--body);line-height:1.55}
.data-visual{margin-top:20px;border-radius:var(--r-lg);overflow:hidden;background:var(--night)}
.data-visual img{width:100%;height:auto}
#fonctionnalites .cards-3{gap:0;border-top:1px solid var(--line)}
#fonctionnalites .cards-3>.card{padding:36px 32px 40px 0;border-bottom:1px solid var(--line);border-radius:0}
#fonctionnalites .cards-3>.card:not(:nth-child(3n+1)){padding-inline-start:32px;border-inline-start:1px solid var(--line)}
#fonctionnalites .cards-3 h3{font-size:22px}

.zou-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(40px,6vw,104px);align-items:center}
.zou-visual{position:relative;display:flex;justify-content:center;padding-block:24px;border-radius:var(--r-lg);background:var(--paper)}
.zou-visual .phone-stage{min-height:0;padding-block:40px}
.zou-visual .phone-stage{position:static;margin-inline-end:24%}
.zou-mascot{position:absolute;bottom:0;inset-inline-end:2%;width:min(48%,260px);z-index:4;margin:0}
.zou-mascot img{width:100%;height:auto;filter:drop-shadow(0 22px 26px rgba(10,21,53,.28))}
.zou-mascot figcaption{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#fff;border-radius:var(--pill);padding:7px 14px;font-size:13px;font-weight:700;color:var(--ink);box-shadow:0 8px 20px -10px rgba(10,21,53,.35)}
.zou-grid .lead{margin-top:22px}
.mini-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:36px}
.mini-card{display:flex;gap:14px;align-items:flex-start;padding:20px;border-radius:var(--r);background:var(--paper)}
.mini-card h3{font-size:18px;margin-bottom:4px}
.mini-card p{font-size:15.5px;line-height:1.5}
.zou-grid .center-note{margin-top:24px;font-size:15.5px}

#donnees .quote{max-width:20ch;margin-bottom:var(--sp)}
#donnees .section-head{margin-top:0}
.pillars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.section.dark .pillar,.section.dark .cards-3 .card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}
.section.dark .pillar p,.section.dark .cards-3 p{color:rgba(255,255,255,.76)}
.section.dark .ico-tile{background:rgba(91,200,255,.14);color:var(--cyan-light)}
.section.dark .ico-tile.ac-gold{background:rgba(255,207,91,.16);color:var(--gold)}
.section.dark .cards-3 .card{padding:30px 28px 34px;border-radius:var(--r)}
.bshot{margin:56px 0 0;border-radius:var(--r);overflow:hidden;background:#fff;box-shadow:0 60px 100px -50px rgba(0,0,0,.8)}
.bshot + .cards-3{margin-top:20px}
.b-bar{display:flex;align-items:center;gap:14px;padding:12px 18px;background:#eef1f7;border-bottom:1px solid #dfe4ee}
.b-dots{display:flex;gap:7px}
.b-dots i{width:11px;height:11px;border-radius:50%;background:#cfd6e3}
.b-dots i:first-child{background:#ff6159}.b-dots i:nth-child(2){background:#ffbd2e}.b-dots i:last-child{background:#28c840}
.b-url{display:inline-flex;align-items:center;gap:6px;background:#fff;border-radius:var(--pill);padding:5px 16px;font-size:13px;color:var(--muted);font-weight:500}
.b-url svg{width:11px;height:11px;color:#0e9f6e}

/* le parcours */
.journey{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.j-road{position:absolute;top:24px;left:0;width:100%;height:150px;pointer-events:none}
.j-base{stroke:var(--line-2);stroke-width:3}
.j-dash{stroke:var(--blue);stroke-width:3;stroke-dasharray:10 12;stroke-dashoffset:400;transition:stroke-dashoffset 2.4s var(--ease) .2s}
.journey.in .j-dash{stroke-dashoffset:0}
.j-step{position:relative;display:flex;flex-direction:column;align-items:flex-start}
.j-step.js-1{margin-top:86px}.j-step.js-2{margin-top:12px}.j-step.js-3{margin-top:54px}.j-step.js-4{margin-top:100px}
.j-pin{width:52px;height:52px;border-radius:50% 50% 50% 6px;transform:rotate(-45deg);display:flex;align-items:center;justify-content:center;
  border:4px solid #fff;margin-bottom:18px;color:#fff;background:var(--blue-ink);box-shadow:0 12px 24px -12px rgba(10,21,53,.5)}
.j-pin.ac-gold{background:var(--gold);color:var(--ink)}
.j-pin.ac-green{background:#17b47c}
.j-pin.ac-cyan{background:#0a8fd6}
.j-pin svg{width:21px;height:21px;transform:rotate(45deg)}
.j-card{background:var(--paper);border-radius:var(--r);padding:22px 22px 24px}
.j-card h3{font-size:20px;margin-bottom:6px}
.j-card p{font-size:15.5px;line-height:1.5}

/* FAQ */
.faq{max-width:920px}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px 0;
  font-family:var(--display);font-size:clamp(20px,1.8vw,26px);font-weight:700;line-height:1.2;color:var(--ink);letter-spacing:-.01em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'';flex:none;width:40px;height:40px;border-radius:50%;background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a1535' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/18px no-repeat;
  transition:transform .4s var(--ease),background-color .2s ease}
.faq details[open] summary::after{transform:rotate(45deg);background-color:var(--blue-soft)}
.faq details p{padding:0 0 30px;font-size:17px;line-height:1.65;max-width:70ch}

/* ---------- à propos ---------- */
.mission-state{max-width:1100px}
.mission-state .ms-kicker{display:block;font-size:16px;font-weight:700;color:var(--blue-ink);margin-bottom:22px}
.mission-state p{font-family:var(--display);font-size:clamp(36px,5vw,76px);line-height:1;font-weight:800;letter-spacing:-.032em;color:var(--ink);text-wrap:balance}
[lang=ar] .mission-state p{letter-spacing:0;line-height:1.3;font-weight:700}
.ms-under{background:linear-gradient(transparent 62%,var(--gold) 62%,var(--gold) 92%,transparent 92%);background-repeat:no-repeat;background-size:100% 100%}
.mission-vision{margin-top:clamp(48px,6vw,88px);display:grid;grid-template-columns:minmax(0,.35fr) minmax(0,1fr);gap:32px;padding:clamp(28px,4vw,56px);border-radius:var(--r-lg);background:var(--paper)}
.mission-vision .kicker{font-family:var(--display);font-size:26px;font-weight:800;color:var(--ink)}
.mission-vision p:not(.kicker){font-size:clamp(19px,1.6vw,23px);line-height:1.55;color:var(--body)}
.value-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:20px}

.founder{display:grid;padding:clamp(28px,4vw,56px);border-radius:var(--r-lg);background:var(--paper)}
.founder + .founder{margin-top:20px}
.founder-grid{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:start}
.founder-grid img.founder-photo{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--r);filter:grayscale(1);transition:filter .6s ease}
.founder:hover img.founder-photo{filter:none}
.founder-grid h2{font-size:clamp(36px,4vw,60px);margin-bottom:10px}
.founder-grid .founder-role{font-size:19px;font-weight:700;color:var(--ink);margin-bottom:20px}
.founder-grid p:not(.founder-role){font-size:17px;line-height:1.7;max-width:70ch}
.founder-grid p + p{margin-top:12px}

.press{display:flex;flex-direction:column;gap:20px;padding:30px 28px;border-radius:var(--r);background:var(--paper)}
.press .pr-mark{font-family:var(--display);font-size:80px;line-height:.5;height:34px;font-weight:800;color:var(--blue)}
.pr-quote{font-family:var(--display);font-size:22px;line-height:1.18;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.pr-foot{margin-top:auto;display:flex;flex-direction:column;gap:8px}
.pr-src{font-size:14.5px;font-weight:500;color:var(--muted)}
.pr-foot a{font-size:15.5px;font-weight:700;color:var(--blue-ink)}
.pr-foot a:hover{text-decoration:underline;text-underline-offset:3px}

.awards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.award{display:flex;gap:16px;align-items:flex-start;padding:24px;border-radius:var(--r);background:var(--paper);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
@media (hover:hover){.award:hover{transform:translateY(-4px);box-shadow:var(--shadow)}}
.award .aw-ico{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none;background:var(--blue-soft);color:var(--blue-ink)}
.award.ac-gold .aw-ico{background:#fff3cf;color:#8a5a00}
.award .aw-ico svg{width:20px;height:20px}
.aw-year{font-size:14px;font-weight:700;color:var(--blue-ink)}
.award h3{font-size:19px;margin:4px 0 6px}
.award p{font-size:15px;line-height:1.5}
.award.featured{background:var(--ink)}
.award.featured h3{color:#fff}
.award.featured p{color:rgba(255,255,255,.78)}
.award.featured .aw-year{color:var(--gold)}
.award.featured .aw-ico{background:rgba(255,255,255,.12);color:#fff}

.tl{position:relative;max-width:820px;padding-inline-start:64px}
.tl::before{content:'';position:absolute;inset-inline-start:21px;top:12px;bottom:12px;width:3px;border-radius:2px;background:var(--line)}
.tl-line{position:absolute;inset-inline-start:21px;top:12px;bottom:12px;width:3px;border-radius:2px;background:var(--blue);transform-origin:top;transform:scaleY(0)}
html:not(.anim) .tl-line{transform:none}
.tl-item{position:relative;padding-bottom:28px}
.tl-item:last-child{padding-bottom:0}
.tl-node{position:absolute;inset-inline-start:-64px;top:6px;width:45px;height:45px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:var(--blue-ink);color:#fff;border:5px solid #fff;box-shadow:0 0 0 1px var(--line)}
.tl-node.ac-gold{background:var(--gold);color:var(--ink)}
.tl-node svg{width:16px;height:16px}
.tl-card{padding:26px 28px;border-radius:var(--r);background:var(--paper)}
.tl-year{font-size:14.5px;font-weight:700;color:var(--blue-ink)}
.tl-card h3{font-size:26px;margin:4px 0 8px}
.tl-card p{font-size:16.5px}
#ecosysteme .partners-row{justify-content:flex-start}

/* ---------- actualités (page) ---------- */
.news-wrap{max-width:var(--wrap)}
#agenda{padding-block:0}
.news-agenda{border-radius:var(--r-lg);background:var(--ink);color:#fff;padding:clamp(24px,3.4vw,44px)}
.news-agenda h2{font-size:clamp(28px,2.6vw,40px);color:#fff;margin-bottom:18px}
.news-agenda ul{list-style:none}
.news-agenda li{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,11rem) minmax(0,1fr);gap:24px;padding:18px 0;border-top:1px solid rgba(255,255,255,.12);font-size:16.5px;align-items:baseline}
.news-when{font-weight:700;color:var(--gold)}
.news-where{font-family:var(--display);font-size:20px;font-weight:700;color:#fff}
.news-what{color:rgba(255,255,255,.78)}
#liste{padding-top:var(--sp)}
.news-h2{margin-bottom:48px}
.news-page-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 24px}
.news-item{display:flex;flex-direction:column;gap:22px}
.news-item:first-child{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,4vw,64px);align-items:center}
.news-media{aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;background:var(--paper)}
.news-media img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
@media (hover:hover){.news-item:hover .news-media img{transform:scale(1.04)}}
.news-item-body{display:flex;flex-direction:column;flex:1}
.news-item-body .news-meta{margin-bottom:12px}
.news-item-body h3{font-size:clamp(22px,1.9vw,27px);margin-bottom:12px}
.news-item:first-child h3{font-size:clamp(28px,3vw,44px);line-height:1.05}
.news-item-body p{font-size:16px;line-height:1.6}
.news-item-body p + p{margin-top:10px}
.news-partners{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:20px}
.news-with{font-size:14.5px;font-weight:700;color:var(--ink);margin-inline-end:4px}
.news-partners img{height:32px;width:auto;border-radius:8px;border:1px solid var(--line);padding:3px 8px;background:#fff}
.news-chip{font-size:14px;font-weight:500;color:var(--ink);background:var(--paper);padding:6px 12px;border-radius:var(--pill);transition:background-color .2s ease,color .2s ease}
.news-chip:hover{background:var(--ink);color:#fff}
.news-cta{margin-top:clamp(56px,7vw,96px);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 32px;padding:clamp(28px,4vw,56px);border-radius:var(--r-lg);background:var(--blue-ink);color:#fff}
.news-cta h2{color:#fff;font-size:clamp(28px,3vw,46px);max-width:18ch}
.news-cta p{color:rgba(255,255,255,.9);font-size:18px;flex-basis:100%;order:2;margin-top:-8px}
.news-cta .btn{order:1}
.news-cta .btn-primary{background:#fff;color:var(--ink);box-shadow:none}
.news-follow-section{padding-top:0}
.news-follow{max-width:900px}
.news-follow h2{font-size:clamp(32px,3.4vw,52px)}
.news-follow p{font-size:19px;margin-top:16px;max-width:56ch}
.news-follow .hero-ctas{margin-top:28px}

/* ---------- contact (page) ---------- */
#formulaire{padding-top:0}
#formulaire .contact-card{border-radius:var(--r-lg);background:var(--ink);color:#fff;padding:clamp(28px,5vw,72px);display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);column-gap:clamp(32px,5vw,80px);align-items:start}
#formulaire .contact-card>h2,#formulaire .contact-card>.contact-lead,#formulaire .contact-card>.contact-alt{grid-column:1}
#formulaire .contact-card>form{grid-column:2;grid-row:1 / span 4}
#formulaire h2{color:#fff;font-size:clamp(38px,4.4vw,64px)}
#formulaire .contact-lead{margin-top:20px;font-size:19px;color:rgba(255,255,255,.85)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.form-grid label{display:flex;flex-direction:column;gap:9px;font-size:15px;font-weight:700;color:rgba(255,255,255,.92)}
.form-grid input,.form-grid select,.form-grid textarea{background:#fff;border:2px solid transparent;border-radius:var(--r-sm);padding:14px 16px;min-height:54px;
  color:var(--ink);font-size:16.5px;font-weight:500;transition:border-color .2s ease,box-shadow .2s ease}
.form-grid textarea{resize:vertical;min-height:130px}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:none;border-color:var(--cyan-light);box-shadow:0 0 0 4px rgba(91,200,255,.35)}
.form-grid select{appearance:none;padding-inline-end:44px;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%230a1535' stroke-width='2' fill='none'/%3E%3C/svg%3E") no-repeat right 18px center}
[dir=rtl] .form-grid select{background-position:left 18px center}
.form-full{grid-column:1/-1}
.form-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:26px}
.form-or{color:rgba(255,255,255,.7);font-size:15px}
.form-status{margin-top:18px;font-weight:700;min-height:1.4em;color:#fff}
.form-status.ko{background:rgba(255,255,255,.1);border-radius:var(--r-sm);padding:12px 16px}
.form-status a{color:#fff}
.contact-alt{margin-top:28px}
.contact-alt a{color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:4px}

.brochure-gate{max-width:1100px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:28px;padding:clamp(28px,4vw,56px);border-radius:var(--r-lg);background:var(--paper)}
.bg-intro{display:contents}
.bg-ico{grid-row:1 / span 2;width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--blue-ink)}
.bg-ico svg{width:28px;height:28px}
.bg-intro h2{font-size:clamp(32px,3.4vw,52px);margin-bottom:12px}
.bg-form{grid-column:2;max-width:640px}
.bg-row{display:flex;gap:10px;background:#fff;border-radius:var(--pill);padding:6px;box-shadow:0 1px 0 var(--line) inset,0 0 0 1px var(--line)}
.bg-row input{flex:1;min-width:0;background:transparent;border:0;padding:0 20px;min-height:52px;color:var(--ink);font-size:16.5px}
.bg-row input::placeholder{color:#7a85a0}
.bg-row input:focus{outline:none}
.bg-row:focus-within{box-shadow:0 0 0 2px var(--blue)}
.bg-row .btn{flex:none;min-height:52px}
.bg-status{margin-top:14px;font-weight:700;font-size:15.5px;min-height:1.2em}
.bg-status.ok{color:#0b7a50}

/* ---------- pages légales ---------- */
.prose{max-width:840px;margin:0 auto;padding-block:64px 120px}
.legal-switch{display:inline-flex;gap:4px;padding:4px;border-radius:var(--pill);background:var(--paper);margin-bottom:44px}
.legal-switch button{background:none;border:0;color:var(--muted);padding:9px 18px;border-radius:var(--pill);font-size:14.5px;font-weight:700;cursor:pointer}
.legal-switch button.on{background:#fff;color:var(--ink);box-shadow:0 2px 8px -2px rgba(10,21,53,.2)}
.prose h1{font-size:clamp(44px,5.6vw,80px);margin-bottom:22px}
.prose h2{font-size:clamp(26px,2.4vw,34px);margin:56px 0 16px}
.prose h3{font-size:21px;margin:30px 0 12px;color:var(--blue-ink)}
.prose p,.prose li{font-size:17px;line-height:1.7;margin-bottom:12px}
.prose ul{padding-inline-start:22px;margin-bottom:14px}
.prose a{color:var(--blue-ink);text-decoration:underline;text-underline-offset:3px}
.prose dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:10px 28px;margin:16px 0 24px;padding:24px 28px;border-radius:var(--r);background:var(--paper)}
.prose dt{color:var(--muted);font-size:15px}
.prose dd{color:var(--ink);font-size:16px;font-weight:500}
.prose [data-updated]{font-size:15px;color:var(--muted);margin-top:48px}

/* tableaux des pages légales */
.prose table{width:100%;border-collapse:collapse;margin:18px 0 30px;font-size:15.5px}
.prose th{text-align:start;font-size:14.5px;font-weight:700;color:var(--ink);padding:14px 16px;background:var(--paper)}
.prose th:first-child{border-start-start-radius:14px;border-end-start-radius:14px}
.prose th:last-child{border-start-end-radius:14px;border-end-end-radius:14px}
.prose td{padding:16px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--body);line-height:1.55}
.prose td:first-child{color:var(--ink);font-weight:600}

/* console back-office vectorielle (gestion contenus & événements) */
.boc{aspect-ratio:16/10;display:flex;background:#f4f6fa;color:#1b2436;font-size:11px;overflow:hidden;text-align:start}
.boc-side{width:23%;min-width:158px;background:#0c1a3d;color:#c9d4ee;display:flex;flex-direction:column;padding:15px 13px}
.boc-brand{display:flex;align-items:center;gap:7px;padding:2px 4px 13px}
.boc-logo{width:23px;height:23px;border-radius:7px;background:var(--g-blue);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px}
.boc-brand b{font-size:13px;color:#fff}
.boc-adm{font-size:7.5px;font-weight:800;letter-spacing:1px;background:rgba(255,255,255,.12);padding:2px 6px;border-radius:5px;margin-inline-start:auto}
.boc-tenant{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:7px 9px;margin-bottom:12px}
.boc-tav{width:25px;height:25px;border-radius:7px;background:linear-gradient(135deg,#0e7a5f,#17b47c);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:9.5px;flex:none}
.boc-tenant>div{flex:1;min-width:0;line-height:1.25}
.boc-tenant b{display:block;font-size:10.5px;color:#fff}
.boc-tenant i{font-style:normal;font-size:8px;color:#8fa0c8}
.boc-tenant>svg{width:13px;height:13px;color:#8fa0c8;flex:none}
.boc-nav{display:flex;flex-direction:column;gap:2px}
.boc-nav span{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;font-size:10.5px;font-weight:500;color:#aebbd9}
.boc-nav span svg{width:15px;height:15px;flex:none}
.boc-nav span i{font-style:normal;white-space:nowrap}
.boc-nav span.on{background:var(--g-blue);color:#fff;box-shadow:0 6px 14px rgba(26,115,255,.35)}
.boc-un{margin-top:auto;display:flex;align-items:center;gap:8px;padding-top:11px;border-top:1px solid rgba(255,255,255,.08)}
.boc-uav{width:25px;height:25px;border-radius:50%;background:#3ea8ff;color:#062b5a;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:10px;flex:none}
.boc-un div{line-height:1.25}
.boc-un b{display:block;font-size:10px;color:#fff}
.boc-un i{font-style:normal;font-size:8px;color:#8fa0c8}
.boc-main{flex:1;display:flex;flex-direction:column;padding:16px 18px;min-width:0}
.boc-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.boc-top h5{font-size:15px;font-weight:800}
.boc-top p{font-size:9.5px;color:#8d97ac;margin-top:2px}
.boc-actions{display:flex;align-items:center;gap:8px;flex:none}
.boc-search{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid #e2e7f0;border-radius:8px;padding:6px 11px;color:#8d97ac;font-size:9.5px;white-space:nowrap}
.boc-search svg{width:12px;height:12px}
.boc-create{display:flex;align-items:center;gap:5px;background:var(--g-blue);color:#fff;border-radius:8px;padding:6px 12px;font-size:9.5px;font-weight:700;white-space:nowrap;box-shadow:0 6px 14px rgba(26,115,255,.3)}
.boc-create svg{width:12px;height:12px}
.boc-table{background:#fff;border:1px solid #e9edf4;border-radius:12px;overflow:hidden;box-shadow:0 8px 22px rgba(15,30,80,.05)}
.boc-tr{display:grid;grid-template-columns:2.3fr 1fr 1.1fr .9fr;align-items:center;gap:10px;padding:9px 15px;border-bottom:1px solid #eef1f6;font-size:10px}
.boc-tr:last-child{border-bottom:none}
.boc-th{background:#f7f9fc;font-size:8.4px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:#96a0b5}
.boc-name{display:flex;align-items:center;gap:10px;min-width:0}
.boc-name b{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.boc-th2{width:32px;height:32px;border-radius:8px;overflow:hidden;flex:none}
.boc-th2 svg{width:100%;height:100%;display:block}
.boc-type{color:#5a657d;white-space:nowrap}
.boc-date{color:#96a0b5;white-space:nowrap}
.boc-st{justify-self:start;display:inline-flex;align-items:center;gap:5px;font-size:8.6px;font-weight:700;border-radius:99px;padding:3px 10px;white-space:nowrap}
.boc-st::before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor;flex:none}
.boc-st.pub{background:#e5f7ef;color:#0e9f6e}
.boc-st.wait{background:#fff3e0;color:#c77700}
.boc-st.draft{background:#eef1f6;color:#7a8699}
/* dashboard d'accueil back-office */
.boc-range{display:flex;align-items:center;gap:5px;background:#fff;border:1px solid #e2e7f0;border-radius:8px;padding:6px 10px;color:#5a657d;font-size:9.5px;font-weight:600;white-space:nowrap}
.boc-range svg{width:12px;height:12px}
.boc-bell{width:28px;height:28px;border-radius:8px;background:#fff;border:1px solid #e2e7f0;display:flex;align-items:center;justify-content:center;color:#5a657d;flex:none}
.boc-bell svg{width:13px;height:13px}
.bod-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:11px}
.bod-kpi{background:#fff;border:1px solid #e9edf4;border-radius:11px;padding:10px 12px;box-shadow:0 4px 12px rgba(15,30,80,.04)}
.bod-kpi>span{display:block;font-size:8.6px;color:#8d97ac;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bod-kpi>b{display:block;font-size:17px;font-weight:800;margin-top:3px;letter-spacing:-.3px}
.bod-kpi>i{display:inline-flex;align-items:center;gap:3px;font-style:normal;font-size:8.6px;font-weight:700;color:#96a0b5;margin-top:3px}
.bod-kpi>i.up{color:#0e9f6e}
.bod-kpi>i svg{width:11px;height:11px}
.bod-kpi>i:not(.up) svg{fill:#f5a623;stroke:#f5a623;color:#f5a623}
.bod-charts{display:grid;grid-template-columns:1.7fr 1fr;gap:10px}
.bod-panel{background:#fff;border:1px solid #e9edf4;border-radius:12px;padding:11px 13px;box-shadow:0 4px 12px rgba(15,30,80,.04)}
.bod-ph{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.bod-ph p,.bod-todo>p{font-size:9.6px;font-weight:700;color:#4a5670}
.bod-peak{font-size:8.2px;font-weight:700;color:#c77700;background:#fff3e0;border-radius:99px;padding:2px 8px;white-space:nowrap}
.bod-bars{width:100%;height:auto;display:block}
.bod-todo>p{margin-bottom:6px}
.bod-ti{display:flex;align-items:center;gap:8px;padding:7px 0;border-top:1px solid #eef1f6;font-size:9.4px}
.bod-ti:first-of-type{border-top:none}
.bod-tdot{width:7px;height:7px;border-radius:50%;flex:none}
.bod-tdot.red{background:#ef5350}.bod-tdot.orange{background:#f5a623}.bod-tdot.grey{background:#9aa6bd}
.bod-ti b{flex:1;font-weight:600;color:#3a4560;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bod-ti i{font-style:normal;font-size:8.8px;font-weight:700;color:#1a5fd6;white-space:nowrap}
@media(max-width:640px){.boc{font-size:9px}.boc-side{width:34%;min-width:0;padding:10px 8px}.boc-nav span i,.boc-tenant>div,.boc-un div{display:none}.boc-tr{grid-template-columns:2fr 1fr .8fr}.boc-date{display:none}
  .bod-kpis{grid-template-columns:1fr 1fr}.bod-charts{grid-template-columns:1fr}}


/* ---------- mouvement ---------- */
/* les états de départ sont posés par le script ; sans script, tout reste visible */
.anim .hero-home h1,.anim .page-head h1,.anim .hero:not(.hero-home) .hero-grid h1{visibility:hidden}
.anim.is-ready .hero-home h1,.anim.is-ready .page-head h1,.anim.is-ready .hero:not(.hero-home) .hero-grid h1{visibility:visible}
.split-line{display:block;overflow:clip;padding-bottom:.08em;margin-bottom:-.08em}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
  .marquee .partners-row{animation:none;flex-wrap:wrap;width:auto;justify-content:center}
  .j-dash{stroke-dashoffset:0}
}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .cards-5{height:clamp(460px,58vh,560px)}
  .cards-5 h3{font-size:22px}
  .deliv-grid,.pillars,.value-tiles,.cards-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .awards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .showcase{gap:20px}
  .shot,.shot .phone{width:210px}
  .shot .app{font-size:8.6px}
}
@media (max-width:1000px){
  .hero-home .hero-grid,.page-head:has(.page-photo),.hero:not(.hero-home) .hero-grid,.zou-grid,.djerba-grid{grid-template-columns:minmax(0,1fr)}
  .hero-visual{margin-top:48px;margin-inline-start:12%}
  .hero-home h1{max-width:12ch}
  .page-head .page-photo{grid-column:1;grid-row:auto;aspect-ratio:16/10;margin-top:40px}
  .hero:not(.hero-home) .phone-stage{margin-top:32px}
  #editions .section-head{grid-template-columns:minmax(0,1fr)}
  #editions .section-head .lead{grid-column:1;grid-row:auto;margin-top:22px}
  .cards-5{flex-direction:column;height:auto}
  .cards-5 .card{flex:none;min-height:340px}
  .cards-5 .card>p:not(.kicker),.cards-5 .ed-go{max-height:200px!important;opacity:1!important;transform:none!important}
  .cards-5 .ed-go{margin-top:18px!important;padding-block:11px!important}
  .cards-5 .ed-img{transform:none!important}
  .cards-3,.news-grid{grid-template-columns:minmax(0,1fr)}
  #fonctionnalites .cards-3>.card,#fonctionnalites .cards-3>.card:not(:nth-child(3n+1)){padding:28px 0;border-inline-start:0}
  .cards-2{grid-template-columns:minmax(0,1fr)}
  #destination .container,#university .container,#city .container,#bridge .container,#event .container{grid-template-columns:minmax(0,1fr)}
  #destination .container>*,#university .container>*,#city .container>*,#bridge .container>*,#event .container>*,.ed-art,#university .ed-art,#bridge .ed-art{grid-column:1!important}
  .ed-art{position:relative;top:0;grid-row:auto;margin-bottom:36px}
  .ed-photo{aspect-ratio:16/10}
  .djerba-card{justify-self:start}
  .section.djerba::before{background:linear-gradient(180deg,rgba(4,11,31,.55) 0%,rgba(4,11,31,.9) 100%)}
  .journey{grid-template-columns:minmax(0,1fr);gap:16px}
  .j-road{display:none}
  .j-step,.j-step.js-1,.j-step.js-2,.j-step.js-3,.j-step.js-4{margin-top:0;flex-direction:row;gap:18px}
  .j-pin{margin:6px 0 0;flex:none}
  .j-card{flex:1}
  .news-page-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .news-item:first-child{grid-template-columns:minmax(0,1fr)}
  #formulaire .contact-card{grid-template-columns:minmax(0,1fr)}
  #formulaire .contact-card>form{grid-column:1;grid-row:auto;margin-top:36px}
  .footer-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .footer-brand{grid-column:1/-1}
  .mission-vision{grid-template-columns:minmax(0,1fr)}
  .founder-grid{grid-template-columns:minmax(0,220px) minmax(0,1fr)}
}
@media (max-width:860px){
  .nav-links,.nav-cta{display:none}
  .burger{display:inline-flex}
  .news-agenda li{grid-template-columns:minmax(0,1fr);gap:2px}
  .showcase{flex-direction:column;align-items:center;gap:48px}
  .shot,.shot .phone{width:250px}
  .shot .app{font-size:10.2px}
  .shot:nth-child(2){margin-top:0}
}
@media (max-width:640px){
  :root{--pad:20px}
  body{font-size:16.5px}
  .hero-home .eyebrow{font-size:14px;gap:2px 10px}
  .hero-ctas .btn{flex:1 1 100%}
  .btn{white-space:normal}
  .hero-visual{margin-inline-start:16%}
  .hero-home .phone-stage{inset-inline-start:-14%;bottom:-6%}
  .hero-home .phone{width:140px}
  .deliv-grid,.pillars,.value-tiles,.cards-4,.awards,.mini-cards,.form-grid,.news-page-grid{grid-template-columns:minmax(0,1fr)}
  .duo-card{grid-template-columns:minmax(0,1fr)}
  .duo-card .fd-img{max-width:240px}
  .founder-grid{grid-template-columns:minmax(0,1fr)}
  .founder-grid img.founder-photo{max-width:220px}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .brochure-gate{grid-template-columns:minmax(0,1fr)}
  .bg-ico{grid-row:auto}
  .bg-form{grid-column:1}
  .bg-row{flex-direction:column;border-radius:var(--r);padding:8px}
  .bg-row input{min-height:50px}
  .bg-row .btn{width:100%}
  .form-actions .btn{width:100%}
  .form-or{display:none}
  .cta-band{min-height:520px}
  .tl{padding-inline-start:54px}
  .tl-node{inset-inline-start:-54px;width:40px;height:40px}
  .tl::before,.tl-line{inset-inline-start:18px}
  .prose dl{grid-template-columns:minmax(0,1fr);gap:2px}
  .prose table{display:block;overflow-x:auto;margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad);width:auto}
  .prose th,.prose td{min-width:170px}
  .prose dd{margin-bottom:12px}
  .lang-switch a{min-width:32px}
  .nav-right{gap:8px}
  .logo{font-size:20px}
}
