/* emblemes : eviter le recouvrement du texte */
.emj { display:inline-block; line-height:1; vertical-align:-0.12em; }
/* alignement systematique : tout bouton aligne icone + texte sur la meme ligne */
button { display:inline-flex; align-items:center; justify-content:center; gap:7px; }
/* ==================================================
   VoyageOS — Design system "Épuré moderne" 2026
   Police unique : Jost ( style Helvetica )
   Principes : blocs nets, pastilles, blanc respirant,
   contrastes lisibles, zéro fioriture
   ================================================== */

/* --- Police Jost intégrée ( lecture hors connexion identique ) --- */
@font-face { font-family:'Jost'; font-style:normal; font-weight:400; font-display:swap;
  src:url(fonts/Jost-400-normal-latin-ext.woff2) format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Jost'; font-style:normal; font-weight:400; font-display:swap;
  src:url(fonts/Jost-400-normal-latin.woff2) format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Jost'; font-style:normal; font-weight:500; font-display:swap;
  src:url(fonts/Jost-500-normal-latin-ext.woff2) format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Jost'; font-style:normal; font-weight:500; font-display:swap;
  src:url(fonts/Jost-500-normal-latin.woff2) format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Jost'; font-style:normal; font-weight:600; font-display:swap;
  src:url(fonts/Jost-600-normal-latin-ext.woff2) format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Jost'; font-style:normal; font-weight:600; font-display:swap;
  src:url(fonts/Jost-600-normal-latin.woff2) format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Jost'; font-style:normal; font-weight:700; font-display:swap;
  src:url(fonts/Jost-700-normal-latin-ext.woff2) format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Jost'; font-style:normal; font-weight:700; font-display:swap;
  src:url(fonts/Jost-700-normal-latin.woff2) format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Jost'; font-style:normal; font-weight:800; font-display:swap;
  src:url(fonts/Jost-800-normal-latin-ext.woff2) format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Jost'; font-style:normal; font-weight:800; font-display:swap;
  src:url(fonts/Jost-800-normal-latin.woff2) format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

:root {
  --navy:#0c3b4d; --navy2:#116178; --navy3:#14808f;
  --lagune:#22a5b8; --lagune-bg:#eef6f8;
  --sun:#ffca4f; --sun2:#fff3d6; --sun-dark:#d99a25;
  --coral:#f2603c; --coral2:#ff8a6b;
  --bg:#f5f7f9; --cream:#ffffff; --soft:#f0f4f6;
  --ink:#0d2229; --muted:#5b7480; --line:#e2eaee;
  --green:#0e8a5f; --greenbg:#e6f5ee; --red:#c23b3b; --redbg:#fdeeed;
  --r-xl:28px; --r-lg:18px; --r-md:12px; --r-sm:9px;
  --sh-s:0 1px 3px rgba(13,34,41,.06);
  --sh-m:0 12px 32px rgba(13,34,41,.12);
  --fb:'Jost','Helvetica Neue',Helvetica,Arial,sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0; color:var(--ink); font-family:var(--fb); font-size:17px; line-height:1.75;
  background:var(--bg); -webkit-font-smoothing:antialiased; min-height:100vh;
}

h1,h2,h3,h4 { font-family:var(--fb); letter-spacing:-.02em; color:var(--navy); }
h2 em, h2 i { font-style:normal; color:var(--coral); }
p { color:#2c4550; }

/* apparition douce ( reste discrète ) */
header, main > * { animation:rise .45s ease both; }
main > *:nth-child(2) { animation-delay:.04s; } main > *:nth-child(3) { animation-delay:.08s; }
main > *:nth-child(4) { animation-delay:.12s; } main > *:nth-child(5) { animation-delay:.16s; }
@keyframes rise { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce) { * { animation:none !important; transition:none !important; } }

/* ---------- Topbar ---------- */
.topbar {
  background:var(--navy); color:#cfe4ea;
  font-size:.8rem; text-align:center; padding:7px 16px; letter-spacing:.3px;
}
.topbar b, .topbar a { color:var(--sun); text-decoration:none; font-weight:600; }
.topbar a:hover { text-decoration:underline; }

/* ---------- En-tête ---------- */
header {
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.92); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  color:var(--navy); padding:10px 26px; display:flex; flex-wrap:nowrap; align-items:center; gap:14px;
  border-bottom:1px solid var(--line);
}
.brand { display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--navy); }
.brand .logo {
  width:44px; height:44px; border-radius:14px; display:grid; place-items:center; font-size:1.35rem;
  background:linear-gradient(135deg,var(--navy2),var(--lagune)); color:#fff;
}
.brand h1 { margin:0; font-size:1.22rem; font-weight:800; letter-spacing:-.01em; }
.brand small { display:block; color:var(--muted); font-weight:500; font-size:.64rem; letter-spacing:2px; text-transform:uppercase; }
nav { display:flex; flex-wrap:wrap; overflow:visible; gap:4px; margin-left:auto; }
nav::-webkit-scrollbar { display:none; }
nav a {
  color:var(--ink); padding:8px 14px; border-radius:99px; cursor:pointer; font-size:.88rem; font-weight:500;
  text-decoration:none; transition:background .18s,color .18s; border:1px solid transparent; white-space:nowrap; flex:0 0 auto;
}
nav a:hover { background:var(--soft); color:var(--navy); }
nav a.active { background:var(--navy); color:#fff; font-weight:600; }

/* ---------- Layout ---------- */
main { max-width:1060px; margin:0 auto; padding:40px 22px 90px; }
h2 { font-size:clamp(1.55rem,3.2vw,2.1rem); font-weight:800; margin:0 0 6px; line-height:1.15; }
h3 { font-size:1.16rem; font-weight:700; margin-top:34px; }
.rule { height:5px; width:56px; border-radius:99px; margin:6px 0 26px; background:var(--coral); }

/* ---------- Hero photo ( accueil ) ---------- */
.hero {
  position:relative; overflow:hidden; color:#fff;
  border-radius:var(--r-xl); padding:64px 48px; margin-bottom:36px;
  min-height:400px; display:flex; flex-direction:column; justify-content:center;
  box-shadow:var(--sh-m); border:1px solid rgba(255,255,255,.10);
  background-image:linear-gradient(100deg, rgba(9,32,42,.90) 0%, rgba(12,59,77,.68) 55%, rgba(34,165,184,.22) 100%), url('images/hero-accueil.jpg');
  background-size:cover; background-position:center 65%;
}
.hero h2 { color:#fff; font-size:clamp(1.8rem,3.8vw,2.6rem); max-width:680px; line-height:1.1; }
.hero p { font-size:1.12rem; max-width:620px; color:#d9e9ee; }
.hero .rule { background:var(--sun); }

/* ---------- Bandeaux photos ( pages ) ---------- */
.bandeau {
  position:relative; overflow:hidden; border-radius:var(--r-xl); color:#fff;
  padding:52px 46px; margin:0 0 30px;
  background-size:cover; background-position:center; box-shadow:var(--sh-s);
}
.bandeau::before {
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(9,32,42,.90) 0%, rgba(12,59,77,.62) 60%, rgba(34,165,184,.20) 100%);
}
.bandeau h2 { color:#fff; position:relative; z-index:1; margin:0 0 8px; }
.bandeau p { color:#d9e9ee; position:relative; z-index:1; max-width:640px; font-size:1.06rem; }
.bandeau .rule { background:var(--sun); }

/* ---------- Cartes ---------- */
.cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:18px; margin:26px 0; }
.card {
  position:relative; background:var(--cream); border-radius:var(--r-lg); padding:24px 22px;
  border:1px solid var(--line); box-shadow:var(--sh-s);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  display:flex; flex-direction:column; overflow:hidden;
}
.card:hover { transform:translateY(-4px); box-shadow:var(--sh-m); border-color:var(--lagune); }
.card h3 { margin:0 0 8px; font-size:1.05rem; }
.card p { margin:0 0 6px; color:#2c4550; font-size:.94rem; flex:1; }

/* ---------- Tableaux ---------- */
table {
  width:100%; border-collapse:separate; border-spacing:0; background:var(--cream);
  border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-s);
  border:1px solid var(--line); margin:18px 0; font-size:.94rem;
}
th {
  background:var(--soft); color:var(--navy); text-align:left;
  padding:12px 16px; font-size:.74rem; letter-spacing:1.2px; text-transform:uppercase; font-weight:700;
  border-bottom:2px solid var(--line);
}
td { padding:13px 16px; border-bottom:1px solid var(--line); vertical-align:top; }
tr:last-child td { border-bottom:none; }
tbody tr:hover td { background:var(--lagune-bg); }

/* ---------- Alertes & astuces ---------- */
.alert, .tip {
  padding:15px 18px 15px 50px; border-radius:var(--r-md); margin:16px 0;
  position:relative; font-size:.97rem; border:1px solid transparent;
}
.alert { background:var(--redbg); color:#7a2222; border-color:#f3cfcc; }
.alert::before { content:"⚠️"; position:absolute; left:14px; top:15px; font-size:1.05rem; display:inline-block; line-height:1; width:22px; text-align:center; }
.tip { background:var(--greenbg); color:#14532d; border-color:#cfe8da; }
.tip::before { content:"✅"; position:absolute; left:14px; top:15px; font-size:1.05rem; display:inline-block; line-height:1; width:22px; text-align:center; }

/* ---------- Boutons ---------- */
.btn {
  display:inline-flex; align-items:center; gap:8px; background:var(--navy); color:#fff;
  font-weight:600; font-family:var(--fb); padding:12px 28px; border-radius:12px; text-decoration:none;
  border:none; cursor:pointer; font-size:.98rem; margin-top:16px; align-self:flex-start;
  transition:transform .18s ease, background .18s ease, box-shadow .18s ease; box-shadow:var(--sh-s);
}
.btn:hover { transform:translateY(-2px); background:var(--navy2); box-shadow:var(--sh-m); color:#fff; }
.btn:active { transform:translateY(0); }

/* ---------- Phases ( action + défense ) ---------- */
.phase {
  position:relative; background:var(--cream); border-radius:var(--r-lg); padding:22px 24px 22px 30px; margin:14px 0;
  border:1px solid var(--line); box-shadow:var(--sh-s);
}
.phase::before { content:""; position:absolute; left:0; top:0; bottom:0; width:5px; border-radius:var(--r-lg) 0 0 var(--r-lg); background:var(--lagune); }
.phase .action b { color:var(--navy); font-size:1.04rem; }
.phase .defense {
  color:#7a2222; background:var(--redbg); border:1px solid #f3cfcc; border-left:4px solid var(--red);
  border-radius:var(--r-sm); padding:12px 15px; margin-top:12px; font-size:.92rem;
}
.score { font-weight:700; font-size:1.12rem; }
.g { color:var(--green); } .y { color:#a06f00; } .r { color:var(--red); }

/* ---------- Flux / étapes / listes ---------- */
.flow { font-size:1rem; line-height:2.1; background:var(--cream); border:1px solid var(--line);
  border-radius:var(--r-lg); padding:20px 24px; box-shadow:var(--sh-s); }
.flow a { color:var(--navy2); font-weight:600; }
.steps { counter-reset:step; padding-left:2px; }
.steps li { list-style:none; position:relative; padding:11px 0 11px 46px; border-bottom:1px dashed var(--line); }
.steps li:last-child { border-bottom:none; }
.steps li::before {
  counter-increment:step; content:counter(step); position:absolute; left:0; top:11px;
  width:30px; height:30px; border-radius:99px; display:grid; place-items:center;
  background:var(--navy); color:#fff; font-size:.85rem; font-weight:700;
}
.check { padding-left:2px; }
.check li { list-style:none; padding-left:32px; position:relative; }
.check li::before { content:"☐"; position:absolute; left:2px; color:var(--navy3); font-size:1.15rem; }
ul { line-height:1.75; }

/* ---------- Sous-navigation ---------- */
.subnav { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 26px; }
.subnav a {
  display:inline-flex; align-items:center; gap:6px;
  background:var(--cream); border:1px solid var(--line); color:var(--ink); padding:8px 16px; border-radius:99px;
  font-size:.86rem; font-weight:500; text-decoration:none; box-shadow:var(--sh-s); transition:all .2s;
}
.subnav a:hover { border-color:var(--lagune); color:var(--navy2); }
.subnav a.active { background:var(--navy); color:#fff; border-color:var(--navy); box-shadow:var(--sh-s); }

/* ---------- Badges & pastilles ---------- */
.legal { font-size:.94rem; line-height:1.8; color:#2a3d4d; }
.legal h3 { font-size:1.04rem; margin-top:24px; }
.badge {
  display:inline-block; background:var(--lagune-bg); color:var(--navy2);
  font-weight:700; font-size:.76rem; padding:4px 14px; border-radius:99px; letter-spacing:.4px;
}
.badge b { color:inherit; }

/* ---------- Grille tarifs ---------- */
.plans { display:grid; grid-template-columns:repeat(auto-fit,minmax(255px,1fr)); gap:18px; margin:26px 0; }
.plan {
  position:relative; background:var(--cream); border-radius:22px; padding:28px 26px;
  border:1px solid var(--line); box-shadow:var(--sh-s);
  transition:transform .2s ease, box-shadow .2s ease; display:flex; flex-direction:column;
}
.plan:hover { transform:translateY(-4px); box-shadow:var(--sh-m); }
.plan.star { border:2px solid var(--sun); }
.plan .tier { font-size:.76rem; font-weight:700; letter-spacing:1.4px; text-transform:uppercase; color:var(--navy2); }
.plan .prix { font-size:2.4rem; font-weight:800; color:var(--navy); margin:6px 0 2px; letter-spacing:-.03em; }
.plan .prix small { font-size:.9rem; font-weight:500; color:var(--muted); }
.plan ul { padding-left:2px; margin:14px 0 8px; }
.plan li { list-style:none; padding-left:26px; position:relative; font-size:.93rem; line-height:1.55; margin-bottom:9px; color:#2c4053; }
.plan li::before { content:"✓"; position:absolute; left:2px; color:var(--green); font-weight:700; }
.plan li.off::before { content:"—"; color:#b5bfc8; }
.plan .btn { margin-top:auto; align-self:stretch; text-align:center; }
.badge-pop {
  position:absolute; top:-12px; left:50%; transform:translateX(-50%);
  background:var(--sun); color:var(--navy);
  font-weight:700; font-size:.74rem; padding:4px 15px; border-radius:99px; white-space:nowrap;
}

/* ---------- Galerie photos ---------- */
.imgrow { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; margin:22px 0; }
.imgrow figure { margin:0; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-s); border:1px solid var(--line); position:relative; }
.imgrow img { width:100%; height:210px; object-fit:cover; display:block; transition:transform .4s ease; }
.imgrow figure:hover img { transform:scale(1.04); }
.imgrow figcaption {
  position:absolute; left:0; right:0; bottom:0; padding:30px 18px 14px; color:#fff; font-weight:600; font-size:.95rem;
  background:linear-gradient(transparent, rgba(9,32,42,.85));
}

/* ---------- Annuaire ---------- */
.src { font-size:.74rem; color:var(--navy2); background:var(--lagune-bg); border-radius:99px; padding:2px 10px; margin-left:6px; white-space:nowrap; }
.voir { font-size:.8rem; font-weight:400; float:right; }
.voir a { color:var(--navy2); }

/* ---------- Footer ---------- */
footer {
  text-align:center; color:#c4d8de; padding:36px; font-size:.87rem;
  border-top:1px solid var(--line); background:var(--navy);
}
footer nav a { color:#c4d8de; text-decoration:none; margin:0 10px; transition:color .15s; }
footer nav a:hover { color:var(--sun); }
.credits { text-align:center; font-size:.75rem; color:#8fb0b8; margin-top:10px; }
.credits a { color:#8fb0b8; }

@media (max-width:640px) {
  nav { margin-left:0; }
  .hero { padding:38px 24px; }
  .bandeau { padding:34px 22px; }
  .brand small { display:none; }
  .topbar { font-size:.72rem; }
}

/* --- liens officiels --- */
ul.officiel a { color:var(--navy2); font-weight:600; text-decoration:underline; text-decoration-color:var(--sun); text-underline-offset:3px; }
ul.officiel a::after { content:" ↗"; color:var(--sun-dark); }
ul.officiel li { margin:6px 0; }

/* ==================================================
   Bannière cookies ( RGPD )
   ================================================== */
.cookieban {
  position:fixed; left:16px; right:16px; bottom:16px; z-index:200;
  max-width:720px; margin:0 auto;
  background:var(--cream); border:1px solid var(--line); border-top:4px solid var(--sun);
  border-radius:var(--r-lg); box-shadow:var(--sh-m);
  padding:20px 22px; font-size:.9rem; color:#2c4550;
  animation:cookieup .4s ease both;
}
@keyframes cookieup { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:none; } }
.cookieban.hide { display:none; }
.cookieban h4 { margin:0 0 6px; font-size:1.02rem; color:var(--navy); display:flex; align-items:center; gap:8px; }
.cookieban p { margin:0 0 12px; font-size:.88rem; }
.cookieban p a { color:var(--navy2); font-weight:600; }
.cookierow { display:flex; flex-wrap:wrap; gap:10px; }
.ckbtn {
  border:none; cursor:pointer; font-family:var(--fb); font-weight:600; font-size:.88rem;
  padding:11px 22px; border-radius:12px; transition:transform .15s, box-shadow .15s;
}
.ckbtn:hover { transform:translateY(-2px); }
.ckok { background:var(--navy); color:#fff; }
.ckmin { background:transparent; color:var(--navy); border:2px solid var(--navy2); }
.cklink { background:none; border:none; color:var(--muted); text-decoration:underline; font-size:.82rem; cursor:pointer; font-family:var(--fb); align-self:center; }
@media (max-width:640px) { .cookieban { left:10px; right:10px; bottom:10px; padding:16px; } }

/* ---------- Menu principal avec déroulants ---------- */
nav.navmain { display:flex; align-items:center; gap:4px; margin-left:auto; }
.navmain > a, .navdd > button {
  color:var(--ink); padding:8px 13px; border-radius:10px; cursor:pointer; font-size:.87rem; font-weight:500;
  text-decoration:none; transition:all .18s; border:1px solid transparent; background:none; font-family:var(--fb);
  white-space:nowrap; display:inline-flex; align-items:center; gap:5px;
}
.navmain > a:hover, .navdd > button:hover { background:var(--soft); color:var(--navy); }
.navmain > a.active, .navdd > button.active { background:var(--navy); color:#fff; font-weight:600; }
.caret { font-size:.6rem; transition:transform .2s; }
.navdd { position:relative; }
.navdd.open .caret { transform:rotate(180deg); }
.ddmenu {
  display:none; position:absolute; top:calc(100% + 8px); left:50%; transform:translateX(-50%);
  background:var(--cream); border-radius:14px; border:1px solid var(--line); box-shadow:var(--sh-m);
  padding:8px; min-width:220px; z-index:100; text-align:left;
}
.navdd.open .ddmenu, .navdd:focus-within .ddmenu, .navdd:hover .ddmenu { display:block; animation:ddin .16s both; }
.navdd:last-child .ddmenu, .navdd:nth-last-child(2) .ddmenu { left:auto; right:0; transform:none; animation:none; }
@keyframes ddin { from { opacity:0; transform:translateX(-50%) translateY(5px); } to { opacity:1; transform:translateX(-50%); } }
.ddmenu a {
  display:flex; align-items:center; gap:7px; color:var(--ink) !important; padding:8px 12px; border-radius:9px; font-size:.86rem;
  font-weight:500; white-space:nowrap;
}
.ddmenu a:hover { background:var(--soft); color:var(--navy2) !important; transform:none; }
.ddmenu a.activesub { background:var(--lagune-bg); color:var(--navy2) !important; font-weight:700; }
@media (max-width:880px) {
  nav.navmain { flex-wrap:wrap; }
  .ddmenu { left:0; transform:none; }
  @keyframes ddin { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }
}

/* ==================================================
   Impression — checklist, SOS, itinéraire papier
   ================================================== */
@media print {
  .topbar, .flowbar, header, footer, .cookieban, .subnav, .skiplink, .btn, .navdd { display:none !important; }
  body { background:#fff; font-size:12pt; }
  main { max-width:100%; padding:0; }
  .card, .phase, table, .alert, .tip, .flow { box-shadow:none; border:1px solid #ccc; break-inside:avoid; }
  a { color:#000; text-decoration:none; }
}

/* ---------- Blocs lisibles ( v57, design organiser généralisé ) ---------- */
.bloc {
  background:#fff; border:1px solid #e2eaee; border-radius:18px;
  padding:28px 32px; margin:22px 0; box-shadow:0 2px 10px rgba(13,34,41,.06);
}
@media (max-width:768px) { .bloc { padding:20px 18px; } }
.bloc > h2, .bloc > h3 {
  margin:0 0 14px; color:var(--navy); font-size:1.3rem; line-height:1.35;
  padding-bottom:8px; border-bottom:3px solid var(--sun2);
}
.bloc > h2 { font-size:1.45rem; }
.bloc p { line-height:1.75; }
.bloc table { margin:12px 0; box-shadow:none; }
.bloc .alert, .bloc .tip { margin:12px 0; }
.bloc ul.steps li { padding:13px 0 13px 46px; }
.bloc .btn { margin-top:8px; }
.bloc + .bloc { margin-top:0; }
main > .bloc { margin-top:22px; }
