:root {
  --navy: #071f37;
  --navy-2: #0b3156;
  --green: #0b7a46;
  --green-2: #10a35f;
  --orange: #e56b0a;
  --purple: #4d2a86;
  --gold: #f4b52a;
  --ink: #0b1420;
  --muted: #667386;
  --paper: #f5f5f0;
  --white: #fff;
  --line: rgba(7,31,55,.12);
  --radius: 28px;
  --shadow: 0 35px 90px rgba(1, 18, 35, .18);
  --container: min(1180px, calc(100% - 40px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.55;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
.container { width: var(--container); margin-inline: auto; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position: fixed; top: 10px; left: 10px; z-index: 999; transform: translateY(-160%); background: var(--white); color: var(--navy); padding: 12px 16px; border-radius: 12px; }
.skip-link:focus { transform: none; }

.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 100;
  padding: 18px 0;
  transition: .35s ease;
}
.site-header.is-scrolled {
  background: rgba(7,31,55,.84);
  backdrop-filter: blur(20px);
  box-shadow: 0 1px 0 rgba(255,255,255,.10);
  padding: 11px 0;
}
.nav-wrap { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.brand { display: inline-flex; align-items: center; gap: 14px; color: var(--white); min-width: max-content; }
.brand-mark { display: inline-flex; align-items: baseline; font-weight: 900; letter-spacing: -0.065em; font-size: 32px; line-height: 1; }
.brand-i { color: var(--green-2); display: inline-block; transform: skew(-5deg); margin-inline: 1px; }
.brand-sub { font-size: 9px; line-height: 1.2; text-transform: uppercase; letter-spacing: .08em; opacity: .78; font-weight: 800; }
.site-nav { display: flex; align-items: center; gap: 25px; color: rgba(255,255,255,.88); font-size: 14px; font-weight: 650; }
.site-nav > a:not(.nav-cta) { position: relative; }
.site-nav > a:not(.nav-cta)::after { content:""; position:absolute; left:0; right:100%; bottom:-7px; height:2px; background:var(--gold); transition:.25s ease; }
.site-nav > a:hover::after, .site-nav > a.is-active::after { right:0; }
.nav-cta { padding: 11px 17px; border-radius: 999px; background: rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.24); }
.menu-toggle { display: none; background:transparent; border:0; padding:8px; }
.menu-toggle span:not(.sr-only) { display:block; width:25px; height:2px; background:#fff; margin:5px 0; border-radius:2px; }

.hero {
  position: relative;
  min-height: 100vh;
  color: var(--white);
  background: var(--navy);
  overflow: hidden;
  isolation: isolate;
  padding: 135px 0 110px;
}
.hero-bg {
  position: absolute;
  inset: -8% -4%;
  z-index: -4;
  background:
    linear-gradient(90deg, rgba(7,31,55,.97) 0%, rgba(7,31,55,.86) 44%, rgba(7,31,55,.48) 100%),
    url('sima-hero.jpg') center 40% / cover no-repeat;
  filter: saturate(.84) contrast(1.03);
  transform: translate3d(0, var(--parallax,0), 0) scale(1.08);
}
.hero-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(7,31,55,.15), rgba(7,31,55,.88)); }
.hero-grid-overlay { position:absolute; inset:0; z-index:-2; opacity:.14; background-image:linear-gradient(rgba(255,255,255,.10) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,.10) 1px, transparent 1px); background-size:72px 72px; mask-image:linear-gradient(to bottom,black,transparent 85%); }
.orb { position:absolute; z-index:-1; border-radius:50%; filter: blur(10px); opacity:.34; transform: translate3d(0,var(--parallax,0),0); }
.orb-a { width:340px; height:340px; background:radial-gradient(circle,var(--orange),transparent 68%); right:25%; top:-80px; }
.orb-b { width:410px; height:410px; background:radial-gradient(circle,var(--green-2),transparent 66%); left:-180px; bottom:-150px; }
.hero-content { display:grid; grid-template-columns: 1.08fr .92fr; gap:80px; align-items:center; min-height: calc(100vh - 260px); }
.eyebrow, .section-kicker { display:inline-flex; align-items:center; gap:10px; text-transform:uppercase; letter-spacing:.14em; font-weight:800; font-size:11px; }
.eyebrow { color:rgba(255,255,255,.76); margin-bottom:24px; }
.dot { width:8px; height:8px; border-radius:50%; background:var(--gold); box-shadow:0 0 0 6px rgba(244,181,42,.13); }
.hero h1 { font-size: clamp(58px, 7vw, 112px); line-height:.88; letter-spacing:-.06em; margin:0 0 28px; max-width:760px; font-weight:850; }
.accent-word { position:relative; color:var(--gold); font-style:italic; font-weight:700; }
.accent-word::after { content:""; position:absolute; left:3%; right:1%; bottom:-3%; height:7px; border-radius:999px; background:linear-gradient(90deg,var(--green-2),var(--orange)); transform:rotate(-2deg); opacity:.85; }
.hero-lead { max-width:650px; font-size:clamp(17px,1.6vw,22px); line-height:1.55; color:rgba(255,255,255,.78); margin:0 0 34px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:13px; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:54px; padding:0 22px; border-radius:999px; font-size:14px; font-weight:800; transition: transform .25s ease, box-shadow .25s ease, background .25s ease; }
.btn:hover { transform:translateY(-2px); }
.btn-primary { background:var(--orange); color:#fff; box-shadow:0 16px 40px rgba(229,107,10,.28); }
.btn-primary:hover { box-shadow:0 20px 50px rgba(229,107,10,.42); }
.btn-ghost { color:#fff; border:1px solid rgba(255,255,255,.28); background:rgba(255,255,255,.08); backdrop-filter:blur(14px); }
.event-meta { display:flex; gap:44px; margin-top:45px; padding-top:23px; border-top:1px solid rgba(255,255,255,.16); max-width:680px; }
.event-meta div { display:grid; gap:2px; }
.meta-label { color:rgba(255,255,255,.48); font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.event-meta strong { font-size:14px; }

.hero-visual { position:relative; }
.visual-shell { position:relative; width:min(440px,100%); margin-left:auto; border-radius:34px; padding:10px; background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.22); box-shadow:0 45px 90px rgba(0,0,0,.35); backdrop-filter:blur(12px); transform:rotate(1.5deg); }
.visual-shell img { aspect-ratio: 3 / 4.3; object-fit:cover; object-position:48% 50%; border-radius:26px; }
.visual-shine { position:absolute; inset:10px; border-radius:26px; pointer-events:none; background:linear-gradient(125deg,rgba(255,255,255,.23),transparent 30%,transparent 75%,rgba(255,255,255,.08)); mix-blend-mode:screen; }
.visual-badge { position:absolute; z-index:2; background:rgba(7,31,55,.88); color:#fff; border:1px solid rgba(255,255,255,.18); backdrop-filter:blur(15px); box-shadow:0 18px 50px rgba(0,0,0,.22); }
.badge-top { top:42px; left:-70px; padding:13px 18px; border-radius:18px; font-size:12px; text-transform:uppercase; letter-spacing:.08em; font-weight:800; }
.badge-top span { color:var(--gold); font-size:22px; margin-right:7px; letter-spacing:-.04em; }
.badge-bottom { right:-25px; bottom:38px; max-width:260px; padding:15px 17px; border-radius:18px; font-size:12px; line-height:1.45; }
.hero-ticker { position:absolute; left:0; right:0; bottom:0; overflow:hidden; border-top:1px solid rgba(255,255,255,.12); background:rgba(4,19,34,.45); backdrop-filter:blur(10px); }
.ticker-track { display:flex; width:max-content; align-items:center; gap:27px; padding:15px 0; animation:ticker 38s linear infinite; font-size:10px; letter-spacing:.16em; font-weight:800; color:rgba(255,255,255,.58); }
.ticker-track i { width:6px; height:6px; border-radius:50%; background:var(--orange); }
@keyframes ticker { to { transform:translateX(-50%); } }

.countdown-section { background:#fff; border-bottom:1px solid var(--line); }
.countdown-wrap { min-height:190px; display:flex; align-items:center; justify-content:space-between; gap:40px; }
.countdown-wrap h2 { margin:7px 0 0; font-size:clamp(26px,3vw,42px); letter-spacing:-.04em; }
.section-kicker { color:var(--green); }
.countdown { display:flex; align-items:center; gap:8px; }
.countdown > div { width:98px; min-height:98px; display:grid; place-items:center; align-content:center; background:var(--paper); border:1px solid var(--line); border-radius:20px; }
.countdown strong { display:block; font-size:30px; letter-spacing:-.04em; line-height:1; color:var(--navy); }
.countdown span { margin-top:7px; font-size:9px; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); font-weight:800; }

.section { padding:115px 0; }
.split-layout { display:grid; grid-template-columns:.82fr 1.18fr; gap:95px; }
.sticky-title { align-self:start; position:sticky; top:130px; }
.sticky-title h2, .section-head h2, .impact-copy h2, .destination-copy h2, .contact-copy h2 { font-size:clamp(38px,5vw,68px); line-height:.98; letter-spacing:-.055em; margin:15px 0 23px; }
.sticky-title p, .section-head p, .impact-copy p, .destination-copy p, .contact-copy p { color:var(--muted); max-width:680px; font-size:17px; }
.manifesto-big { font-size:clamp(31px,4vw,54px); line-height:1.08; letter-spacing:-.045em; margin:0 0 64px; }
.manifesto-big em { color:var(--orange); font-style:normal; }
.manifesto-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.manifesto-grid article { min-height:250px; padding:30px; border-radius:25px; border:1px solid var(--line); background:#fff; transition:.3s ease; }
.manifesto-grid article:hover { transform:translateY(-6px); box-shadow:0 28px 70px rgba(7,31,55,.10); }
.number { display:inline-flex; width:42px; height:42px; border-radius:50%; align-items:center; justify-content:center; background:var(--navy); color:#fff; font-size:11px; font-weight:900; }
.manifesto-grid h3 { font-size:27px; letter-spacing:-.04em; margin:52px 0 8px; }
.manifesto-grid p { margin:0; color:var(--muted); }

.experience-section { position:relative; isolation:isolate; background:var(--navy); overflow:hidden; }
.experience-bg { position:absolute; inset:-25% -8%; z-index:-2; opacity:.34; background:radial-gradient(circle at 20% 35%, #0d8b52, transparent 24%),radial-gradient(circle at 78% 60%, #5f358f, transparent 25%),radial-gradient(circle at 58% 20%, #de6a0c, transparent 18%); filter:blur(24px); transform:translate3d(0,var(--parallax,0),0); }
.section-head { max-width:830px; margin-bottom:55px; }
.section-head.light { color:#fff; }
.section-head.light .section-kicker { color:#89eab7; }
.section-head.light p { color:rgba(255,255,255,.62); }
.experience-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:15px; }
.experience-card { position:relative; min-height:420px; padding:28px; border-radius:26px; color:#fff; overflow:hidden; display:flex; flex-direction:column; border:1px solid rgba(255,255,255,.13); transition:.35s ease; }
.experience-card::before { content:""; position:absolute; inset:0; opacity:.90; z-index:-1; }
.experience-card::after { content:""; position:absolute; width:240px; height:240px; border-radius:50%; right:-100px; bottom:-100px; background:rgba(255,255,255,.12); }
.experience-card.blue::before { background:linear-gradient(145deg,#123f6d,#071f37); }
.experience-card.green::before { background:linear-gradient(145deg,#0d9255,#07502f); }
.experience-card.orange::before { background:linear-gradient(145deg,#f17a12,#ac4500); }
.experience-card.purple::before { background:linear-gradient(145deg,#6b45a5,#35205e); }
.experience-card:hover { transform:translateY(-8px); }
.icon-wrap { width:54px; height:54px; border-radius:17px; display:grid; place-items:center; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.20); font-size:23px; }
.card-index { margin-top:54px; font-size:11px; font-weight:900; letter-spacing:.12em; opacity:.62; }
.experience-card h3 { font-size:31px; letter-spacing:-.04em; margin:8px 0 12px; }
.experience-card p { margin:0; color:rgba(255,255,255,.72); }
.experience-card a { margin-top:auto; font-size:12px; font-weight:850; text-transform:uppercase; letter-spacing:.06em; }
.experience-card a span { margin-left:7px; }

.impact-section { padding-top:70px; background:#fff; }
.impact-panel { display:grid; grid-template-columns:1.1fr .9fr; gap:70px; border-radius:34px; padding:65px; background:linear-gradient(135deg,#f3eee2,#f8f8f5 55%,#eef6f1); border:1px solid var(--line); }
.impact-stats { display:grid; grid-template-columns:1fr 1fr; gap:14px; align-content:start; }
.impact-stats div { min-height:180px; border-radius:24px; background:#fff; padding:24px; border:1px solid rgba(7,31,55,.08); display:flex; flex-direction:column; justify-content:flex-end; }
.impact-stats div:last-child { grid-column:1/-1; min-height:140px; background:var(--navy); color:#fff; }
.impact-stats strong { font-size:54px; letter-spacing:-.06em; line-height:1; color:var(--orange); }
.impact-stats div:last-child strong { color:var(--gold); }
.impact-stats span { margin-top:10px; color:var(--muted); font-size:12px; font-weight:700; }
.impact-stats div:last-child span { color:rgba(255,255,255,.66); }

.programme-section { background:#fff; }
.agenda { border-top:1px solid var(--line); }
.agenda-row { width:100%; display:grid; grid-template-columns:120px 1fr 40px; gap:26px; align-items:center; text-align:left; border:0; background:transparent; border-bottom:1px solid var(--line); padding:26px 0; cursor:pointer; color:var(--ink); }
.agenda-day { font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.13em; color:var(--green); }
.agenda-title { display:grid; gap:4px; }
.agenda-title strong { font-size:clamp(21px,2.5vw,32px); letter-spacing:-.035em; }
.agenda-title small { color:var(--muted); font-size:13px; }
.agenda-plus { width:36px; height:36px; border-radius:50%; display:grid; place-items:center; border:1px solid var(--line); transition:.25s ease; }
.agenda-row.is-open .agenda-plus { transform:rotate(45deg); background:var(--navy); color:#fff; }
.agenda-content { display:grid; grid-template-rows:0fr; transition:grid-template-rows .35s ease; background:#f8f8f4; }
.agenda-content > p { overflow:hidden; margin:0; padding:0 190px 0 146px; color:var(--muted); }
.agenda-row.is-open + .agenda-content { grid-template-rows:1fr; }
.agenda-row.is-open + .agenda-content > p { padding-top:20px; padding-bottom:26px; }
.programme-note { margin-top:38px; display:grid; grid-template-columns:160px 1fr; gap:30px; border-radius:22px; padding:24px; background:#eef5f1; }
.programme-note span { font-size:11px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; color:var(--green); }
.programme-note p { margin:0; color:#53655c; }

.quote-section { position:relative; isolation:isolate; min-height:650px; display:grid; place-items:center; color:#fff; overflow:hidden; background:var(--navy); }
.quote-visual { position:absolute; inset:-15% -4%; z-index:-2; background:linear-gradient(90deg,rgba(7,31,55,.95),rgba(7,31,55,.45)),url('sima-hero.jpg') center 33%/cover no-repeat; filter:grayscale(.18) saturate(.80); transform:translate3d(0,var(--parallax,0),0) scale(1.06); }
.quote-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(7,31,55,.20),rgba(7,31,55,.72)); }
.quote-content { max-width:1000px; position:relative; }
.quote-mark { font-family:Georgia,serif; font-size:130px; line-height:.5; color:var(--orange); opacity:.9; }
blockquote { margin:25px 0; font-size:clamp(37px,5vw,70px); line-height:1.03; letter-spacing:-.05em; font-weight:750; }
.quote-content p { color:rgba(255,255,255,.65); }

.participation-section { background:var(--paper); }
.participation-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.participation-card { min-height:300px; position:relative; padding:32px; border-radius:26px; border:1px solid var(--line); background:#fff; overflow:hidden; transition:.3s ease; }
.participation-card::after { content:"↗"; position:absolute; right:28px; top:22px; font-size:26px; color:#c3c9d0; transition:.25s ease; }
.participation-card:hover { transform:translateY(-6px); box-shadow:var(--shadow); border-color:transparent; }
.participation-card:hover::after { color:var(--orange); transform:translate(3px,-3px); }
.participation-card > span { font-size:11px; letter-spacing:.13em; font-weight:900; color:var(--green); }
.participation-card h3 { font-size:31px; letter-spacing:-.04em; margin:55px 0 10px; }
.participation-card p { max-width:520px; color:var(--muted); }
.participation-card b { display:block; margin-top:30px; font-size:12px; text-transform:uppercase; letter-spacing:.06em; }

.destination-section { background:#fff; }
.destination-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.destination-map { position:relative; min-height:520px; border-radius:32px; overflow:hidden; background:linear-gradient(145deg,#0a693f,#0a2d50); box-shadow:var(--shadow); }
.destination-map::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 62% 58%, rgba(244,181,42,.42), transparent 8%),radial-gradient(circle at 20% 20%,rgba(255,255,255,.12),transparent 25%),linear-gradient(35deg,transparent 48%,rgba(255,255,255,.05) 49%,rgba(255,255,255,.05) 50%,transparent 51%); background-size:auto,auto,50px 50px; }
.africa-watermark { position:absolute; inset:0; display:grid; place-items:center; font-size:clamp(60px,9vw,130px); font-weight:950; letter-spacing:-.08em; color:rgba(255,255,255,.08); transform:rotate(-8deg); }
.pin { position:absolute; left:55%; top:54%; width:19px; height:19px; background:var(--orange); border:4px solid #fff; border-radius:50%; box-shadow:0 0 0 11px rgba(229,107,10,.25),0 0 0 22px rgba(229,107,10,.12); }
.city-label { position:absolute; left:calc(55% + 35px); top:calc(54% - 5px); color:#fff; display:grid; }
.city-label strong { font-size:18px; letter-spacing:.08em; }
.city-label small { color:rgba(255,255,255,.62); }
.destination-copy ul { list-style:none; padding:0; margin:36px 0 0; border-top:1px solid var(--line); }
.destination-copy li { display:flex; justify-content:space-between; gap:25px; padding:18px 0; border-bottom:1px solid var(--line); }
.destination-copy li span { color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.09em; font-weight:800; }
.destination-copy li strong { text-align:right; }

.contact-section { background:#fff; padding-top:35px; }
.contact-panel { border-radius:34px; padding:70px; background:linear-gradient(120deg,var(--navy),#0d436d 58%,#0b7a46 160%); color:#fff; display:grid; grid-template-columns:1.1fr .9fr; gap:60px; align-items:center; box-shadow:var(--shadow); }
.contact-panel .section-kicker { color:#89eab7; }
.contact-copy p { color:rgba(255,255,255,.65); }
.contact-actions { display:flex; flex-direction:column; align-items:flex-start; gap:18px; }
.btn-light { background:#fff; color:var(--navy); }
.contact-phone { font-size:22px; font-weight:800; border-bottom:1px solid rgba(255,255,255,.25); padding-bottom:5px; }

.site-footer { background:#051628; color:#fff; padding:75px 0 25px; }
.footer-grid { display:grid; grid-template-columns:1.6fr .8fr .8fr .8fr; gap:50px; }
.footer-brand { align-items:flex-start; }
.footer-title { display:block; text-transform:uppercase; letter-spacing:.13em; font-size:10px; font-weight:900; color:rgba(255,255,255,.42); margin-bottom:18px; }
.footer-grid p, .footer-grid > div > a:not(.brand) { display:block; color:rgba(255,255,255,.65); font-size:13px; margin:0 0 9px; }
.footer-bottom { margin-top:60px; padding-top:20px; border-top:1px solid rgba(255,255,255,.09); display:flex; justify-content:space-between; gap:20px; color:rgba(255,255,255,.38); font-size:11px; }

[data-reveal] { opacity:0; transition: opacity .75s ease var(--delay,0s), transform .75s cubic-bezier(.2,.72,.2,1) var(--delay,0s); }
[data-reveal="up"] { transform:translateY(34px); }
[data-reveal="left"] { transform:translateX(-35px); }
[data-reveal="right"] { transform:translateX(35px); }
[data-reveal="scale"] { transform:scale(.94) translateY(18px); }
[data-reveal].is-visible { opacity:1; transform:none; }

@media (max-width: 1080px) {
  .site-nav { gap:17px; font-size:13px; }
  .hero-content { gap:45px; }
  .badge-top { left:-28px; }
  .experience-grid { grid-template-columns:1fr 1fr; }
  .experience-card { min-height:360px; }
  .split-layout { gap:55px; }
}

@media (max-width: 860px) {
  :root { --container:min(100% - 28px, 720px); }
  .site-header { padding:12px 0; background:rgba(7,31,55,.70); backdrop-filter:blur(14px); }
  .menu-toggle { display:block; }
  .site-nav { position:absolute; left:14px; right:14px; top:72px; display:grid; gap:4px; background:rgba(6,25,44,.97); border:1px solid rgba(255,255,255,.12); border-radius:22px; padding:14px; box-shadow:0 30px 70px rgba(0,0,0,.28); transform-origin:top; opacity:0; transform:translateY(-10px) scale(.98); pointer-events:none; transition:.22s ease; }
  .site-nav.is-open { opacity:1; transform:none; pointer-events:auto; }
  .site-nav a { padding:12px 14px; border-radius:12px; }
  .site-nav a:hover { background:rgba(255,255,255,.08); }
  .site-nav > a::after { display:none; }
  .nav-cta { margin-top:6px; }
  .hero { padding-top:125px; min-height:auto; }
  .hero-content { grid-template-columns:1fr; min-height:auto; }
  .hero-copy { position:relative; z-index:2; }
  .hero-visual { max-width:520px; width:86%; justify-self:center; margin-top:15px; }
  .visual-shell { width:100%; }
  .event-meta { gap:25px; flex-wrap:wrap; }
  .countdown-wrap { flex-direction:column; align-items:flex-start; padding:45px 0; }
  .countdown { width:100%; display:grid; grid-template-columns:repeat(4,1fr); }
  .countdown > div { width:auto; min-height:90px; }
  .section { padding:90px 0; }
  .split-layout, .impact-panel, .destination-grid, .contact-panel { grid-template-columns:1fr; }
  .sticky-title { position:relative; top:auto; }
  .impact-panel { padding:42px; gap:40px; }
  .agenda-content > p { padding-left:0; padding-right:0; }
  .programme-note { grid-template-columns:1fr; gap:8px; }
  .footer-grid { grid-template-columns:1.3fr 1fr 1fr; }
  .footer-grid > div:first-child { grid-column:1/-1; }
}

@media (max-width: 600px) {
  .brand-sub { display:none; }
  .brand-mark { font-size:29px; }
  .hero h1 { font-size:58px; }
  .hero-lead { font-size:16px; }
  .hero-actions { display:grid; }
  .btn { width:100%; }
  .hero-visual { width:94%; }
  .badge-top { left:-10px; top:26px; }
  .badge-bottom { right:-6px; bottom:23px; max-width:225px; }
  .event-meta { display:grid; grid-template-columns:1fr; gap:14px; }
  .countdown { gap:5px; }
  .countdown > div { min-height:78px; border-radius:16px; }
  .countdown strong { font-size:24px; }
  .countdown span { font-size:8px; }
  .manifesto-grid, .experience-grid, .participation-grid, .impact-stats { grid-template-columns:1fr; }
  .manifesto-grid article { min-height:220px; }
  .impact-panel { padding:28px; border-radius:26px; }
  .impact-stats div:last-child { grid-column:auto; }
  .agenda-row { grid-template-columns:75px 1fr 32px; gap:12px; }
  .agenda-title small { display:none; }
  .quote-section { min-height:560px; }
  blockquote { font-size:37px; }
  .destination-map { min-height:390px; }
  .destination-copy li { display:grid; }
  .destination-copy li strong { text-align:left; }
  .contact-panel { padding:34px 26px; border-radius:26px; }
  .contact-phone { font-size:19px; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-bottom { flex-direction:column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  [data-reveal] { opacity:1 !important; transform:none !important; }
  [data-parallax] { transform:none !important; }
}

/* =========================================================
   SIMA PREMIUM V2 — HERO / BRAND / EXPERIENCE / DAKAR MAP
   ========================================================= */

:root {
  --container: min(1360px, calc(100% - 64px));
  --navy-deep: #04192c;
  --navy-soft: #0d2d49;
  --gold-soft: #ffc13a;
}

body { font-weight: 400; }

/* Brand lockup recreated from the official visual supplied for SIMA. */
.brand { gap: 0; }
.brand-logo {
  width: 176px;
  height: 72px;
  object-fit: contain;
  object-position: left center;
  filter: drop-shadow(0 7px 20px rgba(0,0,0,.18));
}
.site-header:not(.is-scrolled) .brand-logo { width: 190px; height: 80px; }
.site-header.is-scrolled .brand-logo { width: 156px; height: 58px; }
.site-nav { font-weight: 560; }
.nav-cta { font-weight: 650; }

.hero {
  min-height: 100vh;
  padding: 126px 0 86px;
  background: linear-gradient(135deg, #04192c 0%, #082a48 55%, #061d34 100%);
}
.hero-bg {
  inset: -10% -4%;
  background:
    radial-gradient(circle at 77% 42%, rgba(24,93,137,.22), transparent 24%),
    linear-gradient(90deg, rgba(4,25,44,.985) 0%, rgba(4,25,44,.92) 44%, rgba(4,25,44,.58) 73%, rgba(4,25,44,.82) 100%),
    url('sima-hero.jpg') 73% 43% / cover no-repeat;
  filter: saturate(.72) contrast(1.04);
}
.hero-bg::after {
  background:
    radial-gradient(circle at 74% 34%, rgba(244,181,42,.12), transparent 18%),
    linear-gradient(180deg, rgba(4,25,44,.03), rgba(4,25,44,.90));
}
.hero-grid-overlay { opacity: .095; background-size: 86px 86px; }
.hero-content {
  grid-template-columns: minmax(0,1.13fr) minmax(390px,.87fr);
  gap: 74px;
  min-height: calc(100vh - 205px);
}
.eyebrow, .section-kicker { font-weight: 650; }
.eyebrow { margin-bottom: 20px; }
.hero h1 {
  font-size: clamp(58px, 6.2vw, 100px);
  line-height: .87;
  letter-spacing: -.055em;
  margin: 0 0 24px;
  max-width: 780px;
  font-weight: 710;
}
.hero-line { display: block; width: max-content; max-width: 100%; }
.accent-line { margin: 5px 0 7px; }
.accent-word {
  position: relative;
  display: inline-block;
  color: var(--gold-soft);
  font-style: italic;
  font-weight: 610;
  letter-spacing: -.045em;
  padding-right: .07em;
}
.accent-word::before,
.accent-word::after {
  content: "";
  position: absolute;
  left: 1%;
  right: 2%;
  border-radius: 99px;
  pointer-events: none;
}
.accent-word::before {
  height: 5px;
  bottom: -7px;
  background: linear-gradient(90deg, var(--green-2) 0 58%, var(--orange) 58% 100%);
  transform: rotate(-1.5deg);
  opacity: .95;
}
.accent-word::after {
  height: 2px;
  bottom: -12px;
  left: 12%; right: 9%;
  background: rgba(255,255,255,.24);
  transform: none;
}
.hero-lead {
  max-width: 720px;
  font-size: clamp(16px,1.32vw,20px);
  line-height: 1.62;
  color: rgba(255,255,255,.75);
  margin-bottom: 28px;
  font-weight: 390;
}
.btn { font-weight: 650; min-height: 52px; }
.btn-primary { background: linear-gradient(135deg,#f37a0b,#e56500); }

/* Three premium practical-information cards in the hero. */
.hero-info-grid {
  margin-top: 30px;
  display: grid;
  grid-template-columns: 1.12fr .88fr;
  gap: 12px;
  max-width: 790px;
}
.hero-info-card {
  position: relative;
  min-width: 0;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 20px;
  background: linear-gradient(135deg,rgba(255,255,255,.105),rgba(255,255,255,.045));
  backdrop-filter: blur(18px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 16px 34px rgba(0,0,0,.12);
}
.date-card, .place-card {
  min-height: 116px;
  padding: 17px 18px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.hero-info-icon {
  flex: 0 0 auto;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  color: var(--gold-soft);
  background: rgba(244,181,42,.10);
  border: 1px solid rgba(244,181,42,.24);
}
.place-card .hero-info-icon { color: #5ee49c; background: rgba(16,163,95,.11); border-color: rgba(16,163,95,.25); }
.countdown-card .hero-info-icon { color: #7ebeff; background: rgba(69,150,224,.11); border-color: rgba(126,190,255,.21); }
.hero-info-icon svg,
.icon-wrap svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.hero-info-copy { min-width: 0; display: grid; gap: 2px; }
.meta-label {
  color: rgba(255,255,255,.50);
  font-size: 9px;
  font-weight: 650;
  letter-spacing: .14em;
}
.hero-info-copy strong {
  font-size: 15px;
  line-height: 1.24;
  font-weight: 620;
  color: #fff;
}
.hero-info-copy small { color: rgba(255,255,255,.61); font-size: 11px; }
.meta-chip {
  width: max-content;
  max-width: 100%;
  margin-top: 8px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(244,181,42,.13);
  color: #ffd66f;
  font-size: 9px;
  font-weight: 620;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.countdown-card {
  grid-column: 1 / -1;
  min-height: 104px;
  padding: 14px 16px;
  display: grid;
  grid-template-columns: minmax(190px,.85fr) 1.15fr;
  align-items: center;
  gap: 18px;
}
.countdown-heading { display: flex; align-items: center; gap: 13px; min-width: 0; }
.countdown-heading > div:last-child { display: grid; gap: 2px; }
.countdown-heading strong { font-size: 13px; font-weight: 580; color: rgba(255,255,255,.92); }
.hero-countdown { display: grid; grid-template-columns: repeat(4,1fr); gap: 6px; }
.hero-countdown > div {
  min-width: 0;
  min-height: 68px;
  display: grid;
  place-items: center;
  align-content: center;
  border-radius: 14px;
  background: rgba(3,18,32,.45);
  border: 1px solid rgba(255,255,255,.09);
}
.hero-countdown strong { font-size: 22px; line-height: 1; color: #fff; font-weight: 620; letter-spacing: -.035em; }
.hero-countdown span { margin-top: 5px; font-size: 8px; text-transform: uppercase; letter-spacing: .10em; color: rgba(255,255,255,.44); font-weight: 560; }

.hero-visual { align-self: center; }
.visual-shell {
  width: min(455px,100%);
  border-radius: 32px;
  padding: 9px;
  background: linear-gradient(145deg,rgba(255,255,255,.15),rgba(255,255,255,.05));
  border-color: rgba(255,255,255,.25);
  box-shadow: 0 45px 100px rgba(0,0,0,.38), 0 0 0 1px rgba(255,255,255,.025) inset;
  transform: rotate(.8deg);
}
.visual-shell img { border-radius: 24px; }
.badge-bottom {
  right: -20px;
  bottom: 28px;
  max-width: 286px;
  padding: 13px 16px;
  border-radius: 15px;
  font-size: 10px;
  color: rgba(255,255,255,.82);
  font-weight: 500;
}

/* Reduce over-bold typography throughout the page. */
.sticky-title h2, .section-head h2, .impact-copy h2, .destination-copy h2, .contact-copy h2 { font-weight: 620; }
.manifesto-big { font-weight: 430; }
.manifesto-grid h3, .experience-card h3, .participation-card h3 { font-weight: 620; }
.number, .card-index, .footer-title, .participation-card > span { font-weight: 650; }
blockquote { font-weight: 560; }
.destination-copy li strong { font-weight: 590; }
.contact-phone { font-weight: 620; }

/* More meaningful, consistent experience icons. */
.icon-wrap {
  width: 62px;
  height: 62px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.17);
  color: #fff;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
.icon-wrap svg { width: 30px; height: 30px; stroke-width: 1.55; }

/* Dakar must be physically placed inside Africa, not on an abstract background. */
.destination-map {
  min-height: 560px;
  isolation: isolate;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 18% 24%, rgba(16,163,95,.24), transparent 28%),
    radial-gradient(circle at 80% 72%, rgba(244,181,42,.14), transparent 25%),
    linear-gradient(145deg,#061e35 0%,#0a3152 62%,#075638 135%);
}
.destination-map::before {
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 42px 42px;
  opacity: .5;
  mask-image: linear-gradient(to bottom,rgba(0,0,0,.92),transparent 92%);
}
.map-glow { position:absolute; border-radius:50%; filter:blur(22px); pointer-events:none; }
.map-glow-a { width:230px; height:230px; left:9%; top:22%; background:rgba(16,163,95,.15); }
.map-glow-b { width:220px; height:220px; right:7%; bottom:4%; background:rgba(244,181,42,.10); }
.africa-map { position:relative; z-index:1; width:min(86%,490px); height:auto; overflow:visible; }
.africa-shape { stroke:rgba(255,255,255,.20); stroke-width:2; }
.map-line { fill:none; stroke:rgba(126,190,255,.24); stroke-width:2; stroke-dasharray:5 7; }
.network-node { fill:#8ddbb5; opacity:.78; }
.marker-pulse { fill:rgba(244,181,42,.14); transform-box:fill-box; transform-origin:center; animation:mapPulse 2.4s ease-out infinite; }
.marker-ring { fill:rgba(244,181,42,.16); stroke:#ffd15f; stroke-width:2; }
.marker-core { fill:#ffb51b; stroke:#fff; stroke-width:2.5; }
@keyframes mapPulse { 0%{transform:scale(.55);opacity:.9} 80%,100%{transform:scale(1.7);opacity:0} }
.city-label {
  z-index:2;
  left: 8%;
  top: auto;
  bottom: 7%;
  display: grid;
  gap: 1px;
  padding: 13px 16px;
  border-radius: 16px;
  background: rgba(3,18,32,.66);
  border: 1px solid rgba(255,255,255,.13);
  backdrop-filter: blur(14px);
}
.city-kicker { font-size:8px; text-transform:uppercase; letter-spacing:.15em; color:#8ddbb5; }
.city-label strong { font-size: 24px; font-weight: 620; letter-spacing:.04em; }
.city-label small { font-size: 10px; }

.footer-logo { width: 190px; height: 150px; object-fit: contain; object-position:left top; }

@media (max-width: 1180px) {
  :root { --container:min(100% - 40px, 1100px); }
  .hero-content { gap: 42px; grid-template-columns: minmax(0,1.05fr) minmax(350px,.95fr); }
  .hero h1 { font-size: clamp(58px,7vw,88px); }
  .hero-info-grid { max-width: 700px; }
}

@media (max-width: 860px) {
  :root { --container:min(100% - 28px, 720px); }
  .brand-logo, .site-header:not(.is-scrolled) .brand-logo, .site-header.is-scrolled .brand-logo { width: 140px; height: 58px; }
  .hero { padding-top: 105px; }
  .hero-content { grid-template-columns:1fr; }
  .hero h1 { font-size: clamp(58px,11vw,86px); }
  .hero-info-grid { max-width:none; }
  .hero-visual { width:78%; margin-top: 20px; }
  .countdown-card { grid-template-columns:1fr; }
  .hero-countdown { width:100%; }
  .footer-logo { height:110px; }
}

@media (max-width: 600px) {
  .brand-logo, .site-header:not(.is-scrolled) .brand-logo, .site-header.is-scrolled .brand-logo { width: 116px; height: 48px; }
  .hero { padding-top: 92px; padding-bottom: 76px; }
  .hero h1 { font-size: clamp(52px,16vw,70px); line-height:.91; }
  .accent-line { margin:3px 0 8px; }
  .hero-info-grid { grid-template-columns:1fr; }
  .countdown-card { grid-column:auto; }
  .date-card, .place-card { min-height: 102px; }
  .hero-countdown { gap:4px; }
  .hero-countdown > div { min-height:60px; border-radius:12px; }
  .hero-countdown strong { font-size:19px; }
  .hero-visual { width:94%; }
  .badge-bottom { right:-6px; }
  .destination-map { min-height:440px; }
  .africa-map { width:96%; }
  .city-label { left:6%; bottom:5%; }
}

/* =========================================================
   SIMA 2026 — PREMIUM V3
   ========================================================= */
:root{--gold-soft:#ffbf31;--cyan:#53a8e2;--mint:#63d9a4;--purple-soft:#8b62d7}
html{scroll-padding-top:96px}
.brand-lockup{display:inline-flex;align-items:center;gap:10px;min-width:0;color:#fff}.brand-africa{width:62px;height:48px;flex:0 0 auto;display:grid;place-items:center}.brand-africa img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 18px rgba(0,0,0,.16))}.brand-copy{display:grid;line-height:1}.brand-name{color:#fff;font-size:29px;line-height:.86;letter-spacing:-.075em;font-weight:730}.brand-name>span{color:#32b66d;display:inline-block;transform:skew(-5deg);padding:0 .02em}.brand-subline{margin-top:5px;color:rgba(255,255,255,.84);font-size:7.5px;line-height:1.12;text-transform:uppercase;letter-spacing:.055em;font-weight:590}.site-header.is-scrolled .brand-africa{width:54px;height:41px}.site-header.is-scrolled .brand-name{font-size:25px}.site-header.is-scrolled .brand-subline{font-size:6.8px}.site-nav{gap:20px;font-size:13px;font-weight:570}.nav-cta{font-weight:600}
.hero-info-grid{max-width:820px;grid-template-columns:1.06fr .94fr;gap:13px}.date-card,.place-card{min-height:132px;padding:20px 21px;gap:16px}.hero-info-icon{width:52px;height:52px;border-radius:17px}.hero-info-icon svg{width:26px;height:26px}.meta-label{font-size:10px;letter-spacing:.13em;font-weight:590}.hero-info-copy{gap:4px}.hero-info-copy strong{font-size:clamp(17px,1.2vw,20px);font-weight:590;letter-spacing:-.018em}.hero-info-copy small{font-size:13px;color:rgba(255,255,255,.68)}.meta-chip{margin-top:9px;padding:5px 10px;font-size:9.5px;font-weight:580}.countdown-card{min-height:116px;padding:16px 18px}.countdown-heading strong{font-size:14px;font-weight:540}.hero-countdown>div{min-height:74px}.hero-countdown strong{font-size:25px;font-weight:590}.hero-countdown span{font-size:8.5px;font-weight:520}.visual-shell{overflow:visible}.badge-bottom{left:50%;right:auto;bottom:24px;transform:translateX(-50%);width:max-content;max-width:calc(100% - 34px);padding:13px 17px;text-align:center;border-radius:999px;font-size:10px;white-space:nowrap;background:rgba(5,29,50,.86);border:1px solid rgba(255,255,255,.16);box-shadow:0 14px 32px rgba(0,0,0,.25)}.hero-visual:hover .badge-bottom{transform:translateX(-50%) translateY(-2px)}
.section-head h2,.sticky-title h2,.impact-copy h2,.programme-intro h2,.editions-head h2,.gallery-head h2,.participation-head h2,.destination-copy h2,.contact-copy h2{font-weight:590}.section-head p,.sticky-title p,.programme-intro p,.gallery-head p,.participation-head p,.destination-copy p{font-weight:390}.experience-card h3,.manifesto-grid h3,.participation-card h3,.edition-content h3{font-weight:590}.experience-card p,.participation-card p,.edition-content p{font-weight:390}
.programme-section{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 14% 14%,rgba(16,163,95,.13),transparent 26%),radial-gradient(circle at 88% 78%,rgba(229,107,10,.10),transparent 26%),linear-gradient(145deg,#061a2e 0%,#082944 55%,#071f37 100%);color:#fff}.programme-section::before{content:"";position:absolute;inset:0;z-index:-2;opacity:.055;background-image:linear-gradient(rgba(255,255,255,.55) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.55) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(to bottom,black,transparent 95%)}.programme-orb{position:absolute;z-index:-1;border-radius:50%;filter:blur(32px);pointer-events:none}.programme-orb-a{width:380px;height:380px;left:-180px;top:80px;background:rgba(16,163,95,.16)}.programme-orb-b{width:420px;height:420px;right:-230px;bottom:-40px;background:rgba(229,107,10,.13)}.programme-layout{display:grid;grid-template-columns:.78fr 1.22fr;gap:76px;align-items:start}.programme-intro{position:sticky;top:130px}.programme-intro .section-kicker{color:#79e0ad}.programme-intro h2{margin:15px 0 22px;font-size:clamp(40px,4.4vw,64px);line-height:.98;letter-spacing:-.05em;color:#fff}.programme-intro p{color:rgba(255,255,255,.64);font-size:16px}.programme-date-pill{margin-top:34px;display:flex;align-items:center;gap:14px;padding:16px;border-radius:21px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);backdrop-filter:blur(14px)}.programme-date-icon{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;color:#ffd66b;background:rgba(244,181,42,.11);border:1px solid rgba(244,181,42,.25)}.programme-date-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.programme-date-pill>span:last-child{display:grid;gap:2px}.programme-date-pill small{color:rgba(255,255,255,.45);font-size:10px;text-transform:uppercase;letter-spacing:.11em}.programme-date-pill strong{font-size:17px;font-weight:590}.programme-tags{margin-top:17px;display:flex;flex-wrap:wrap;gap:8px}.programme-tags span{padding:7px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.62);font-size:10px;letter-spacing:.05em}.agenda-premium{border-top:0;display:grid;gap:10px}.agenda-premium .agenda-row{grid-template-columns:74px 1fr 42px;gap:22px;min-height:116px;padding:18px 20px;border:1px solid rgba(255,255,255,.12);border-radius:22px;color:#fff;background:linear-gradient(135deg,rgba(255,255,255,.075),rgba(255,255,255,.035));backdrop-filter:blur(14px);transition:transform .25s ease,border-color .25s ease,background .25s ease}.agenda-premium .agenda-row:hover{transform:translateX(5px);border-color:rgba(255,255,255,.23);background:linear-gradient(135deg,rgba(255,255,255,.11),rgba(255,255,255,.045))}.agenda-premium .agenda-day{width:60px;height:68px;border-radius:17px;display:grid;place-items:center;align-content:center;background:rgba(4,19,33,.44);border:1px solid rgba(255,255,255,.10);color:#ffd261}.agenda-premium .agenda-day b{display:block;font-size:25px;line-height:1;font-weight:600;letter-spacing:-.04em}.agenda-premium .agenda-day small{margin-top:5px;font-size:8px;color:rgba(255,255,255,.45);letter-spacing:.10em;text-transform:uppercase}.agenda-premium .agenda-title{gap:4px}.agenda-premium .agenda-title em{color:#6fd9a2;font-size:9px;font-style:normal;text-transform:uppercase;letter-spacing:.12em}.agenda-premium .agenda-title strong{color:#fff;font-size:clamp(19px,2vw,27px);font-weight:570}.agenda-premium .agenda-title small{color:rgba(255,255,255,.48)}.agenda-premium .agenda-plus{border-color:rgba(255,255,255,.15);color:rgba(255,255,255,.72);font-size:20px}.agenda-premium .agenda-row.is-open{border-color:rgba(244,181,42,.32);background:linear-gradient(135deg,rgba(244,181,42,.08),rgba(255,255,255,.055))}.agenda-premium .agenda-row.is-open .agenda-plus{background:#f4b52a;color:#071f37;border-color:#f4b52a}.agenda-premium .agenda-content{margin-top:-12px;border-radius:0 0 20px 20px;background:rgba(255,255,255,.055);color:rgba(255,255,255,.72)}.agenda-premium .agenda-content>p{color:rgba(255,255,255,.62);padding-left:118px;padding-right:66px}.agenda-premium .agenda-row.is-open+.agenda-content>p{padding-top:25px;padding-bottom:25px}
.editions-section{background:linear-gradient(180deg,#f7f7f2 0%,#fff 100%)}.editions-head{max-width:850px}.editions-head h2{max-width:760px}.editions-timeline{position:relative;margin-top:65px;display:grid;gap:32px}.timeline-line{position:absolute;left:76px;top:10px;bottom:10px;width:2px;background:linear-gradient(to bottom,#0b7a46 0 43%,#f4b52a 43% 100%);opacity:.65}.edition-card{position:relative;display:grid;grid-template-columns:154px 1fr;gap:32px;min-height:245px}.edition-dot{position:absolute;left:52px;top:3px;width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:#fff;border:2px solid #0b7a46;box-shadow:0 10px 28px rgba(7,31,55,.12),0 0 0 9px #f7f7f2;z-index:2}.edition-current .edition-dot{border-color:#f4b52a;background:#071f37;color:#fff}.edition-dot span{font-size:10px;letter-spacing:.08em;font-weight:650}.edition-year{padding-top:70px;text-align:center;color:#071f37;font-size:34px;font-weight:560;letter-spacing:-.045em}.edition-content{position:relative;padding:30px 34px 32px;border-radius:28px;background:#fff;border:1px solid var(--line);box-shadow:0 22px 70px rgba(7,31,55,.07);overflow:hidden}.edition-content::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(to bottom,#0b7a46,#43be78)}.edition-current .edition-content{color:#fff;background:linear-gradient(135deg,#071f37,#0b3156);border-color:rgba(255,255,255,.09)}.edition-current .edition-content::before{background:linear-gradient(to bottom,#f4b52a,#e56b0a)}.edition-status{font-size:9px;text-transform:uppercase;letter-spacing:.13em;color:#0b7a46;font-weight:640}.edition-current .edition-status{color:#ffd15f}.edition-content h3{margin:8px 0 12px;font-size:clamp(26px,3vw,40px);line-height:1.05;letter-spacing:-.04em}.edition-content p{margin:0;color:var(--muted);max-width:850px}.edition-current .edition-content p{color:rgba(255,255,255,.66)}.edition-facts{margin-top:25px;display:flex;flex-wrap:wrap;gap:12px}.edition-facts span{min-width:140px;padding:12px 14px;border-radius:15px;background:#f5f6f1;color:#536170;font-size:11px}.edition-facts strong{display:block;color:#071f37;font-size:19px;font-weight:620}.edition-link{margin-top:24px;display:inline-flex;align-items:center;gap:8px;color:#fff;font-size:12px;border-bottom:1px solid rgba(255,255,255,.25);padding-bottom:5px}
.gallery-section{background:#fff;overflow:hidden}.gallery-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:34px}.gallery-head h2{margin:12px 0 12px;font-size:clamp(40px,5vw,68px);line-height:.98;letter-spacing:-.05em}.gallery-head p{margin:0;color:var(--muted);font-size:16px}.gallery-controls{display:flex;gap:9px;flex:0 0 auto}.gallery-btn{width:50px;height:50px;border-radius:50%;border:1px solid var(--line);background:#fff;color:#071f37;cursor:pointer;font-size:20px;transition:.25s ease}.gallery-btn:hover{background:#071f37;color:#fff;transform:translateY(-2px)}.gallery-viewport{overflow:hidden;margin-right:calc((100vw - var(--container))/ -2);padding-right:calc((100vw - var(--container))/2)}.gallery-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-behavior:smooth;padding:5px 0 18px}.gallery-track::-webkit-scrollbar{display:none}.gallery-slide{position:relative;flex:0 0 min(72vw,760px);height:500px;margin:0;border-radius:30px;overflow:hidden;scroll-snap-align:start;background:#071f37;box-shadow:0 22px 60px rgba(7,31,55,.12)}.gallery-slide img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}.gallery-slide:hover img{transform:scale(1.035)}.gallery-slide::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 43%,rgba(4,20,35,.86) 100%)}.gallery-slide figcaption{position:absolute;z-index:2;left:28px;right:28px;bottom:25px;color:#fff;display:grid;gap:5px}.gallery-slide figcaption>span{color:#86e6b6;text-transform:uppercase;letter-spacing:.12em;font-size:9px;font-weight:620}.gallery-slide figcaption strong{max-width:650px;font-size:clamp(20px,2.2vw,30px);line-height:1.08;font-weight:560}.gallery-slide figcaption small{color:rgba(255,255,255,.55);font-size:10px}.gallery-progress{margin-top:10px;width:100%;height:2px;background:#e5e8e3;overflow:hidden}.gallery-progress span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#0b7a46,#f4b52a,#e56b0a);transform:scaleX(.25);transform-origin:left center;transition:transform .25s ease}
.participation-section{position:relative;overflow:hidden;background:radial-gradient(circle at 10% 0,rgba(16,163,95,.08),transparent 30%),radial-gradient(circle at 92% 100%,rgba(77,42,134,.08),transparent 30%),#f4f5f0}.participation-glow{position:absolute;width:520px;height:520px;border-radius:50%;right:-300px;top:-220px;background:radial-gradient(circle,rgba(244,181,42,.18),transparent 68%);pointer-events:none}.participation-head{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:end;margin-bottom:45px}.participation-head h2{margin:12px 0 0;font-size:clamp(42px,5vw,70px);line-height:.96;letter-spacing:-.055em}.participation-head p{margin:0 0 8px;color:var(--muted);font-size:16px;max-width:480px}.participation-premium{gap:16px}.participation-premium .participation-card{min-height:335px;padding:30px;display:flex;flex-direction:column;border:1px solid rgba(7,31,55,.09);background:radial-gradient(circle at 92% 8%,var(--card-glow,rgba(16,163,95,.08)),transparent 28%),#fff}.participation-premium .participation-card::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--card-accent,#0b7a46)}.participation-premium .participation-card::after{display:none}.participant-visitor{--card-accent:#0b7a46;--card-glow:rgba(11,122,70,.12)}.participant-exhibitor{--card-accent:#1e78bd;--card-glow:rgba(30,120,189,.12)}.participant-sponsor{--card-accent:#e56b0a;--card-glow:rgba(229,107,10,.12)}.participant-media{--card-accent:#6a3caf;--card-glow:rgba(106,60,175,.12)}.participant-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;color:var(--card-accent);background:#f7f8f6;border:1px solid rgba(7,31,55,.09)}.participant-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.participant-index{position:absolute;top:32px;right:30px;color:#9aa4ae!important;font-size:10px!important;font-weight:560!important}.participation-premium .participation-card h3{margin:34px 0 10px;max-width:470px;font-size:clamp(26px,2.4vw,34px);line-height:1.02}.participation-premium .participation-card p{margin:0;color:var(--muted);font-size:14px}.participation-premium .participation-card b{margin-top:auto;padding-top:30px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--card-accent);font-size:11px;font-weight:620}.participation-premium .participation-card:hover{transform:translateY(-7px);box-shadow:0 28px 80px rgba(7,31,55,.13)}
.destination-map-premium{min-height:590px;display:grid;place-items:center;isolation:isolate;background:radial-gradient(circle at 14% 22%,rgba(16,163,95,.22),transparent 26%),radial-gradient(circle at 80% 75%,rgba(244,181,42,.14),transparent 26%),linear-gradient(145deg,#061c31,#092e4e 62%,#07513a 145%)}.destination-map-premium::before{display:none}.map-grid{position:absolute;inset:0;z-index:-2;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:46px 46px;mask-image:linear-gradient(to bottom,black,transparent 95%)}.map-aura{position:absolute;border-radius:50%;filter:blur(28px);z-index:-1}.map-aura-one{width:250px;height:250px;left:3%;top:18%;background:rgba(16,163,95,.13)}.map-aura-two{width:260px;height:260px;right:1%;bottom:3%;background:rgba(244,181,42,.10)}.africa-map-img{width:min(83%,520px);height:auto;max-height:520px;object-fit:contain;filter:drop-shadow(0 28px 35px rgba(0,10,20,.34))}.destination-map-premium .city-label{left:6%;bottom:6%;top:auto;gap:2px;min-width:180px;padding:14px 17px;background:rgba(3,18,32,.78);border:1px solid rgba(255,255,255,.15);border-radius:17px}.destination-map-premium .city-label strong{font-size:26px;font-weight:590}.destination-map-premium .city-kicker{font-size:8px;letter-spacing:.14em;color:#8bdcb5}.destination-map-premium .city-label small{font-size:10px}
body.has-motion [data-section-reveal]>.container{opacity:0;transform:translateY(46px);transition:opacity .85s ease,transform .95s cubic-bezier(.2,.72,.2,1)}body.has-motion [data-section-reveal].is-section-visible>.container{opacity:1;transform:none}
@media(max-width:1180px){.site-nav{gap:14px;font-size:12px}.brand-africa{width:55px;height:43px}.brand-name{font-size:25px}.brand-subline{font-size:6.6px}.programme-layout{gap:48px;grid-template-columns:.72fr 1.28fr}.gallery-slide{flex-basis:min(78vw,690px);height:460px}}
@media(max-width:980px){.programme-layout{grid-template-columns:1fr}.programme-intro{position:relative;top:auto;max-width:720px}.agenda-premium .agenda-content>p{padding-left:116px}.participation-head{grid-template-columns:1fr;gap:14px}.edition-card{grid-template-columns:130px 1fr}.timeline-line{left:64px}.edition-dot{left:40px}}
@media(max-width:860px){.brand-lockup{gap:7px}.brand-africa,.site-header:not(.is-scrolled) .brand-africa,.site-header.is-scrolled .brand-africa{width:49px;height:37px}.brand-name,.site-header:not(.is-scrolled) .brand-name,.site-header.is-scrolled .brand-name{font-size:22px}.brand-subline,.site-header:not(.is-scrolled) .brand-subline,.site-header.is-scrolled .brand-subline{font-size:6px}.site-nav{font-size:14px}.hero-info-grid{grid-template-columns:1fr 1fr}.date-card,.place-card{min-height:125px}.hero-info-copy strong{font-size:18px}.badge-bottom{font-size:9px;max-width:calc(100% - 20px)}.gallery-viewport{margin-right:-14px;padding-right:14px}.gallery-slide{flex-basis:84vw;height:430px}.destination-map-premium{min-height:520px}}
@media(max-width:700px){.hero-info-grid{grid-template-columns:1fr}.countdown-card{grid-column:auto}.date-card,.place-card{min-height:112px}.agenda-premium .agenda-row{grid-template-columns:58px 1fr 36px;gap:12px;padding:14px}.agenda-premium .agenda-day{width:52px;height:61px}.agenda-premium .agenda-title small{display:none}.agenda-premium .agenda-content>p,.agenda-premium .agenda-row.is-open+.agenda-content>p{padding-left:84px;padding-right:20px}.edition-card{grid-template-columns:1fr;padding-left:62px;min-height:0}.timeline-line{left:22px}.edition-dot{left:-2px;top:2px;width:48px;height:48px;box-shadow:0 10px 28px rgba(7,31,55,.12),0 0 0 7px #f7f7f2}.edition-year{text-align:left;padding:5px 0 0;font-size:28px}.edition-content{padding:26px 24px}.edition-facts{display:grid;grid-template-columns:1fr 1fr}.gallery-head{align-items:flex-start}.gallery-slide{height:390px}.participation-grid{grid-template-columns:1fr}}
@media(max-width:600px){.brand-subline{display:none}.brand-africa,.site-header:not(.is-scrolled) .brand-africa,.site-header.is-scrolled .brand-africa{width:43px;height:33px}.brand-name,.site-header:not(.is-scrolled) .brand-name,.site-header.is-scrolled .brand-name{font-size:23px}.hero-info-copy strong{font-size:17px}.hero-info-copy small{font-size:12px}.gallery-head{display:grid;grid-template-columns:1fr auto}.gallery-head>div:first-child{grid-column:1/-1}.gallery-controls{grid-column:2}.gallery-slide{flex-basis:88vw;height:350px;border-radius:23px}.gallery-slide figcaption{left:20px;right:20px;bottom:18px}.participation-premium .participation-card{min-height:300px}.destination-map-premium{min-height:445px}.africa-map-img{width:91%;max-height:390px}.destination-map-premium .city-label{left:5%;bottom:4%}}

/* V3.1 polish — hero information hierarchy, anchors and quote treatment */
html{scroll-padding-top:92px}
.hero-info-copy strong{font-size:clamp(20px,1.48vw,24px);line-height:1.12;font-weight:565}
.hero-info-copy small{font-size:clamp(13px,.92vw,15px)}
.date-card,.place-card{min-height:142px;padding:22px 23px}
.meta-chip{font-size:10px;padding:6px 11px}
.quote-label{display:block;margin-bottom:14px;color:#83dcc0;font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.quote-mark{font-size:30px;line-height:1;color:#f4b52a}
.quote-content blockquote{font-weight:490}
@media(max-width:860px){.hero-info-copy strong{font-size:20px}.date-card,.place-card{min-height:132px;padding:20px}.hero-info-copy small{font-size:13px}}
@media(max-width:600px){.hero-info-copy strong{font-size:18px}.date-card,.place-card{min-height:122px;padding:17px}.hero-info-icon{width:46px;height:46px;border-radius:15px}.hero-info-icon svg{width:23px;height:23px}}

/* =========================================================
   SIMA V3R1 — visual refinements requested 2026-08-19
   ========================================================= */

/* Single, intact SIMA lockup for dark backgrounds */
.brand-full{display:inline-flex;align-items:center;min-width:0}
.brand-logo-full{display:block;width:205px;height:78px;object-fit:contain;object-position:left center;filter:drop-shadow(0 10px 24px rgba(0,0,0,.22))}
.site-header.is-scrolled .brand-logo-full{width:178px;height:64px}
.footer-brand .brand-logo-full{width:220px;height:88px}

/* Experience heading: explicit two-line composition */
.experience-title{line-height:.94!important}
.experience-title span{display:inline-block;color:#fff;position:relative;margin-top:5px}
.experience-title span::after{content:"";position:absolute;left:0;bottom:-12px;width:min(270px,72%);height:3px;border-radius:999px;background:linear-gradient(90deg,#18a760 0 42%,#f3bd2f 42% 70%,#ed7610 70%)}

/* Alternating desktop timeline */
.editions-timeline{position:relative;margin-top:72px;display:block;min-height:720px}
.editions-timeline .timeline-line{position:absolute;left:50%;top:8px;bottom:8px;width:2px;transform:translateX(-50%);background:linear-gradient(to bottom,#0b7a46 0 48%,#f4b52a 48% 100%);opacity:.7}
.timeline-pulse{position:absolute;left:50%;top:49%;width:14px;height:14px;border-radius:50%;transform:translate(-50%,-50%);background:#fff;border:3px solid #0b7a46;box-shadow:0 0 0 8px rgba(11,122,70,.09)}
.editions-timeline .edition-card{position:relative;width:calc(50% - 62px);min-height:0;display:block;margin-bottom:72px}
.editions-timeline .edition-left{margin-right:auto}
.editions-timeline .edition-right{margin-left:auto;margin-top:120px}
.editions-timeline .edition-dot{top:34px;left:auto;width:52px;height:52px;box-shadow:0 10px 28px rgba(7,31,55,.13),0 0 0 10px #f7f7f2}
.editions-timeline .edition-left .edition-dot{right:-88px}
.editions-timeline .edition-right .edition-dot{left:-88px}
.editions-timeline .edition-content{padding:34px 36px 36px;border-radius:30px}
.editions-timeline .edition-left .edition-content::after,.editions-timeline .edition-right .edition-content::after{content:"";position:absolute;top:48px;width:18px;height:18px;background:inherit;border-top:1px solid var(--line);border-right:1px solid var(--line);transform:rotate(45deg)}
.editions-timeline .edition-left .edition-content::after{right:-10px}
.editions-timeline .edition-right .edition-content::after{left:-10px;transform:rotate(225deg)}
.editions-timeline .edition-current .edition-content::after{border-color:rgba(255,255,255,.09)}
.edition-topline{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:12px}
.editions-timeline .edition-year{padding:0;text-align:left;font-size:clamp(37px,4vw,54px);line-height:.9;font-weight:560;color:#071f37;letter-spacing:-.055em}
.editions-timeline .edition-current .edition-year{color:#fff}
.editions-timeline .edition-status{text-align:right;max-width:190px}
.editions-timeline .edition-content h3{margin-top:14px}

/* Gallery: clear manual navigation + six clickable photos */
.gallery-section{background:linear-gradient(180deg,#fff 0%,#f6f8f7 100%)}
.gallery-head{align-items:center}
.gallery-controls{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.gallery-btn{width:auto;min-width:126px;height:48px;padding:0 17px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:14px;border:1px solid rgba(7,31,55,.16);box-shadow:0 10px 30px rgba(7,31,55,.06)}
.gallery-btn b{font-size:11px;font-weight:570;letter-spacing:.02em}
.gallery-btn:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(7,31,55,.12)}
.gallery-viewport{position:relative}
.gallery-slide{height:510px}
.gallery-open{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in;z-index:1;text-align:left}
.gallery-open img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.gallery-slide:hover .gallery-open img{transform:scale(1.035)}
.gallery-slide>img{display:none}
.gallery-zoom{position:absolute;right:22px;top:22px;width:43px;height:43px;border-radius:50%;display:grid;place-items:center;color:#fff;background:rgba(4,23,40,.66);border:1px solid rgba(255,255,255,.34);font-size:22px;font-weight:300;backdrop-filter:blur(12px);transition:.25s ease}
.gallery-slide:hover .gallery-zoom{background:#fff;color:#071f37;transform:scale(1.06)}
.gallery-slide figcaption{pointer-events:none;z-index:3}
.gallery-footer-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;margin-top:17px}
.gallery-text-btn{border:0;background:none;color:#0b2947;padding:9px 0;cursor:pointer;font:inherit;font-size:12px;font-weight:570;letter-spacing:.02em;display:inline-flex;align-items:center;gap:10px;transition:.2s ease}
.gallery-text-btn:first-child{justify-self:start}.gallery-text-btn:last-child{justify-self:end}
.gallery-text-btn:hover{color:#0b8e55;gap:14px}
.gallery-status{display:flex;align-items:center;gap:10px;color:#6e7b87;font-size:10px;letter-spacing:.12em;font-weight:610}
.gallery-status #gallery-current{color:#071f37;font-size:14px}
.gallery-status i{display:block;width:46px;height:1px;background:#cdd4d2}
.gallery-progress{margin-top:5px}

/* Large photo modal */
.gallery-modal{width:min(94vw,1480px);max-width:none;height:min(92vh,940px);max-height:none;padding:0;border:0;border-radius:30px;background:#041625;color:#fff;box-shadow:0 45px 120px rgba(0,0,0,.55);overflow:hidden}
.gallery-modal::backdrop{background:rgba(0,12,23,.86);backdrop-filter:blur(8px)}
.gallery-modal-shell{position:relative;width:100%;height:100%;display:grid;grid-template-columns:76px 1fr 76px;align-items:center;padding:22px}
.gallery-modal-figure{margin:0;height:100%;min-width:0;display:grid;grid-template-rows:minmax(0,1fr) auto;overflow:hidden;border-radius:22px;background:#061d32}
.gallery-modal-figure img{width:100%;height:100%;min-height:0;object-fit:contain;background:#020c15}
.gallery-modal-figure figcaption{padding:18px 22px 20px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;background:linear-gradient(90deg,#071f37,#0b3156)}
.gallery-modal-figure figcaption span{font-size:10px;letter-spacing:.14em;color:#8bdcb5;font-weight:620}
.gallery-modal-figure figcaption strong{font-size:15px;font-weight:500;line-height:1.3}
.gallery-modal-figure figcaption small{font-size:9px;color:rgba(255,255,255,.56);text-align:right}
.gallery-modal-close{position:absolute;right:18px;top:16px;z-index:5;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:rgba(2,15,26,.68);color:#fff;font-size:28px;line-height:1;cursor:pointer;backdrop-filter:blur(12px)}
.gallery-modal-nav{width:52px;height:52px;border-radius:50%;justify-self:center;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.07);color:#fff;font-size:22px;cursor:pointer;transition:.2s ease}
.gallery-modal-nav:hover{background:#fff;color:#071f37;transform:scale(1.05)}

/* Give vertical reveals slightly more premium easing. */
body.has-motion [data-section-reveal]>.container{transform:translateY(58px);filter:blur(3px);transition:opacity .9s ease,transform 1s cubic-bezier(.18,.72,.18,1),filter .85s ease}
body.has-motion [data-section-reveal].is-section-visible>.container{filter:none}

@media(max-width:980px){
  .brand-logo-full{width:176px;height:66px}.site-header.is-scrolled .brand-logo-full{width:162px;height:58px}
  .editions-timeline{min-height:0;display:grid;gap:36px;padding-left:76px;margin-top:55px}
  .editions-timeline .timeline-line{left:24px;transform:none}
  .editions-timeline .edition-card,.editions-timeline .edition-left,.editions-timeline .edition-right{width:100%;margin:0}
  .editions-timeline .edition-dot,.editions-timeline .edition-left .edition-dot,.editions-timeline .edition-right .edition-dot{left:-77px;right:auto;top:30px}
  .editions-timeline .edition-left .edition-content::after,.editions-timeline .edition-right .edition-content::after{left:-10px;right:auto;transform:rotate(225deg)}
  .timeline-pulse{display:none}
  .gallery-slide{height:460px}
}

@media(max-width:700px){
  .brand-logo-full{width:146px;height:56px}.site-header.is-scrolled .brand-logo-full{width:136px;height:50px}.footer-brand .brand-logo-full{width:180px;height:70px}
  .experience-title span::after{bottom:-9px;width:60%}
  .edition-topline{align-items:flex-start}.editions-timeline .edition-status{max-width:155px}
  .gallery-controls-top{width:100%;justify-content:flex-start}.gallery-btn{min-width:118px;height:44px;padding:0 14px}
  .gallery-slide{height:390px}
  .gallery-modal{width:100vw;height:100vh;border-radius:0}
  .gallery-modal-shell{grid-template-columns:54px 1fr 54px;padding:10px}
  .gallery-modal-figure{border-radius:16px}
  .gallery-modal-figure figcaption{grid-template-columns:1fr;gap:6px;padding:14px 16px}.gallery-modal-figure figcaption small{text-align:left}
  .gallery-modal-nav{width:42px;height:42px}
}

@media(max-width:520px){
  .brand-logo-full{width:126px;height:48px}.site-header.is-scrolled .brand-logo-full{width:118px;height:44px}
  .editions-timeline{padding-left:58px}.editions-timeline .timeline-line{left:18px}.editions-timeline .edition-dot,.editions-timeline .edition-left .edition-dot,.editions-timeline .edition-right .edition-dot{left:-60px;width:44px;height:44px}.editions-timeline .edition-content{padding:25px 22px}.editions-timeline .edition-left .edition-content::after,.editions-timeline .edition-right .edition-content::after{display:none}
  .gallery-head{display:block}.gallery-controls-top{margin-top:20px}.gallery-btn{flex:1;min-width:0}.gallery-footer-nav{gap:12px}.gallery-status i{width:28px}
  .gallery-modal-shell{grid-template-columns:1fr;padding:8px}.gallery-modal-prev,.gallery-modal-next{position:absolute;z-index:4;top:50%;transform:translateY(-50%)}.gallery-modal-prev{left:14px}.gallery-modal-next{right:14px}.gallery-modal-nav:hover{transform:translateY(-50%) scale(1.05)}
}
/* Final lockup sizing: preserve the original vertical SIMA logo composition. */
.brand-logo-full{width:112px;height:94px}
.site-header.is-scrolled .brand-logo-full{width:88px;height:72px}
.footer-brand .brand-logo-full{width:132px;height:122px}
.gallery-slide::after{pointer-events:none;z-index:2}
@media(max-width:980px){.brand-logo-full{width:98px;height:82px}.site-header.is-scrolled .brand-logo-full{width:82px;height:68px}}
@media(max-width:700px){.brand-logo-full{width:86px;height:72px}.site-header.is-scrolled .brand-logo-full{width:74px;height:62px}.footer-brand .brand-logo-full{width:114px;height:104px}}
@media(max-width:520px){.brand-logo-full{width:76px;height:64px}.site-header.is-scrolled .brand-logo-full{width:68px;height:56px}}

/* V3R2 — exact SIMA lockup, preserved as one artwork. */
.brand-logo-full{
  width:112px;
  height:auto;
  aspect-ratio:auto;
  object-fit:contain;
  object-position:left center;
  filter:drop-shadow(0 10px 24px rgba(0,0,0,.24));
}
.site-header.is-scrolled .brand-logo-full{width:90px;height:auto}
.footer-brand .brand-logo-full{width:138px;height:auto}
@media(max-width:980px){.brand-logo-full{width:100px;height:auto}.site-header.is-scrolled .brand-logo-full{width:84px;height:auto}}
@media(max-width:700px){.brand-logo-full{width:88px;height:auto}.site-header.is-scrolled .brand-logo-full{width:76px;height:auto}.footer-brand .brand-logo-full{width:118px;height:auto}}
@media(max-width:520px){.brand-logo-full{width:80px;height:auto}.site-header.is-scrolled .brand-logo-full{width:70px;height:auto}}

/* Make convergence routes unmistakable on the Dakar map. */
.destination-map-premium .africa-map-img{filter:drop-shadow(0 28px 35px rgba(0,10,20,.34)) saturate(1.08)}

/* =========================================================
   SIMA 2026 — V3R3 GALLERY CAROUSEL
   EriFaye-style card carousel + overlay navigation
   ========================================================= */
.gallery-section{
  background:
    radial-gradient(circle at 82% 8%,rgba(72,43,112,.20),transparent 28%),
    radial-gradient(circle at 8% 92%,rgba(0,139,84,.14),transparent 30%),
    linear-gradient(180deg,#060a12 0%,#080d17 100%);
  color:#fff;
  padding-top:clamp(82px,8vw,126px);
  padding-bottom:clamp(84px,8vw,126px);
}
.gallery-section .section-kicker{color:#79dcac}
.gallery-head{display:block;margin-bottom:28px}
.gallery-head h2{
  color:#fff;
  margin:10px 0 12px;
  font-size:clamp(38px,4.5vw,62px);
  line-height:1;
  font-weight:560;
  letter-spacing:-.045em;
}
.gallery-head p{color:rgba(235,242,248,.68);font-size:15px;max-width:720px}

.gallery-vod-viewport{
  position:relative;
  margin:0;
  padding:0;
  overflow:hidden;
  isolation:isolate;
}
.gallery-track{
  display:flex;
  gap:16px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-padding-inline:2px;
  scrollbar-width:none;
  scroll-behavior:smooth;
  padding:2px 0 14px;
  overscroll-behavior-inline:contain;
}
.gallery-track::-webkit-scrollbar{display:none}
.gallery-slide{
  position:relative;
  flex:0 0 clamp(282px,22.6vw,338px);
  height:430px;
  margin:0;
  display:flex;
  flex-direction:column;
  border-radius:20px;
  overflow:hidden;
  scroll-snap-align:start;
  background:#121a28;
  border:1px solid rgba(151,171,195,.24);
  box-shadow:0 14px 38px rgba(0,0,0,.22);
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.gallery-slide:hover{
  transform:translateY(-4px);
  border-color:rgba(255,255,255,.30);
  box-shadow:0 20px 48px rgba(0,0,0,.34);
}
.gallery-slide::after{display:none!important}
.gallery-open{
  position:relative;
  inset:auto;
  flex:0 0 242px;
  width:100%;
  height:242px;
  padding:0;
  border:0;
  background:#08111d;
  cursor:zoom-in;
  overflow:hidden;
  z-index:1;
  text-align:left;
}
.gallery-open::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(1,8,16,0) 56%,rgba(5,13,23,.22) 100%);
  pointer-events:none;
}
.gallery-open img,
.gallery-slide .gallery-open img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .65s cubic-bezier(.2,.72,.2,1),filter .3s ease;
}
.gallery-slide:hover .gallery-open img{transform:scale(1.045);filter:saturate(1.05)}
.gallery-zoom{
  position:absolute;
  right:14px;
  top:14px;
  width:40px;
  height:40px;
  z-index:3;
  border-radius:12px;
  display:grid;
  place-items:center;
  color:#fff;
  background:rgba(3,10,18,.82);
  border:1px solid rgba(255,255,255,.22);
  font-size:20px;
  font-weight:300;
  line-height:1;
  backdrop-filter:blur(10px);
  transition:.22s ease;
}
.gallery-slide:hover .gallery-zoom{background:#fff;color:#071f37;transform:scale(1.04)}
.gallery-slide figcaption{
  position:relative;
  inset:auto;
  z-index:2;
  flex:1;
  min-height:0;
  padding:18px 18px 20px;
  color:#fff;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:7px;
  background:linear-gradient(180deg,#121a28 0%,#111825 100%);
  pointer-events:none;
}
.gallery-slide figcaption>span{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 10px;
  border-radius:999px;
  color:#93e6bc;
  background:rgba(27,145,91,.14);
  border:1px solid rgba(76,202,139,.18);
  text-transform:uppercase;
  letter-spacing:.09em;
  font-size:8.5px;
  font-weight:650;
}
.gallery-slide figcaption strong{
  max-width:none;
  margin-top:2px;
  font-size:clamp(17px,1.25vw,20px);
  line-height:1.18;
  font-weight:520;
  letter-spacing:-.02em;
}
.gallery-slide figcaption small{
  margin-top:auto;
  color:rgba(255,255,255,.50);
  font-size:9.5px;
  font-weight:400;
}

/* VOD-style floating previous / next controls */
.gallery-edge-nav{
  position:absolute;
  z-index:12;
  top:50%;
  transform:translateY(-50%);
  width:58px;
  height:78px;
  display:grid;
  place-items:center;
  padding:0;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(5,10,17,.90);
  color:#fff;
  box-shadow:0 12px 30px rgba(0,0,0,.42);
  backdrop-filter:blur(14px);
  cursor:pointer;
  transition:background .22s ease,transform .22s ease,border-color .22s ease;
}
.gallery-edge-prev{left:10px}
.gallery-edge-next{right:10px}
.gallery-edge-nav svg{
  width:28px;
  height:28px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.gallery-edge-nav:hover{
  background:rgba(16,25,39,.98);
  border-color:rgba(255,255,255,.34);
  transform:translateY(-50%) scale(1.04);
}
.gallery-edge-nav:focus-visible{outline:2px solid #ffbc22;outline-offset:3px}

.gallery-footer-compact{
  display:flex;
  justify-content:center;
  margin-top:16px;
}
.gallery-footer-compact .gallery-status{color:rgba(255,255,255,.48)}
.gallery-footer-compact .gallery-status #gallery-current{color:#fff}
.gallery-footer-compact .gallery-status i{background:rgba(255,255,255,.20)}
.gallery-progress{margin-top:8px;height:2px;background:rgba(255,255,255,.10)}
.gallery-progress span{background:linear-gradient(90deg,#0b9e5d,#f3b625,#ef7411)}

/* Full-screen gallery modal: same dark glass arrow language as carousel */
.gallery-modal{
  width:min(96vw,1540px);
  max-width:none;
  height:min(94vh,980px);
  max-height:none;
  padding:0;
  border:0;
  border-radius:24px;
  background:#02070d;
  color:#fff;
  box-shadow:0 46px 130px rgba(0,0,0,.64);
  overflow:hidden;
}
.gallery-modal::backdrop{background:rgba(0,5,10,.90);backdrop-filter:blur(9px)}
.gallery-modal-shell{
  position:relative;
  width:100%;
  height:100%;
  display:block;
  padding:18px 78px 18px;
}
.gallery-modal-figure{
  margin:0;
  width:100%;
  height:100%;
  min-width:0;
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  overflow:hidden;
  border-radius:18px;
  background:#06111e;
  border:1px solid rgba(255,255,255,.10);
}
.gallery-modal-figure img{
  width:100%;
  height:100%;
  min-height:0;
  object-fit:contain;
  background:#01050a;
}
.gallery-modal-figure figcaption{
  padding:17px 22px 18px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:16px;
  background:linear-gradient(90deg,#071522,#0b2239);
  border-top:1px solid rgba(255,255,255,.08);
}
.gallery-modal-figure figcaption span{font-size:10px;letter-spacing:.14em;color:#82dfb0;font-weight:620}
.gallery-modal-figure figcaption strong{font-size:15px;font-weight:500;line-height:1.3}
.gallery-modal-figure figcaption small{font-size:9px;color:rgba(255,255,255,.52);text-align:right}
.gallery-modal-close{
  position:absolute;
  right:18px;
  top:16px;
  z-index:20;
  width:46px;
  height:46px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.20);
  background:rgba(3,10,17,.88);
  color:#fff;
  font-size:28px;
  line-height:1;
  cursor:pointer;
  backdrop-filter:blur(12px);
  box-shadow:0 10px 24px rgba(0,0,0,.28);
}
.gallery-modal-nav{
  position:absolute;
  z-index:15;
  top:50%;
  transform:translateY(-50%);
  width:58px;
  height:80px;
  display:grid;
  place-items:center;
  padding:0;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(5,10,17,.90);
  color:#fff;
  box-shadow:0 14px 34px rgba(0,0,0,.46);
  backdrop-filter:blur(14px);
  cursor:pointer;
  transition:background .22s ease,transform .22s ease,border-color .22s ease;
}
.gallery-modal-prev{left:10px}
.gallery-modal-next{right:10px}
.gallery-modal-nav svg{
  width:29px;
  height:29px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.gallery-modal-nav:hover{
  background:rgba(18,28,43,.99);
  border-color:rgba(255,255,255,.36);
  transform:translateY(-50%) scale(1.04);
}
.gallery-modal-nav:focus-visible,.gallery-modal-close:focus-visible{outline:2px solid #ffbc22;outline-offset:3px}

@media(max-width:1180px){
  .gallery-slide{flex-basis:clamp(280px,29vw,326px);height:415px}
  .gallery-open{flex-basis:230px;height:230px}
}
@media(max-width:860px){
  .gallery-slide{flex-basis:min(58vw,320px);height:405px}
  .gallery-open{flex-basis:222px;height:222px}
  .gallery-edge-nav{width:52px;height:72px;border-radius:15px}
  .gallery-modal-shell{padding:12px 66px 12px}
  .gallery-modal-nav{width:52px;height:72px}
  .gallery-modal-figure figcaption{grid-template-columns:1fr;gap:5px;padding:14px 16px}
  .gallery-modal-figure figcaption small{text-align:left}
}
@media(max-width:600px){
  .gallery-section{padding-top:76px;padding-bottom:82px}
  .gallery-head{margin-bottom:22px}
  .gallery-head h2{font-size:clamp(34px,10vw,48px)}
  .gallery-track{gap:12px;padding-bottom:12px}
  .gallery-slide{flex-basis:82vw;height:400px;border-radius:18px}
  .gallery-open{flex-basis:220px;height:220px}
  .gallery-slide figcaption{padding:17px 16px 18px}
  .gallery-edge-nav{width:48px;height:66px;border-radius:14px}
  .gallery-edge-prev{left:7px}.gallery-edge-next{right:7px}
  .gallery-edge-nav svg{width:24px;height:24px}
  .gallery-modal{width:100vw;height:100vh;border-radius:0}
  .gallery-modal-shell{padding:8px}
  .gallery-modal-figure{border-radius:12px}
  .gallery-modal-nav{width:48px;height:66px;border-radius:14px}
  .gallery-modal-prev{left:12px}.gallery-modal-next{right:12px}
  .gallery-modal-close{right:12px;top:12px;width:42px;height:42px;border-radius:12px}
  .gallery-modal-figure figcaption{padding:13px 14px 15px}
}
/* SIMA_V3R7_CANONICAL_MOBILE_TIMELINE_BEGIN */

/*
 * IMPORTANT
 * =========
 * 2025 et 2026 ont le même composant HTML :
 *
 * article.edition-card
 *   .edition-dot
 *   .edition-content
 *
 * La géométrie mobile est donc portée UNIQUEMENT par les classes
 * structurelles communes. Aucune détection d'année, aucun calcul JS,
 * aucune classe runtime sima-v3rX n'est nécessaire.
 */

@media (max-width: 768px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden !important;
  }

  #editions {
    width: 100%;
    max-width: 100%;
    overflow-x: clip !important;
  }

  @supports not (overflow: clip) {
    #editions {
      overflow-x: hidden !important;
    }
  }

  #editions .container {
    min-width: 0;
    max-width: 100%;
  }

  #editions .editions-timeline {
    position: relative !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 36px !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    box-sizing: border-box !important;
    padding-left: 58px !important;
    margin-top: 55px !important;

    overflow: visible !important;
  }

  #editions .editions-timeline > article.edition-card,
  #editions .editions-timeline > article.edition-card.edition-left,
  #editions .editions-timeline > article.edition-card.edition-right {
    position: relative !important;
    display: block !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    left: auto !important;
    right: auto !important;
    transform: none !important;

    box-sizing: border-box !important;
  }

  #editions .editions-timeline > article.edition-card > .edition-content {
    position: relative !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;

    left: auto !important;
    right: auto !important;
    transform: none !important;

    box-sizing: border-box !important;
    padding: 25px 22px !important;
  }

  #editions .editions-timeline > .timeline-line {
    left: 18px !important;
    transform: none !important;
  }

  #editions .editions-timeline > article.edition-card > .edition-dot,
  #editions .editions-timeline > article.edition-card.edition-left > .edition-dot,
  #editions .editions-timeline > article.edition-card.edition-right > .edition-dot {
    left: -60px !important;
    right: auto !important;
    top: 30px !important;

    width: 44px !important;
    height: 44px !important;
  }

  #editions .edition-card .edition-topline {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    display: grid !important;
    grid-template-columns: max-content minmax(0, 1fr) !important;
    align-items: start !important;

    column-gap: 10px !important;
    row-gap: 4px !important;
  }

  #editions .edition-card .edition-year {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  #editions .edition-card .edition-status {
    min-width: 0 !important;
    max-width: 100% !important;

    white-space: normal !important;
    overflow-wrap: anywhere !important;

    text-align: right !important;
    justify-self: end !important;
    line-height: 1.25 !important;
  }

  #editions .edition-card h3,
  #editions .edition-card p,
  #editions .edition-card a,
  #editions .edition-card span,
  #editions .edition-card strong {
    min-width: 0;
    max-width: 100%;
  }

  #editions .edition-card h3,
  #editions .edition-card p {
    overflow-wrap: break-word;
  }

  #editions .edition-facts {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  #editions .edition-facts > span {
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  #editions .editions-timeline .edition-left .edition-content::after,
  #editions .editions-timeline .edition-right .edition-content::after {
    display: none !important;
  }
}

@media (max-width: 390px) {
  #editions .edition-card .edition-status {
    font-size: 0.68rem !important;
    letter-spacing: 0.12em !important;
  }
}

/* SIMA_V3R7_CANONICAL_MOBILE_TIMELINE_END */

/* SIMA_V3R8_HOME_DESKTOP_COMPACT_BEGIN */

/*
 * Ajustement exclusivement desktop.
 * Le mobile <= 1023 px ainsi que la timeline V3R7 ne sont pas concernés.
 */
@media (min-width: 1024px) {

  /*
   * Typographie du hero :
   * réduction légère, sans changer la hiérarchie visuelle.
   */
  .hero #hero-title,
  .hero .hero-copy h1 {
    font-size: clamp(66px, 5.35vw, 88px) !important;
    line-height: .92 !important;
    letter-spacing: -.055em !important;
  }

  .hero .hero-lead {
    font-size: 16px !important;
    line-height: 1.55 !important;
    max-width: 650px !important;
  }

  .hero .eyebrow {
    font-size: 10px !important;
  }


  /*
   * Navigation : réduction très légère seulement.
   */
  .site-header .site-nav a {
    font-size: 11px !important;
  }

  /*
   * Cartes Dates / Lieu :
   * moins hautes et padding intérieur réduit.
   */
  .hero .date-card,
  .hero .place-card,
  .date-card,
  .place-card {
    min-height: 108px !important;
    padding: 14px 16px !important;
    gap: 12px !important;
  }

  /*
   * Compte à rebours :
   * compactage vertical et horizontal léger.
   */
  .hero .countdown-card,
  .countdown-card {
    min-height: 92px !important;
    padding: 11px 14px !important;
    gap: 14px !important;
  }

  /*
   * Les libellés et valeurs pratiques restent parfaitement lisibles,
   * mais prennent moins de hauteur.
   */
  .hero-info-card .meta-label,
  .hero-info-card [class*="label"],
  .date-card small,
  .place-card small,
  .countdown-card small {
    font-size: 9px !important;
  }

  .date-card strong,
  .place-card strong {
    font-size: clamp(18px, 1.5vw, 22px) !important;
    line-height: 1.08 !important;
  }

  .date-card p,
  .place-card p,
  .date-card span,
  .place-card span {
    line-height: 1.28 !important;
  }

  /*
   * Valeurs du countdown : un cran en dessous du réglage actuel.
   */
  .countdown-card strong,
  .countdown-card [class*="value"] {
    line-height: 1 !important;
  }
}

/*
 * Optimisation spécifique aux écrans PC standards en hauteur
 * (1366×768, 1440×900, 1600×900, etc.).
 * On compacte uniquement les espaces verticaux du premier écran.
 */
@media (min-width: 1024px) and (max-height: 920px) {

  .hero .hero-content {
    padding-top: 12px !important;
    padding-bottom: 16px !important;
  }

  .hero .hero-copy {
    row-gap: 0 !important;
  }

  .hero .hero-copy h1 {
    margin-top: 20px !important;
    margin-bottom: 18px !important;
  }

  .hero .hero-lead {
    margin-bottom: 22px !important;
  }

  .hero .hero-actions {
    margin-top: 0 !important;
    margin-bottom: 22px !important;
  }

  /*
   * Le conteneur des informations pratiques est légèrement resserré
   * sans modifier sa structure 2 colonnes + countdown pleine largeur.
   */
  .hero [class*="info-grid"],
  .hero [class*="meta-grid"],
  .hero .hero-info-grid {
    gap: 12px !important;
  }

  .hero .date-card,
  .hero .place-card {
    min-height: 102px !important;
    padding: 12px 15px !important;
  }

  .hero .countdown-card {
    min-height: 86px !important;
    padding: 10px 13px !important;
  }
}

/* SIMA_V3R8_HOME_DESKTOP_COMPACT_END */
/* SIMA_V3R9_HERO_CTA_ORIGINAL_SIZE_BEGIN */
/*
 * Les CTA du hero utilisent volontairement leur style d'origine.
 * Aucune réduction typographique V3R8 ne leur est appliquée.
 */
/* SIMA_V3R9_HERO_CTA_ORIGINAL_SIZE_END */
/* SIMA_V3R11R1_APPROVED_MOCKUP_BEGIN */

/* ==========================================================
   LE SIMA — approved design
   ========================================================== */

#sima .manifesto-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px !important;
}

#sima .manifesto-card {
  --accent: #1272c4;

  position: relative;
  isolation: isolate;

  display: grid !important;
  grid-template-rows: 43% 57% !important;

  width: 100%;
  min-width: 0;
  aspect-ratio: 1 / 1;

  padding: 0 !important;
  margin: 0 !important;

  overflow: hidden;
  border-radius: 22px;

  background: #fff !important;
  border: 1px solid rgba(7,31,55,.08) !important;

  box-shadow:
    0 14px 34px rgba(7,31,55,.08),
    0 1px 2px rgba(7,31,55,.04);

  transition:
    transform .25s ease,
    box-shadow .25s ease;
}

#sima .manifesto-card-blue   { --accent: #0a6fc4; }
#sima .manifesto-card-green  { --accent: #169a4c; }
#sima .manifesto-card-orange { --accent: #f26400; }
#sima .manifesto-card-purple { --accent: #7a3197; }

#sima .manifesto-card:hover {
  transform: translateY(-4px);
  box-shadow:
    0 22px 50px rgba(7,31,55,.12),
    0 1px 2px rgba(7,31,55,.05);
}

#sima .manifesto-card-media {
  position: relative;
  overflow: hidden;
  min-height: 0;
  background: #dce2e8;
}

#sima .manifesto-card-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;

  transition: transform .45s cubic-bezier(.2,.72,.2,1);
}

#sima .manifesto-card:hover .manifesto-card-media img {
  transform: scale(1.035);
}

#sima .manifesto-card-body {
  position: relative;

  display: flex;
  flex-direction: column;
  align-items: flex-start;

  min-width: 0;

  padding: 31px 22px 20px !important;

  background: #fff !important;
  color: #243344 !important;
}

#sima .manifesto-icon {
  position: absolute;
  left: 20px;
  top: -25px;

  width: 50px;
  height: 50px;

  display: grid;
  place-items: center;

  border-radius: 50%;
  border: 4px solid #fff;

  background: var(--accent) !important;
  color: #fff !important;

  box-shadow: 0 8px 20px rgba(7,31,55,.18);

  z-index: 4;
}

#sima .manifesto-icon svg {
  width: 25px;
  height: 25px;

  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#sima .manifesto-card .number {
  display: block !important;

  width: auto !important;
  height: auto !important;

  margin: 0 0 8px !important;
  padding: 0 !important;

  background: transparent !important;
  border: 0 !important;

  color: var(--accent) !important;

  font-size: 10px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  letter-spacing: .10em !important;
}

#sima .manifesto-card h3 {
  margin: 0 0 9px !important;

  color: var(--accent) !important;

  font-size: clamp(22px, 1.9vw, 29px) !important;
  line-height: 1 !important;
  letter-spacing: -.04em !important;
}

#sima .manifesto-card p {
  margin: 0 !important;
  padding-right: 46px;

  color: #344454 !important;

  font-size: 13px !important;
  line-height: 1.46 !important;
}

#sima .manifesto-card-body::after {
  content: "→";

  position: absolute;
  right: 18px;
  bottom: 18px;

  width: 38px;
  height: 38px;

  display: grid;
  place-items: center;

  border-radius: 50%;
  border: 1.5px solid var(--accent);

  color: var(--accent);
  background: #fff;

  font-size: 20px;
  line-height: 1;
  font-weight: 600;
}

@media (max-width: 767px) {
  #sima .manifesto-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  #sima .manifesto-card {
    border-radius: 17px;
  }

  #sima .manifesto-card-body {
    padding: 25px 10px 10px !important;
  }

  #sima .manifesto-icon {
    left: 9px;
    top: -19px;
    width: 38px;
    height: 38px;
    border-width: 3px;
  }

  #sima .manifesto-icon svg {
    width: 19px;
    height: 19px;
  }

  #sima .manifesto-card .number {
    margin-bottom: 5px !important;
    font-size: 8px !important;
  }

  #sima .manifesto-card h3 {
    margin-bottom: 5px !important;
    font-size: clamp(15px, 4.4vw, 19px) !important;
  }

  #sima .manifesto-card p {
    padding-right: 0;
    font-size: clamp(8.5px, 2.7vw, 11px) !important;
    line-height: 1.30 !important;
  }

  #sima .manifesto-card-body::after {
    right: 8px;
    bottom: 8px;
    width: 27px;
    height: 27px;
    font-size: 15px;
  }
}


/* ==========================================================
   DESTINATION SÉNÉGAL — approved dark card
   ========================================================== */

.destination-approved-shell {
  width: var(--container);
}

.destination-approved-card {
  display: grid;
  grid-template-columns: minmax(0, 1.16fr) minmax(320px, .84fr);

  overflow: hidden;

  min-height: 390px;

  border-radius: 26px;
  border: 1px solid rgba(87,176,255,.20);

  background:
    radial-gradient(circle at 24% 45%, rgba(9,101,189,.22), transparent 34%),
    linear-gradient(135deg,#071e3a 0%,#082944 58%,#071f37 100%);

  color: #fff;

  box-shadow:
    0 26px 70px rgba(7,31,55,.18),
    0 0 0 1px rgba(255,255,255,.04) inset;
}

.destination-approved-map {
  position: relative;
  isolation: isolate;

  min-width: 0;
  min-height: 390px;

  overflow: hidden;

  background: #061d3b;
}

.destination-approved-map img {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;

  filter: saturate(1.02) contrast(1.02);
}

.destination-flow-overlay {
  position: absolute;
  inset: 0;

  width: 100%;
  height: 100%;

  pointer-events: none;
}

.destination-flow-overlay .flow {
  fill: none;

  stroke-width: 5;
  stroke-linecap: round;

  stroke-dasharray: 20 34;
  stroke-dashoffset: 0;

  opacity: .56;

  filter: url(#sima-flow-glow);

  animation: simaFlowToDakar 2.8s linear infinite;
}

.destination-flow-overlay .flow-green  { stroke: #45f59a; }
.destination-flow-overlay .flow-orange { stroke: #ff9f1c; }
.destination-flow-overlay .flow-yellow { stroke: #ffe04c; }
.destination-flow-overlay .flow-blue   { stroke: #94c8ff; }

.destination-flow-overlay .flow-delay {
  animation-delay: -1.2s;
}

.destination-flow-overlay .dakar-core {
  fill: #ffd24b;
  filter: url(#sima-flow-glow);
}

.destination-flow-overlay .dakar-ring {
  fill: none;
  stroke: #ffd24b;
  stroke-width: 3;

  transform-origin: 280px 270px;

  animation: simaDakarRing 2.2s ease-out infinite;
}

@keyframes simaFlowToDakar {
  to { stroke-dashoffset: 108; }
}

@keyframes simaDakarRing {
  0%   { opacity: .95; transform: scale(.65); }
  75%  { opacity: 0; transform: scale(1.75); }
  100% { opacity: 0; transform: scale(1.9); }
}

.destination-approved-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;

  padding: 44px 42px;

  min-width: 0;
}

.destination-approved-copy .section-kicker {
  color: #54dba5;
}

.destination-approved-copy h2 {
  margin: 13px 0 13px;

  color: #fff;

  font-size: clamp(30px, 3vw, 45px);
  line-height: .98;
  letter-spacing: -.045em;
}

.destination-approved-copy > p {
  margin: 0;

  color: rgba(255,255,255,.82);

  font-size: 14px;
  line-height: 1.55;
}

.destination-approved-meta {
  display: grid;
  gap: 14px;

  margin-top: 25px;
}

.destination-approved-meta > div {
  display: grid;
  grid-template-columns: 26px minmax(0,1fr);
  align-items: start;
  gap: 10px;
}

.destination-meta-icon {
  color: #48d39a;
  font-size: 21px;
  line-height: 1;
}

.destination-approved-meta p {
  margin: 0;
}

.destination-approved-meta small {
  display: block;

  margin-bottom: 2px;

  color: #54dba5;

  font-size: 10px;
  font-weight: 750;
  letter-spacing: .05em;
}

.destination-approved-meta strong {
  display: block;

  color: #fff;

  font-size: 13px;
  line-height: 1.35;
}

@media (max-width: 820px) {
  .destination-approved-card {
    grid-template-columns: 1fr;
  }

  .destination-approved-map {
    min-height: 310px;
  }

  .destination-approved-copy {
    padding: 30px 24px 34px;
  }
}


/* ==========================================================
   PROGRAMME 2026 — approved light layout
   Keep original accordion HTML/JS.
   ========================================================== */

#programme.programme-section,
#programme {
  position: relative;

  background:
    radial-gradient(circle at 4% 12%, rgba(19,146,84,.055), transparent 24%),
    #f7f8f4 !important;

  color: #071f37 !important;
}

#programme::before {
  opacity: .025 !important;
}

#programme .programme-copy,
#programme .programme-intro,
#programme .programme-left {
  color: #071f37 !important;
}

#programme h2 {
  color: #071f37 !important;
}

#programme p {
  color: #697888;
}

#programme .programme-date-card,
#programme [class*="programme-date"] {
  background: #fff !important;
  border: 1px solid rgba(7,31,55,.08) !important;

  box-shadow: 0 12px 30px rgba(7,31,55,.05);
}

#programme .agenda {
  display: grid;
  gap: 10px;
}

#programme .agenda-row {
  width: 100%;

  border: 1px solid rgba(7,31,55,.08) !important;
  border-radius: 17px !important;

  background: #fff !important;
  color: #071f37 !important;

  box-shadow: 0 8px 22px rgba(7,31,55,.045);

  overflow: hidden;
}

#programme .agenda-row[aria-expanded="true"] {
  border-color: rgba(31,157,93,.18) !important;
  background: #f6fbf7 !important;
}

#programme .agenda-day {
  background: #f4f7f4 !important;
  border: 1px solid rgba(7,31,55,.06) !important;

  color: #071f37 !important;
}

#programme .agenda-day b {
  color: #071f37 !important;
}

#programme .agenda-day small,
#programme .agenda-title em {
  color: #18945b !important;
}

#programme .agenda-title strong {
  color: #071f37 !important;
}

#programme .agenda-title small {
  color: #748290 !important;
}

#programme .agenda-content {
  margin-top: -10px;

  padding: 20px 24px 22px !important;

  border: 1px solid rgba(31,157,93,.10) !important;
  border-top: 0 !important;
  border-radius: 0 0 17px 17px !important;

  background:
    linear-gradient(180deg,#f2faf4 0%,#eaf6ed 100%) !important;

  color: #526474 !important;
}

#programme .agenda-content p {
  color: #526474 !important;
}

#programme .agenda-plus {
  display: grid !important;
  place-items: center !important;

  padding: 0 !important;

  border-color: rgba(22,148,87,.38) !important;

  color: #168f58 !important;

  text-align: center !important;
  font-size: 0 !important;
  line-height: 1 !important;

  overflow: hidden;
}

#programme .agenda-plus::before {
  content: "+";

  width: 1em;
  height: 1em;

  display: block;

  font-family: Arial, Helvetica, sans-serif;
  font-size: 20px;
  font-weight: 400;
  line-height: 1;

  text-align: center;

  transform: translateY(-1px);
}

#programme .agenda-row[aria-expanded="true"] .agenda-plus::before {
  content: "−";
  font-size: 20px;
  transform: translateY(-1px);
}


/* ==========================================================
   Preserve V3R10 mobile hero overlap fix.
   ========================================================== */

@media (max-width: 767px) {
  .hero .hero-info-grid,
  .hero [class*="info-grid"],
  .hero [class*="meta-grid"] {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .hero .date-card,
  .hero .place-card {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;

    padding: 12px 10px !important;
    gap: 9px !important;

    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  .hero .date-card > *,
  .hero .place-card > *,
  .hero .date-card > div,
  .hero .place-card > div {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .hero .date-card strong,
  .hero .place-card strong {
    display: block !important;

    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;

    white-space: normal !important;

    font-size: clamp(15px, 4.6vw, 19px) !important;
    line-height: 1.08 !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .destination-flow-overlay .flow,
  .destination-flow-overlay .dakar-ring {
    animation: none !important;
  }
}

/* SIMA_V3R11R1_APPROVED_MOCKUP_END */

/* SIMA_V3R12_MERGE_AND_CONTACT_BEGIN */

#sima .manifesto-card .number {
  display:none !important;
}

#sima .manifesto-card h3 {
  font-size:clamp(24px,2vw,31px) !important;
}

#sima .manifesto-card p {
  font-size:14px !important;
  line-height:1.5 !important;
}

#sima .manifesto-icon svg {
  width:26px !important;
  height:26px !important;
}

/* Destination merged into Le SIMA */
#sima .sima-destination-merged {
  margin-top:30px;
}

#sima .destination-approved-card-v3r12 {
  display:grid;
  grid-template-columns:minmax(0,1.16fr) minmax(320px,.84fr);
  overflow:hidden;
  min-height:390px;
  border-radius:26px;
  border:1px solid rgba(87,176,255,.20);
  background:
    radial-gradient(circle at 24% 45%,rgba(9,101,189,.22),transparent 34%),
    linear-gradient(135deg,#071e3a 0%,#082944 58%,#071f37 100%);
  color:#fff;
  box-shadow:0 26px 70px rgba(7,31,55,.18),0 0 0 1px rgba(255,255,255,.04) inset;
}

#sima .destination-vector-wrap {
  min-width:0;
  min-height:390px;
  overflow:hidden;
  background:#041a36;
}

#sima .destination-vector-map {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

#sima .destination-approved-copy {
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:44px 42px;
  min-width:0;
}

#sima .destination-approved-copy .section-kicker { color:#54dba5; }

#sima .destination-approved-copy h2 {
  margin:13px 0;
  color:#fff;
  font-size:clamp(30px,3vw,45px);
  line-height:.98;
  letter-spacing:-.045em;
}

#sima .destination-approved-copy > p {
  margin:0;
  color:rgba(255,255,255,.82);
  font-size:14px;
  line-height:1.55;
}

#sima .destination-approved-meta {
  display:grid;
  gap:14px;
  margin-top:25px;
}

#sima .destination-approved-meta > div {
  display:grid;
  grid-template-columns:26px minmax(0,1fr);
  align-items:start;
  gap:10px;
}

#sima .destination-meta-icon {
  color:#48d39a;
  font-size:21px;
}

#sima .destination-approved-meta p { margin:0; }

#sima .destination-approved-meta small {
  display:block;
  margin-bottom:2px;
  color:#54dba5;
  font-size:10px;
  font-weight:750;
}

#sima .destination-approved-meta strong {
  display:block;
  color:#fff;
  font-size:13px;
  line-height:1.35;
}

/* Contact remains a standalone section */
.contact-card-v3r12 {
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(390px,.92fr) !important;
  gap:54px !important;
  align-items:center !important;
  padding:54px 58px !important;
}

.contact-actions-v3r12 {
  display:grid;
  gap:10px;
}

.contact-action-v3r12 {
  --icon-bg:#0b6fbe;
  display:grid !important;
  grid-template-columns:68px minmax(0,1fr) 42px !important;
  align-items:stretch !important;
  min-height:62px;
  padding:0 !important;
  margin:0 !important;
  overflow:hidden;
  border-radius:12px;
  border:1px solid rgba(7,31,55,.10);
  background:#fff !important;
  color:#101b28 !important;
  box-shadow:0 8px 22px rgba(7,31,55,.08);
  text-decoration:none !important;
}

.contact-email-v3r12 { --icon-bg:#0b6fbe; }
.contact-phone-v3r12 { --icon-bg:#f5b51b; }
.contact-whatsapp-v3r12 { --icon-bg:#169b4b; }

.contact-icon-v3r12 {
  width:68px !important;
  height:100% !important;
  min-height:62px !important;
  margin:0 !important;
  padding:0 !important;
  display:grid !important;
  place-items:center !important;
  border:0 !important;
  border-radius:0 !important;
  background:var(--icon-bg) !important;
  color:#fff !important;
}

.contact-icon-v3r12 svg {
  width:27px;
  height:27px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.contact-label-v3r12 {
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  padding:0 18px;
  color:#101b28 !important;
  font-size:15px;
  line-height:1.25;
}

.contact-label-v3r12 strong {
  color:#101b28 !important;
  font-weight:760;
}

.contact-arrow-v3r12 {
  display:grid;
  place-items:center;
  color:#0b6fbe;
  font-size:28px;
  font-weight:300;
  line-height:1;
}

.contact-action-v3r12:hover {
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(7,31,55,.12);
}

@media (max-width:820px) {
  #sima .destination-approved-card-v3r12 {
    grid-template-columns:1fr;
  }

  #sima .destination-vector-wrap {
    min-height:320px;
  }

  #sima .destination-approved-copy {
    padding:30px 24px 34px;
  }

  .contact-card-v3r12 {
    grid-template-columns:1fr !important;
    gap:28px !important;
    padding:34px 24px !important;
  }
}

@media (max-width:767px) {
  #sima .manifesto-card h3 {
    font-size:clamp(16px,4.8vw,20px) !important;
  }

  #sima .manifesto-card p {
    font-size:clamp(9.5px,2.95vw,11.5px) !important;
  }

  .contact-action-v3r12 {
    grid-template-columns:58px minmax(0,1fr) 34px !important;
    min-height:58px;
  }

  .contact-icon-v3r12 {
    width:58px !important;
    min-height:58px !important;
  }

  .contact-label-v3r12 {
    padding:0 12px;
    font-size:13px;
  }
}

/* SIMA_V3R12_MERGE_AND_CONTACT_END */

/* SIMA_V3R13_MAP_RATIO_CONTACT_BORDER_BEGIN */

/* ==========================================================
   Destination fusionnée dans LE SIMA
   - même alignement horizontal que le container Le SIMA
   - ratio naturel de la carte conservé
   - pas d'aplatissement
   ========================================================== */

#sima .sima-destination-merged {
  width: var(--container) !important;
  max-width: var(--container) !important;

  margin: 34px auto 0 !important;
  padding: 0 !important;
}

#sima .destination-approved-card-v3r12 {
  align-items: center !important;
  min-height: 0 !important;
}

#sima .destination-vector-wrap {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;

  aspect-ratio: 8 / 5 !important;

  align-self: center !important;

  overflow: hidden !important;
  background: #041a36 !important;
}

#sima .destination-vector-map {
  display: block !important;

  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;

  aspect-ratio: 8 / 5 !important;

  object-fit: contain !important;
  object-position: center center !important;

  transform: none !important;
}

/*
 * Desktop :
 * l'image reste à sa proportion naturelle, à gauche,
 * sans être forcée à prendre la hauteur de la colonne de texte.
 */
@media (min-width: 821px) {
  #sima .destination-approved-card-v3r12 {
    grid-template-columns:
      minmax(0, 1.22fr)
      minmax(320px, .78fr) !important;
  }

  #sima .destination-approved-copy {
    align-self: center !important;
  }
}


/* ==========================================================
   CONTACT — contours plus nets
   ========================================================== */

.contact-action-v3r12 {
  border: 2px solid #d4dce4 !important;

  box-shadow:
    0 5px 14px rgba(7,31,55,.055) !important;

  transition:
    border-color .22s ease,
    box-shadow .22s ease,
    transform .22s ease !important;
}

.contact-email-v3r12:hover {
  border-color: #0b6fbe !important;
}

.contact-phone-v3r12:hover {
  border-color: #dba315 !important;
}

.contact-whatsapp-v3r12:hover {
  border-color: #168b45 !important;
}

.contact-action-v3r12:focus-visible {
  outline: 3px solid rgba(11,111,190,.22) !important;
  outline-offset: 2px !important;
}

/*
 * Les fonds bleu / jaune / vert occupent tout l'espace
 * de leur colonne d'icône, sans marge.
 */
.contact-icon-v3r12 {
  align-self: stretch !important;

  height: auto !important;
  min-height: 100% !important;

  margin: 0 !important;
  padding: 0 !important;

  border-radius: 0 !important;
}

/* SIMA_V3R13_MAP_RATIO_CONTACT_BORDER_END */

/* SIMA_V3R14_TRUE_VERTICAL_MAP_BEGIN */

/*
 * Desktop :
 * Destination est maintenant une carte verticale alignée à gauche
 * sous la colonne LE SIMA, au lieu d'un bandeau horizontal pleine largeur.
 */

#sima .sima-destination-merged {
  max-width: 600px !important;
  width: min(600px, 42vw) !important;

  margin-top: 34px !important;
  margin-right: auto !important;
  margin-left: max(24px, calc((100% - var(--container)) / 2)) !important;

  padding: 0 !important;
}

#sima .destination-approved-card-v3r12 {
  display: grid !important;
  grid-template-columns: 1fr !important;

  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;

  align-items: start !important;
  overflow: hidden !important;
}

#sima .destination-vector-wrap {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;

  aspect-ratio: auto !important;

  overflow: hidden !important;
  background: #041a36 !important;
}

#sima .destination-vector-map {
  display: block !important;

  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;

  aspect-ratio: auto !important;

  object-fit: contain !important;
  object-position: center top !important;

  transform: none !important;
}

#sima .destination-approved-copy {
  width: 100% !important;
  padding: 30px 28px 34px !important;
  align-self: auto !important;
}

#sima .destination-approved-copy h2 {
  font-size: clamp(29px, 2.6vw, 39px) !important;
}

@media (max-width: 900px) {
  #sima .sima-destination-merged {
    width: var(--container) !important;
    max-width: var(--container) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  #sima .destination-approved-card-v3r12 {
    grid-template-columns: 1fr !important;
  }
}

/* SIMA_V3R14_TRUE_VERTICAL_MAP_END */

/* SIMA_V3R16_DESTINATION_AND_MOBILE_HERO_BEGIN */

/* ==========================================================
   A. DESTINATION — PC : carte verticale à gauche, contenu à droite
   ========================================================== */

@media (min-width: 901px) {

  #sima .sima-destination-merged {
    width: var(--container) !important;
    max-width: var(--container) !important;

    margin: 34px auto 0 !important;
    padding: 0 !important;
  }

  #sima .destination-approved-card-v3r12 {
    display: grid !important;

    grid-template-columns:
      minmax(420px, 600px)
      minmax(0, 1fr) !important;

    column-gap: 0 !important;

    align-items: stretch !important;

    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;

    overflow: hidden !important;
  }

  #sima .destination-vector-wrap {
    width: 100% !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;

    aspect-ratio: auto !important;

    align-self: start !important;

    overflow: hidden !important;
  }

  #sima .destination-vector-map {
    display: block !important;

    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;

    aspect-ratio: auto !important;

    object-fit: contain !important;
    object-position: center top !important;

    transform: none !important;
  }

  #sima .destination-approved-copy {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;

    width: 100% !important;
    min-width: 0 !important;

    padding: 38px 40px !important;

    align-self: stretch !important;
  }

  #sima .destination-approved-copy h2 {
    font-size: clamp(31px, 2.7vw, 42px) !important;
  }
}


/* ==========================================================
   B. HERO MOBILE — réparation canonique Date / Lieu / Countdown
   ========================================================== */

@media (max-width: 767px) {

  /*
   * Le container des 3 cartes utilise toujours 2 colonnes :
   * Date | Lieu
   * Countdown (span 2 colonnes)
   *
   * Les trois sélecteurs couvrent les noms historiques utilisés
   * dans le projet sans affecter les autres zones du hero.
   */
  .hero .hero-info-grid,
  .hero .hero-meta-grid,
  .hero .hero-info {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-auto-flow: row !important;

    gap: 10px !important;

    box-sizing: border-box !important;
  }

  /*
   * Date et Lieu occupent chacun UNE colonne.
   */
  .hero .date-card,
  .hero .place-card {
    grid-column: auto !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    min-height: 124px !important;

    margin: 0 !important;
    padding: 12px 10px !important;

    gap: 8px !important;

    box-sizing: border-box !important;

    overflow: hidden !important;
  }

  /*
   * Le Compte à rebours doit TOUJOURS prendre toute la ligne.
   * C'est la régression visible sur la capture V3R14.
   */
  .hero .countdown-card {
    grid-column: 1 / -1 !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    min-height: 0 !important;

    margin: 0 !important;
    padding: 12px !important;

    box-sizing: border-box !important;

    overflow: hidden !important;

    /*
     * Haut : icône/texte.
     * Bas : grille des 4 valeurs.
     */
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) !important;

    column-gap: 10px !important;
    row-gap: 10px !important;

    align-items: center !important;
  }

  /*
   * Tous les enfants peuvent réellement rétrécir.
   */
  .hero .date-card *,
  .hero .place-card *,
  .hero .countdown-card * {
    min-width: 0 !important;
    box-sizing: border-box;
  }

  /*
   * Date : "Du 8 au 11" doit rester lisible.
   */
  .hero .date-card strong {
    display: block !important;

    max-width: 100% !important;

    font-size: clamp(15px, 4.7vw, 18px) !important;
    line-height: 1.08 !important;

    white-space: nowrap !important;
  }

  /*
   * Lieu : autorise 2 lignes mais empêche tout débordement.
   */
  .hero .place-card strong {
    display: block !important;

    max-width: 100% !important;

    font-size: clamp(15px, 4.7vw, 18px) !important;
    line-height: 1.08 !important;

    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  /*
   * Badge "04 jours d'échanges" reste dans sa carte.
   */
  .hero .date-card [class*="badge"] {
    display: inline-flex !important;

    width: auto !important;
    max-width: 100% !important;

    white-space: normal !important;
    overflow-wrap: anywhere !important;

    font-size: 8px !important;
    line-height: 1.15 !important;
  }

  /*
   * Le dernier enfant du countdown est le groupe des valeurs.
   * Il passe sous la partie titre et occupe toute la largeur.
   */
  .hero .countdown-card > :last-child {
    grid-column: 1 / -1 !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;

    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;

    gap: 6px !important;
  }

  /*
   * Fallback sur les noms possibles du groupe compteur.
   */
  .hero .countdown-card .countdown-grid,
  .hero .countdown-card [class*="countdown-grid"],
  .hero .countdown-card [class*="countdown-values"],
  .hero .countdown-card [class*="countdown-time"] {
    grid-column: 1 / -1 !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;

    gap: 6px !important;
  }

  /*
   * Chaque case Jours / Heures / Min / Sec :
   * largeur égale, aucune collision.
   */
  .hero .countdown-card > :last-child > *,
  .hero .countdown-card .countdown-grid > *,
  .hero .countdown-card [class*="countdown-grid"] > *,
  .hero .countdown-card [class*="countdown-values"] > *,
  .hero .countdown-card [class*="countdown-time"] > * {
    width: 100% !important;
    min-width: 0 !important;

    padding: 8px 3px !important;

    text-align: center !important;
  }

  .hero .countdown-card strong,
  .hero .countdown-card [class*="value"] {
    display: block !important;

    font-size: clamp(21px, 7vw, 28px) !important;
    line-height: 1 !important;

    white-space: nowrap !important;
  }

  .hero .countdown-card small {
    display: block !important;

    margin-top: 4px !important;

    font-size: 7px !important;
    line-height: 1.05 !important;

    white-space: nowrap !important;
  }

  /*
   * Protection finale contre la réapparition d'un scroll horizontal.
   */
  .hero,
  .hero .hero-content,
  .hero .hero-info-grid,
  .hero .hero-meta-grid,
  .hero .hero-info {
    max-width: 100% !important;
    overflow-x: clip !important;
  }

  @supports not (overflow: clip) {
    .hero,
    .hero .hero-content,
    .hero .hero-info-grid,
    .hero .hero-meta-grid,
    .hero .hero-info {
      overflow-x: hidden !important;
    }
  }
}


/* Très petit écran : garder Date/Lieu côte à côte mais encore plus compact. */
@media (max-width: 360px) {

  .hero .date-card,
  .hero .place-card {
    padding: 11px 8px !important;
    min-height: 120px !important;
  }

  .hero .date-card strong,
  .hero .place-card strong {
    font-size: 15px !important;
  }

  .hero .countdown-card {
    padding: 10px !important;
  }

  .hero .countdown-card > :last-child,
  .hero .countdown-card .countdown-grid,
  .hero .countdown-card [class*="countdown-grid"],
  .hero .countdown-card [class*="countdown-values"],
  .hero .countdown-card [class*="countdown-time"] {
    gap: 4px !important;
  }
}


/* Tablette : Destination reste empilée comme V3R14. */
@media (max-width: 900px) {
  #sima .sima-destination-merged {
    width: var(--container) !important;
    max-width: var(--container) !important;

    margin-left: auto !important;
    margin-right: auto !important;
  }

  #sima .destination-approved-card-v3r12 {
    grid-template-columns: 1fr !important;
  }
}

/* SIMA_V3R16_DESTINATION_AND_MOBILE_HERO_END */

/* SIMA_V3R17_MOBILE_HERO_STACK_BEGIN */

/* ==========================================================
   MOBILE HERO
   - spacing navbar -> eyebrow = 3px
   - Date / Lieu / Countdown = chacun sur sa propre ligne
   - typographie fluide
   - aucun débordement
   ========================================================== */

@media (max-width: 767px) {

  /*
   * 3 px de respiration sous la navbar.
   * On agit dans le flux du hero, sans transform.
   */
  .hero .hero-copy {
    padding-top: 3px !important;
  }

  .hero .eyebrow {
    margin-top: 0 !important;
  }

  /*
   * Container des informations pratiques :
   * une seule colonne sur mobile.
   */
  .hero .hero-info-grid,
  .hero .hero-meta-grid,
  .hero .hero-info {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-auto-flow: row !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    gap: 10px !important;

    margin-left: 0 !important;
    margin-right: 0 !important;

    box-sizing: border-box !important;
  }

  /*
   * Les trois cartes prennent chacune toute la ligne.
   */
  .hero .date-card,
  .hero .place-card,
  .hero .countdown-card {
    grid-column: 1 / -1 !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin: 0 !important;

    box-sizing: border-box !important;
  }

  /*
   * Date / Lieu :
   * icône fixe + contenu flexible.
   */
  .hero .date-card,
  .hero .place-card {
    min-height: 92px !important;

    padding: 12px 14px !important;
    gap: 12px !important;

    overflow: visible !important;
  }

  .hero .date-card > *,
  .hero .place-card > *,
  .hero .date-card > div,
  .hero .place-card > div {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  /*
   * Valeurs principales responsives selon la largeur réelle du device.
   */
  .hero .date-card strong,
  .hero .place-card strong {
    display: block !important;

    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;

    font-size: clamp(15px, 4.6vw, 20px) !important;
    line-height: 1.12 !important;

    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  .hero .date-card p,
  .hero .place-card p,
  .hero .date-card span,
  .hero .place-card span,
  .hero .date-card small,
  .hero .place-card small {
    max-width: 100% !important;

    font-size: clamp(9px, 2.7vw, 12px) !important;
    line-height: 1.3 !important;

    overflow-wrap: break-word !important;
  }

  /*
   * Le badge reste dans la carte Date.
   */
  .hero .date-card [class*="badge"] {
    display: inline-flex !important;

    width: fit-content !important;
    max-width: 100% !important;

    white-space: normal !important;
    overflow-wrap: anywhere !important;

    font-size: clamp(7px, 2.2vw, 10px) !important;
    line-height: 1.15 !important;
  }

  /*
   * Countdown : pleine largeur, contenu propre.
   */
  .hero .countdown-card {
    min-height: 0 !important;

    padding: 12px !important;

    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) !important;

    column-gap: 10px !important;
    row-gap: 10px !important;

    align-items: center !important;

    overflow: visible !important;
  }

  .hero .countdown-card > * {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  /*
   * Le groupe des 4 valeurs passe sur sa propre ligne
   * et utilise 4 colonnes égales.
   */
  .hero .countdown-card > :last-child,
  .hero .countdown-card .countdown-grid,
  .hero .countdown-card [class*="countdown-grid"],
  .hero .countdown-card [class*="countdown-values"],
  .hero .countdown-card [class*="countdown-time"] {
    grid-column: 1 / -1 !important;

    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    gap: clamp(4px, 1.8vw, 8px) !important;

    margin: 0 !important;
  }

  /*
   * Chaque case du countdown reste strictement dans sa colonne.
   */
  .hero .countdown-card > :last-child > *,
  .hero .countdown-card .countdown-grid > *,
  .hero .countdown-card [class*="countdown-grid"] > *,
  .hero .countdown-card [class*="countdown-values"] > *,
  .hero .countdown-card [class*="countdown-time"] > * {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    padding: clamp(7px, 2.1vw, 10px) 2px !important;

    text-align: center !important;

    overflow: hidden !important;
  }

  .hero .countdown-card strong,
  .hero .countdown-card [class*="value"] {
    display: block !important;

    max-width: 100% !important;

    font-size: clamp(20px, 7vw, 29px) !important;
    line-height: 1 !important;

    white-space: nowrap !important;
  }

  .hero .countdown-card small {
    display: block !important;

    max-width: 100% !important;

    margin-top: 4px !important;

    font-size: clamp(6px, 2vw, 8px) !important;
    line-height: 1.05 !important;

    white-space: nowrap !important;
  }

  /*
   * Garde-fou global :
   * aucun enfant du hero ne peut agrandir le viewport.
   */
  html,
  body,
  .hero,
  .hero .hero-content,
  .hero .hero-copy,
  .hero .hero-info-grid,
  .hero .hero-meta-grid,
  .hero .hero-info {
    max-width: 100% !important;
  }

  html,
  body {
    overflow-x: hidden !important;
  }
}


/* <= 390 px : compactage supplémentaire, sans casser la hiérarchie. */
@media (max-width: 390px) {

  .hero .date-card,
  .hero .place-card {
    min-height: 88px !important;

    padding: 11px 12px !important;
    gap: 10px !important;
  }

  .hero .date-card strong,
  .hero .place-card strong {
    font-size: clamp(15px, 4.8vw, 18px) !important;
  }

  .hero .countdown-card {
    padding: 10px !important;
  }

  .hero .countdown-card strong,
  .hero .countdown-card [class*="value"] {
    font-size: clamp(19px, 6.8vw, 26px) !important;
  }
}


/* <= 340 px : dernier filet de sécurité contre tout overflow. */
@media (max-width: 340px) {

  .hero .date-card,
  .hero .place-card {
    padding: 10px !important;
  }

  .hero .date-card strong,
  .hero .place-card strong {
    font-size: 14px !important;
  }

  .hero .countdown-card > :last-child,
  .hero .countdown-card .countdown-grid,
  .hero .countdown-card [class*="countdown-grid"],
  .hero .countdown-card [class*="countdown-values"],
  .hero .countdown-card [class*="countdown-time"] {
    gap: 3px !important;
  }

  .hero .countdown-card strong,
  .hero .countdown-card [class*="value"] {
    font-size: 18px !important;
  }

  .hero .countdown-card small {
    font-size: 6px !important;
  }
}

/* SIMA_V3R17_MOBILE_HERO_STACK_END */

/* ==========================================================
   SIMA_V19_NAVBAR_HERO_D19_BEGIN
   Typographie V18/V17 preservee.
   ========================================================== */

.site-header{
  position:sticky !important;
  top:0 !important;
  z-index:1000 !important;
  height:104px !important;
  padding:0 !important;
  background:linear-gradient(180deg,#061827 0%,#041421 100%) !important;
  box-shadow:0 8px 24px rgba(0,0,0,.18) !important;
  backdrop-filter:none !important;
}

.site-header.is-scrolled{
  height:104px !important;
  padding:0 !important;
  background:linear-gradient(180deg,#061827 0%,#041421 100%) !important;
  box-shadow:0 8px 24px rgba(0,0,0,.18) !important;
}

.site-header .nav-wrap{
  width:min(1420px,calc(100% - 64px)) !important;
  max-width:none !important;
  height:100% !important;
  margin:0 auto !important;
  gap:28px !important;
}

.site-header .brand-full{
  gap:13px !important;
  min-width:0 !important;
}

.site-header .brand-logo-full,
.site-header.is-scrolled .brand-logo-full{
  width:auto !important;
  height:72px !important;
  max-width:92px !important;
  object-fit:contain !important;
  object-position:center !important;
}

.brand-copy-v19{
  display:flex;
  flex-direction:column;
  white-space:nowrap;
}

.brand-copy-line1-v19{
  display:block;
  color:#fff;
}

.brand-copy-line2-v19{
  display:block;
  color:#63b640;
  margin-top:2px;
}

.site-header .site-nav{
  gap:29px !important;
  white-space:nowrap;
  color:rgba(255,255,255,.95) !important;
}

.site-header .nav-cta{
  border-color:rgba(255,255,255,.58) !important;
}

.nav-spectrum-v19{
  position:absolute;
  left:0;
  right:0;
  bottom:-3px;
  height:3px;
  overflow:hidden;
  pointer-events:none;
  background:linear-gradient(
    90deg,
    #f7bb1f 0 20%,
    #61aa3e 35%,
    #20bd83 52%,
    #16accf 69%,
    #4a77e8 100%
  );
}

.nav-spectrum-v19::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:-34%;
  width:31%;
  background:linear-gradient(
    105deg,
    transparent 0 25%,
    rgba(255,255,255,.14) 38%,
    rgba(255,233,148,.98) 47%,
    rgba(145,255,203,.98) 53%,
    rgba(106,213,255,.98) 60%,
    rgba(255,255,255,.18) 68%,
    transparent 78%
  );
  animation:sima-v19-nav-wave 15s cubic-bezier(.22,.64,.19,1) infinite;
}

@keyframes sima-v19-nav-wave{
  0%,86%{left:-34%}
  92%{left:42%}
  98%,100%{left:110%}
}

.hero{
  min-height:calc(100vh - 104px) !important;
  padding:20px 0 52px !important;
  background:#031521 !important;
  isolation:isolate !important;
  overflow:hidden !important;
}

.hero-bg{
  inset:0 !important;
  background:
    radial-gradient(circle at 76% 36%,rgba(24,93,137,.14),transparent 25%),
    linear-gradient(90deg,#031521 0%,#031521 42%,#041927 72%,#031521 100%) !important;
  filter:none !important;
  transform:none !important;
}

.hero-bg::after{
  background:linear-gradient(180deg,rgba(3,21,33,.04),rgba(3,21,33,.38)) !important;
}

.hero-grid-overlay{
  opacity:.055 !important;
}

.hero .orb{
  display:none !important;
}

.hero-content{
  display:block !important;
  min-height:calc(100vh - 180px) !important;
}

.hero-copy{
  position:relative !important;
  z-index:4 !important;
  width:min(820px,56%) !important;
  padding-top:10px !important;
}

.hero-info-grid{
  position:relative !important;
  z-index:4 !important;
}

.hero-visual-v19{
  position:absolute !important;
  z-index:1 !important;
  left:24% !important;
  right:0 !important;
  top:20px !important;
  bottom:18px !important;
  width:auto !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  background:none !important;
  box-shadow:none !important;
  overflow:visible !important;
  pointer-events:none !important;
}

.hero-visual-v19::before{
  display:none !important;
  content:none !important;
}

.hero-visual-v19::after{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  z-index:3 !important;
  inset:0 !important;
  background:
    linear-gradient(
      90deg,
      #031521 0%,
      rgba(3,21,33,.98) 7%,
      rgba(3,21,33,.86) 15%,
      rgba(3,21,33,.66) 23%,
      rgba(3,21,33,.44) 31%,
      rgba(3,21,33,.24) 38%,
      rgba(3,21,33,.10) 44%,
      rgba(3,21,33,.025) 49%,
      rgba(3,21,33,0) 53%,
      rgba(3,21,33,0) 92%,
      rgba(3,21,33,.09) 95%,
      rgba(3,21,33,.36) 98%,
      #031521 100%
    ),
    linear-gradient(
      180deg,
      rgba(3,21,33,.10) 0%,
      rgba(3,21,33,0) 10%,
      rgba(3,21,33,0) 54%,
      rgba(3,21,33,.08) 61%,
      rgba(3,21,33,.20) 68%,
      rgba(3,21,33,.38) 75%,
      rgba(3,21,33,.58) 82%,
      rgba(3,21,33,.76) 88%,
      rgba(3,21,33,.90) 94%,
      #031521 100%
    ) !important;
  pointer-events:none !important;
}

.hero-scene-img{
  display:block !important;
  position:absolute !important;
  z-index:1 !important;
  top:0 !important;
  right:clamp(170px,12vw,250px) !important;
  bottom:auto !important;
  left:auto !important;
  height:100% !important;
  width:auto !important;
  max-width:none !important;
  object-fit:contain !important;
  margin:0 !important;
  padding:0 !important;
  transform:none !important;
  filter:none !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:inset -42px 0 46px -30px rgba(3,21,33,.92) !important;

  -webkit-mask-image:
    linear-gradient(
      90deg,
      transparent 0%,
      rgba(0,0,0,.01) 5%,
      rgba(0,0,0,.04) 10%,
      rgba(0,0,0,.10) 15%,
      rgba(0,0,0,.20) 20%,
      rgba(0,0,0,.34) 25%,
      rgba(0,0,0,.50) 30%,
      rgba(0,0,0,.67) 34%,
      rgba(0,0,0,.82) 38%,
      rgba(0,0,0,.94) 41%,
      #000 44%,
      #000 86%,
      rgba(0,0,0,.96) 88%,
      rgba(0,0,0,.86) 90%,
      rgba(0,0,0,.70) 92%,
      rgba(0,0,0,.52) 94%,
      rgba(0,0,0,.34) 96%,
      rgba(0,0,0,.18) 97.5%,
      rgba(0,0,0,.07) 98.7%,
      transparent 100%
    ) !important;

  mask-image:
    linear-gradient(
      90deg,
      transparent 0%,
      rgba(0,0,0,.01) 5%,
      rgba(0,0,0,.04) 10%,
      rgba(0,0,0,.10) 15%,
      rgba(0,0,0,.20) 20%,
      rgba(0,0,0,.34) 25%,
      rgba(0,0,0,.50) 30%,
      rgba(0,0,0,.67) 34%,
      rgba(0,0,0,.82) 38%,
      rgba(0,0,0,.94) 41%,
      #000 44%,
      #000 86%,
      rgba(0,0,0,.96) 88%,
      rgba(0,0,0,.86) 90%,
      rgba(0,0,0,.70) 92%,
      rgba(0,0,0,.52) 94%,
      rgba(0,0,0,.34) 96%,
      rgba(0,0,0,.18) 97.5%,
      rgba(0,0,0,.07) 98.7%,
      transparent 100%
    ) !important;

  -webkit-mask-repeat:no-repeat !important;
  mask-repeat:no-repeat !important;
  -webkit-mask-size:100% 100% !important;
  mask-size:100% 100% !important;
}

.hero-ticker{
  z-index:6 !important;
}

@media (min-width:1500px){
  .hero-scene-img{
    right:clamp(195px,12.5vw,260px) !important;
  }
}

@media (min-width:901px) and (max-width:1180px){
  .hero-copy{
    width:min(760px,60%) !important;
  }

  .hero-visual-v19{
    left:29% !important;
  }

  .hero-scene-img{
    right:clamp(80px,9vw,125px) !important;
  }
}

@media (max-width:900px){

  .site-header,
  .site-header.is-scrolled{
    height:76px !important;
  }

  .site-header .nav-wrap{
    width:calc(100% - 28px) !important;
  }

  .site-header .brand-logo-full,
  .site-header.is-scrolled .brand-logo-full{
    width:auto !important;
    height:56px !important;
    max-width:68px !important;
  }

  .brand-copy-v19{
    display:none !important;
  }

  .nav-spectrum-v19{
    height:2px;
    bottom:-2px;
  }

  .hero{
    display:flex !important;
    flex-direction:column !important;
    min-height:auto !important;
    padding:3px 0 0 !important;
  }

  .hero-content{
    order:1 !important;
    width:calc(100% - 16px) !important;
    max-width:none !important;
    min-height:auto !important;
    display:flex !important;
    flex-direction:column !important;
  }

  .hero-copy{
    order:1 !important;
    width:100% !important;
    padding-top:3px !important;
  }

  .hero-visual-v19{
    order:2 !important;
    position:relative !important;
    z-index:1 !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    width:100vw !important;
    max-width:none !important;
    height:auto !important;
    margin:18px calc(50% - 50vw) 0 !important;
    padding:0 !important;
    overflow:hidden !important;
  }

  .hero-visual-v19::after{
    content:"" !important;
    display:block !important;
    position:absolute !important;
    z-index:2 !important;
    inset:0 !important;
    background:
      linear-gradient(
        180deg,
        #031521 0%,
        rgba(3,21,33,.40) 5%,
        rgba(3,21,33,.09) 11%,
        rgba(3,21,33,0) 19%,
        rgba(3,21,33,0) 86%,
        rgba(3,21,33,.10) 94%,
        #031521 100%
      ) !important;
    pointer-events:none !important;
  }

  .hero-scene-img{
    display:block !important;
    position:relative !important;
    top:auto !important;
    right:auto !important;
    bottom:auto !important;
    left:auto !important;
    width:100vw !important;
    max-width:none !important;
    height:auto !important;
    margin:0 !important;
    object-fit:contain !important;
    -webkit-mask-image:none !important;
    mask-image:none !important;
    transform:none !important;
    filter:none !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
  }

  .hero-ticker{
    position:relative !important;
    order:3 !important;
    left:auto !important;
    right:auto !important;
    bottom:auto !important;
    width:100% !important;
  }
}

/* SIMA_V19_NAVBAR_HERO_D19_END */

/* ==========================================================
   SIMA_V19R2_FINE_TUNE_BEGIN
   Scope:
   - desktop hero visibility only
   - desktop nav font-size only
   - mobile unchanged
   ========================================================== */

@media (min-width:901px){

  /*
   * V19R1 diagnostic:
   * [data-reveal] starts at opacity:0.
   * The absolute desktop hero visual can remain unrevealed.
   * Force ONLY this already validated hero visual visible on desktop.
   */
  .hero-visual-v19[data-reveal]{
    opacity:1 !important;
    transform:none !important;
  }

  /*
   * Explicit user-requested desktop navigation size increase.
   * V19R1 inherited an old 11px !important rule.
   */
  .site-header .site-nav a{
    font-size:15px !important;
  }
}

/* SIMA_V19R2_FINE_TUNE_END */

/* ==========================================================
   SIMA_V19R4_DESKTOP_PIPELINE_BEGIN

   Desktop root-cause resolution:
   bypass <img> + mask-image + ::after overlay pipeline.
   Same exact image rendered as a background layer.
   Mobile keeps the real <img> path that is already validated.
   ========================================================== */

@media (min-width:901px){

  /*
   * Keep the exact D19 container geometry.
   */
  .hero .hero-visual-v19{
    position:absolute !important;
    z-index:1 !important;

    left:24% !important;
    right:0 !important;
    top:20px !important;
    bottom:18px !important;

    width:auto !important;
    height:auto !important;

    margin:0 !important;
    padding:0 !important;

    /*
     * D19-like fade, but composited directly with the image.
     * No mask-image and no cover.
     *
     * Horizontal:
     * - aggressive merge on left
     * - clear central image window
     * - strong right fade before image edge
     *
     * Vertical:
     * - strong lower fade, sacrificing floor reflection
     */
    background-image:
      linear-gradient(
        90deg,
        #031521 0%,
        rgba(3,21,33,.995) 8%,
        rgba(3,21,33,.94) 17%,
        rgba(3,21,33,.78) 27%,
        rgba(3,21,33,.56) 36%,
        rgba(3,21,33,.32) 44%,
        rgba(3,21,33,.13) 50%,
        rgba(3,21,33,.035) 55%,
        rgba(3,21,33,0) 59%,
        rgba(3,21,33,0) 76%,
        rgba(3,21,33,.10) 78.5%,
        rgba(3,21,33,.34) 80.5%,
        rgba(3,21,33,.64) 82.5%,
        rgba(3,21,33,.88) 84%,
        #031521 86%,
        #031521 100%
      ),
      linear-gradient(
        180deg,
        rgba(3,21,33,.10) 0%,
        rgba(3,21,33,0) 10%,
        rgba(3,21,33,0) 54%,
        rgba(3,21,33,.08) 61%,
        rgba(3,21,33,.20) 68%,
        rgba(3,21,33,.38) 75%,
        rgba(3,21,33,.58) 82%,
        rgba(3,21,33,.76) 88%,
        rgba(3,21,33,.90) 94%,
        #031521 100%
      ),
      url("sima-grand-theatre-panel-v19.png") !important;

    background-size:
      100% 100%,
      100% 100%,
      auto 100% !important;

    background-position:
      center,
      center,
      calc(100% - clamp(170px,12vw,250px)) center !important;

    background-repeat:no-repeat !important;
    background-color:#031521 !important;

    overflow:visible !important;
    pointer-events:none !important;

    /*
     * Disable the two desktop-only layers that remain suspect
     * after asset / DOM / JS / reveal were ruled out.
     */
    -webkit-mask-image:none !important;
    mask-image:none !important;
  }

  .hero .hero-scene-img{
    display:none !important;
    -webkit-mask-image:none !important;
    mask-image:none !important;
  }

  .hero .hero-visual-v19::before,
  .hero .hero-visual-v19::after{
    display:none !important;
    content:none !important;
    background:none !important;
  }

  /*
   * Countdown heading fine tuning:
   * current live value is 14px.
   */
  .countdown-heading strong{
    font-size:17px !important;
  }
}

/*
 * Mobile is intentionally NOT converted to background rendering.
 * It keeps the real <img> path that is already working.
 */
@media (max-width:900px){

  .hero .hero-scene-img{
    display:block !important;
  }

  .countdown-heading strong{
    font-size:12px !important;
  }
}

/* Navbar wave: requested 6-second frequency. */
.nav-spectrum-v19::after{
  animation-duration:6s !important;
}

/* SIMA brand wording colors. */
.brand-copy-media-v19r4{
  color:#f4b52a !important;
}

.brand-copy-africa-v19r4{
  color:#63b640 !important;
}

/* ==========================================================
   SIMA_V19R4_DESKTOP_PIPELINE_END
   ========================================================== */

/* ==========================================================
   SIMA_V19R5_ROOTCAUSE_ALIGN_SELF_BEGIN

   ROOT CAUSE:
   legacy `.hero-visual { align-self:center; }` survived from V18.
   On the absolutely-positioned desktop visual this collapses the
   used box to its fit-content height. Because its only child is
   absolutely positioned, fit-content height = 0.

   Chromium evidence:
     BEFORE:
       visual 1313.28 x 0
       image  0 x 0

     AFTER align-self:normal:
       visual 1313.28 x 798.91
       image   671.28 x 798.91
   ========================================================== */

@media (min-width:901px){

  /*
   * The actual root fix.
   * `normal` restores top/bottom stretching for the abspos box.
   */
  .hero .hero-visual-v19{
    align-self:normal !important;

    position:absolute !important;
    z-index:1 !important;

    left:24% !important;
    right:0 !important;
    top:20px !important;
    bottom:18px !important;

    width:auto !important;
    height:auto !important;

    margin:0 !important;
    padding:0 !important;

    /*
     * Cancel V19R4 background bypass.
     * Restore approved D19 real-image rendering.
     */
    background:none !important;
    background-image:none !important;
    background-color:transparent !important;

    overflow:visible !important;
    pointer-events:none !important;

    -webkit-mask-image:none !important;
    mask-image:none !important;
  }

  .hero .hero-visual-v19::before{
    display:none !important;
    content:none !important;
    background:none !important;
  }

  /*
   * D18-approved LEFT + BOTTOM blend.
   * D19 did not change this overlay.
   */
  .hero .hero-visual-v19::after{
    content:"" !important;
    display:block !important;

    position:absolute !important;
    z-index:3 !important;
    inset:0 !important;

    background:
      linear-gradient(
        90deg,
        #031521 0%,
        rgba(3,21,33,.98) 7%,
        rgba(3,21,33,.86) 15%,
        rgba(3,21,33,.66) 23%,
        rgba(3,21,33,.44) 31%,
        rgba(3,21,33,.24) 38%,
        rgba(3,21,33,.10) 44%,
        rgba(3,21,33,.025) 49%,
        rgba(3,21,33,0) 53%,
        rgba(3,21,33,0) 92%,
        rgba(3,21,33,.09) 95%,
        rgba(3,21,33,.36) 98%,
        #031521 100%
      ),
      linear-gradient(
        180deg,
        rgba(3,21,33,.10) 0%,
        rgba(3,21,33,0) 10%,
        rgba(3,21,33,0) 54%,
        rgba(3,21,33,.08) 61%,
        rgba(3,21,33,.20) 68%,
        rgba(3,21,33,.38) 75%,
        rgba(3,21,33,.58) 82%,
        rgba(3,21,33,.76) 88%,
        rgba(3,21,33,.90) 94%,
        #031521 100%
      ) !important;

    pointer-events:none !important;
  }

  /*
   * Approved D19 real image geometry.
   */
  .hero .hero-scene-img{
    display:block !important;

    position:absolute !important;
    z-index:1 !important;

    top:0 !important;
    bottom:auto !important;
    left:auto !important;

    right:clamp(170px,12vw,250px) !important;

    height:100% !important;
    width:auto !important;
    max-width:none !important;

    object-fit:contain !important;

    margin:0 !important;
    padding:0 !important;

    transform:none !important;
    filter:none !important;
    border:0 !important;
    border-radius:0 !important;

    /*
     * D19 exact horizontal fade:
     * D18 left fade + stronger D19 right fade.
     */
    -webkit-mask-image:
      linear-gradient(
        90deg,
        transparent 0%,
        rgba(0,0,0,.01) 5%,
        rgba(0,0,0,.04) 10%,
        rgba(0,0,0,.10) 15%,
        rgba(0,0,0,.20) 20%,
        rgba(0,0,0,.34) 25%,
        rgba(0,0,0,.50) 30%,
        rgba(0,0,0,.67) 34%,
        rgba(0,0,0,.82) 38%,
        rgba(0,0,0,.94) 41%,
        #000 44%,
        #000 86%,
        rgba(0,0,0,.96) 88%,
        rgba(0,0,0,.86) 90%,
        rgba(0,0,0,.70) 92%,
        rgba(0,0,0,.52) 94%,
        rgba(0,0,0,.34) 96%,
        rgba(0,0,0,.18) 97.5%,
        rgba(0,0,0,.07) 98.7%,
        transparent 100%
      ) !important;

    mask-image:
      linear-gradient(
        90deg,
        transparent 0%,
        rgba(0,0,0,.01) 5%,
        rgba(0,0,0,.04) 10%,
        rgba(0,0,0,.10) 15%,
        rgba(0,0,0,.20) 20%,
        rgba(0,0,0,.34) 25%,
        rgba(0,0,0,.50) 30%,
        rgba(0,0,0,.67) 34%,
        rgba(0,0,0,.82) 38%,
        rgba(0,0,0,.94) 41%,
        #000 44%,
        #000 86%,
        rgba(0,0,0,.96) 88%,
        rgba(0,0,0,.86) 90%,
        rgba(0,0,0,.70) 92%,
        rgba(0,0,0,.52) 94%,
        rgba(0,0,0,.34) 96%,
        rgba(0,0,0,.18) 97.5%,
        rgba(0,0,0,.07) 98.7%,
        transparent 100%
      ) !important;

    -webkit-mask-repeat:no-repeat !important;
    mask-repeat:no-repeat !important;
    -webkit-mask-size:100% 100% !important;
    mask-size:100% 100% !important;

    /*
     * D19 right-edge absorption.
     */
    box-shadow:
      inset -42px 0 46px -30px rgba(3,21,33,.92) !important;
  }
}

@media (min-width:1500px){
  .hero .hero-scene-img{
    right:clamp(195px,12.5vw,260px) !important;
  }
}

@media (min-width:901px) and (max-width:1180px){
  .hero .hero-visual-v19{
    left:29% !important;
  }

  .hero .hero-scene-img{
    right:clamp(80px,9vw,125px) !important;
  }
}

/*
 * MOBILE:
 * no new mobile rules here.
 * V19R4/V19 base mobile path remains the already validated real <img>.
 */

/* ==========================================================
   SIMA_V19R5_ROOTCAUSE_ALIGN_SELF_END
   ========================================================== */

/* ==========================================================
   SIMA_V19R5R2_CONTACT_LINES_BEGIN
   Fine tuning uniquement:
   label sur ligne 1, valeur sur ligne 2.
   ========================================================== */

.contact-label-v3r12{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:center !important;
  gap:3px !important;
  min-width:0 !important;
}

.contact-label-v3r12 strong{
  display:block !important;
}

.contact-value-v19r5r2{
  display:block !important;
  min-width:0 !important;
  max-width:100% !important;
  overflow-wrap:anywhere !important;
}

/* SIMA_V19R5R2_CONTACT_LINES_END */


/* SIMA SOCIALS FOOTER + PERMANENT BACK-TO-TOP V1 */
.footer-social-links-v1{display:flex;flex-wrap:wrap;gap:10px}
.footer-social-link-v1{width:42px;height:42px;border:1px solid rgba(255,255,255,.18);border-radius:50%;display:grid!important;place-items:center;color:#fff!important;margin:0!important;background:rgba(255,255,255,.06);transition:transform .2s ease,border-color .2s ease,background .2s ease}
.footer-social-link-v1 svg{width:19px;height:19px;fill:currentColor}.footer-social-link-v1>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
a.footer-social-link-v1:hover{transform:translateY(-2px);border-color:#f4b52a;background:rgba(244,181,42,.14)}
.footer-social-link-v1:focus-visible,.backtotop-v1:focus-visible{outline:3px solid #f4b52a;outline-offset:3px}
.footer-social-link-v1.is-disabled{opacity:.42;cursor:not-allowed}
.backtotop-v1{position:fixed;right:clamp(18px,3vw,42px);bottom:50px;z-index:900;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;color:#fff;background:#071f37;border:1px solid rgba(255,255,255,.22);box-shadow:0 12px 34px rgba(0,0,0,.28);transition:transform .2s ease,background .2s ease}
.backtotop-v1:hover{transform:translateY(-3px);background:#0b7a46}.backtotop-v1 svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:600px){.backtotop-v1{right:16px;bottom:50px;width:46px;height:46px}}
@media(prefers-reduced-motion:reduce){.footer-social-link-v1,.backtotop-v1{transition:none}}
