
:root{
  --paper:#FFFFFF; --grid:#DCE9EC; --margin:#0A8FA8; --ink:#1F2A2E; --muted:#4F6166; --graphite:#3D4549;
  --teal:#0B7489; --sun:#FFD24A; --hl:rgba(255,210,74,.75); --rule:#B9CDD1; --panel:#066477; --pink:#F26B4E; --green:#0E6E55; --orange:#F26B4E; --blue:#0A8FA8; --yellow:#FFD24A; --coral:#F26B4E; --tealB:#0A8FA8; --on-panel:#FFFFFF;
  --serif:"Source Serif 4", Georgia, "Times New Roman", serif;
  --sans:"Public Sans", "Segoe UI", system-ui, sans-serif;
  --m:clamp(20px, 12vw, 180px);
  box-sizing:border-box; padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
body{margin:0; color:var(--ink); font-family:var(--sans); font-size:17px; line-height:1.6; overflow-x:hidden;
  background-color:var(--paper);}
body::before{display:none; content:""; position:fixed; top:0; bottom:0; left:calc(var(--m) - 14px); width:2px; background:var(--margin); opacity:.55; z-index:0; pointer-events:none}
img{max-width:100%; display:block}
a{color:var(--teal)}
:focus-visible{outline:3px solid var(--teal); outline-offset:3px}
h1,h2,h3,p{margin:0}

/* row = margin note + content */
.row{position:relative; z-index:1; display:grid; grid-template-columns:var(--m) minmax(0,1fr); padding-right:clamp(20px,5vw,72px)}
.mg{padding-right:28px; text-align:right; font-family:var(--serif); color:var(--margin)}
.mg .no{font-size:clamp(28px,4vw,56px); line-height:1; display:block}
.mg .note{font-family:var(--sans); font-size:13px; font-weight:600; color:var(--muted); display:block; margin-top:6px; line-height:1.3}
.ct{max-width:1160px}
@media (max-width:760px){ .mg{display:none} .row{grid-template-columns:minmax(0,1fr); padding:0 18px 0 30px} body::before{left:16px} }

/* top */
.top{position:relative; z-index:2; display:grid; grid-template-columns:var(--m) minmax(0,1fr); padding-right:clamp(20px,5vw,72px); border-bottom:1.5px solid var(--graphite); background:var(--paper)}
.top .in{display:flex; align-items:center; gap:28px; flex-wrap:wrap; min-height:76px; padding-block:8px}
.brand{display:flex; align-items:center; gap:10px; margin-right:auto; color:var(--ink); text-decoration:none; font-weight:700; letter-spacing:.02em}
nav.main{display:flex; gap:4px; flex-wrap:wrap}
nav.main a{color:var(--ink); text-decoration:none; font-weight:600; padding:10px 12px; position:relative}
nav.main a[aria-current="page"]{background:linear-gradient(transparent 58%, var(--hl) 58%, var(--hl) 88%, transparent 88%)}
.langs{display:flex; border:1.5px solid var(--graphite)}
.langs button{font:inherit; font-size:13px; font-weight:700; min-width:44px; height:40px; border:0; border-left:1.5px solid var(--graphite); background:transparent; color:var(--ink); cursor:pointer}
.langs button:first-child{border-left:0}
.langs button[aria-pressed="true"]{background:var(--ink); color:var(--paper)}
@media (max-width:760px){ .top{grid-template-columns:minmax(0,1fr); padding:0 18px 0 30px} .top > span{display:none} .top .in{gap:6px 12px} nav.main a{padding:8px 8px} }

.hl{background:linear-gradient(100deg, transparent 2%, var(--hl) 4%, var(--hl) 96%, transparent 98%) 0 72%/100% 42% no-repeat; padding:0 .08em}
.circ{position:relative; display:inline-block; white-space:nowrap}
.circ svg{position:absolute; left:-8%; top:-14%; width:116%; height:128%; overflow:visible; pointer-events:none}
.circ path{fill:none; stroke:var(--graphite); stroke-width:2.2; stroke-linecap:round}
@media (prefers-reduced-motion:no-preference){
  .draw{stroke-dasharray:1400; stroke-dashoffset:1400; animation:draw 1.6s .3s ease-out forwards}
  @keyframes draw{to{stroke-dashoffset:0}}
}

/* hero */
.hero{padding-block:clamp(48px,7vw,96px) clamp(40px,6vw,72px); background:var(--sun)}
.hero .hl,.dhead .hl{background:linear-gradient(100deg, transparent 2%, #fff 4%, #fff 96%, transparent 98%) 0 72%/100% 42% no-repeat}
.hero .kick,.hero .meta p,.dhead .kick{color:#33403F}
.hero .route text{fill:#33403F}
.hero .mg .no{font-size:clamp(48px,8vw,120px); color:var(--margin)}
.kick{font-weight:600; color:var(--muted); letter-spacing:.01em; max-width:40ch}
.hero h1{font-family:var(--serif); font-weight:400; font-size:clamp(68px,12.5vw,188px); line-height:.9; letter-spacing:-.02em; margin-top:18px}
.hero h1 .l2{display:block; font-style:italic; margin-left:clamp(0px,8vw,140px)}
.hero .meta{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); gap:40px; margin-top:44px; align-items:start}
.hero .meta .where{font-family:var(--serif); font-size:clamp(22px,2.4vw,30px); line-height:1.2}
.hero .meta p{max-width:52ch; color:var(--muted); font-size:18px}
.route{margin-top:28px; width:100%; max-width:980px}
.route text{font-family:var(--sans); font-size:14px; fill:var(--muted)}
.route .city{font-family:var(--serif); font-size:26px; fill:var(--ink)}
@media (max-width:760px){ .hero .meta{grid-template-columns:1fr; gap:14px} }

/* lexicon */
.lex{padding-block:48px 56px}
.lex dl{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin:0; border-top:1.5px solid var(--graphite); border-bottom:1.5px solid var(--graphite)}
.lex dl > div{padding:18px 18px 16px; border-left:1px solid var(--rule)}
.lex dl > div:first-child{border-left:0; padding-left:0}
.lex dt{font-size:12px; font-weight:700; letter-spacing:.12em; color:var(--margin)}
.lex dd{margin:2px 0 0; font-family:var(--serif); font-style:italic; font-size:clamp(26px,3vw,40px); line-height:1.1}
@media (max-width:760px){ .lex dl{grid-template-columns:repeat(2,minmax(0,1fr))} .lex dl > div:nth-child(3){border-left:0; padding-left:0} .lex dl > div:nth-child(n+3){border-top:1px solid var(--rule)} }

section.s{padding-block:clamp(56px,8vw,104px)}
h2.t{font-family:var(--serif); font-weight:400; font-size:clamp(34px,4.6vw,60px); line-height:1.05; letter-spacing:-.01em; max-width:20ch}
.cols{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); gap:48px; align-items:start}
.cols .txt p{margin:0 0 1em; font-size:19px; max-width:60ch}
.cols .txt p:first-child::first-letter{font-family:var(--serif); font-size:3.3em; float:left; line-height:.82; padding:6px 10px 0 0; color:var(--teal)}
@media (max-width:860px){ .cols{grid-template-columns:1fr; gap:24px} }
.facts{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:48px 0 0; border-top:1.5px solid var(--graphite)}
.facts div{padding:14px 18px 0 0}
.facts dt{font-size:12px; font-weight:700; letter-spacing:.12em; color:var(--muted); text-transform:uppercase}
.facts dd{margin:4px 0 0; font-family:var(--serif); font-size:24px; line-height:1.2}
@media (max-width:760px){ .facts{grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:18px} }

/* checklist */
.check{list-style:none; margin:36px 0 0; padding:0; max-width:880px}
.check li{display:grid; grid-template-columns:44px minmax(0,1fr) auto; gap:18px; align-items:start; padding:20px 0; border-bottom:1px solid var(--rule)}
.check li:first-child{border-top:1.5px solid var(--graphite)}
.check .box{width:30px; height:30px; margin-top:4px}
.check .box rect{fill:var(--paper); stroke:var(--graphite); stroke-width:2}
.check h3{font-family:var(--serif); font-weight:400; font-size:28px; line-height:1.15}
.check p{color:var(--muted); margin-top:4px}
.check .st{font-weight:700; font-size:14px; white-space:nowrap; padding-top:8px}
.check .st.soon{color:var(--margin)}
.check li.date .st{background:linear-gradient(transparent 50%, var(--hl) 50%)}
@media (max-width:600px){ .check li{grid-template-columns:36px minmax(0,1fr)} .check .st{grid-column:2; padding-top:0} }

/* partners ruled list */
.ruled{list-style:none; margin:32px 0 0; padding:0; columns:2; column-gap:56px; max-width:1100px}
.ruled li{break-inside:avoid; display:flex; justify-content:space-between; gap:18px; padding:13px 0; border-bottom:1px solid var(--rule)}
.ruled b{font-weight:600}
.ruled span{color:var(--muted); font-size:15px; text-align:right; flex:none; max-width:45%}
.ruled.people span{max-width:58%}
@media (max-width:760px){ .ruled{columns:1} }
h3.sub{margin-top:44px; font-size:14px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--muted)}

/* previous page */
.prevpage{display:flex; align-items:center; gap:28px; flex-wrap:wrap; padding:28px 0; border-top:1.5px solid var(--graphite); border-bottom:1.5px solid var(--graphite); text-decoration:none; color:var(--ink); max-width:1100px}
.prevpage .arr{font-family:var(--serif); font-size:56px; line-height:1; color:var(--margin)}
.prevpage .tt{display:flex; flex-direction:column; gap:2px; margin-right:auto}
.prevpage small{font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--muted)}
.prevpage strong{font-family:var(--serif); font-weight:400; font-size:clamp(28px,3.4vw,44px); line-height:1.1}
.prevpage .go{font-weight:700; padding:12px 18px; border:1.5px solid var(--ink)}
.prevpage:hover .go{background:var(--ink); color:var(--paper)}

footer{position:relative; z-index:1; background:var(--panel); color:var(--on-panel)}
footer .row{padding-block:64px 40px}
footer .mg{color:#fff}
footer .mail{font-family:var(--serif); font-size:clamp(24px,4.6vw,58px); color:var(--on-panel); text-decoration:underline; text-decoration-color:var(--sun); text-underline-offset:10px; text-decoration-thickness:2px; word-break:break-word}
footer .fine{display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-top:44px; padding-top:18px; border-top:1px solid rgba(255,255,255,.35); font-size:14px; color:#fff}

/* Dakar */
.dhead{padding-block:clamp(48px,7vw,88px) 56px; background:var(--sun)}
.dhead .info b{color:#33403F}
.dhead h1{font-family:var(--serif); font-weight:400; font-size:clamp(46px,7.4vw,104px); line-height:.95; letter-spacing:-.02em; max-width:13ch; margin-top:14px}
.dhead .info{display:flex; flex-wrap:wrap; gap:10px 36px; margin-top:28px; font-size:16px}
.dhead .info b{display:block; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted)}
.stamp{display:inline-block; margin-top:28px; padding:8px 14px; border:2px solid #1F2A2E; color:#1F2A2E; font-weight:700; letter-spacing:.08em; text-transform:uppercase; font-size:13px; transform:rotate(-2deg)}
.inline-nums{font-family:var(--serif); font-size:clamp(26px,3.2vw,42px); line-height:1.35; max-width:30ch}
.inline-nums .n{font-style:italic; color:var(--teal)}
.axes{list-style:none; margin:28px 0 0; padding:0; max-width:900px; counter-reset:ax}
.axes li{display:grid; grid-template-columns:56px minmax(0,1fr); gap:12px; padding:18px 0; border-bottom:1px solid var(--rule)}
.axes li:first-child{border-top:1.5px solid var(--graphite)}
.axes .n{font-family:var(--serif); font-style:italic; font-size:34px; line-height:1; color:var(--margin)}
.axes h3{font-size:19px; font-weight:600}
.axes p{color:var(--muted); margin-top:2px}
.taped{position:relative; max-width:880px; margin:8px 0 0; transform:rotate(-1.2deg); background:#fff; padding:12px 12px 46px; box-shadow:0 1px 0 rgba(0,0,0,.08), 0 10px 24px rgba(11,47,56,.12)}
.taped::before,.taped::after{content:""; position:absolute; top:-14px; width:120px; height:30px; background:rgba(255,210,74,.7)}
.taped::before{left:40px; transform:rotate(-4deg)} .taped::after{right:40px; transform:rotate(5deg)}
.taped figcaption{position:absolute; left:16px; bottom:12px; font-size:14px; color:#4F6166}
.days{display:flex; gap:0; margin-top:28px; border:1.5px solid var(--graphite); width:max-content; max-width:100%; overflow-x:auto}
.days button{font:inherit; text-align:left; padding:12px 20px; border:0; border-left:1.5px solid var(--graphite); background:var(--paper); color:var(--ink); cursor:pointer; white-space:nowrap}
.days button:first-child{border-left:0}
.days button .d{display:block; font-family:var(--serif); font-size:26px; line-height:1.05}
.days button .s{display:block; font-size:13px; color:var(--muted)}
.days button[aria-selected="true"]{background:var(--ink); color:var(--paper)}
.days button[aria-selected="true"] .s{color:var(--sun)}
.dsum{margin:18px 0 0; color:var(--muted)}
.tl{list-style:none; margin:20px 0 0; padding:0; max-width:1040px}
.ev{display:grid; grid-template-columns:96px minmax(0,1fr); gap:20px; padding:18px 0; border-bottom:1px solid var(--rule)}
.ev:first-child{border-top:1.5px solid var(--graphite)}
.ev .tm{font-weight:700; font-variant-numeric:tabular-nums; line-height:1.25}
.ev .tm small{display:block; font-weight:400; color:var(--muted)}
.ev .tag{display:inline-block; font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; margin-bottom:4px}
.tag.plen{color:var(--ink)} .tag.mesa{color:var(--teal)} .tag.par{color:var(--muted)} .tag.cult{background:var(--hl); padding:0 4px; color:var(--ink)}
.ev h3{font-family:var(--serif); font-weight:400; font-size:25px; line-height:1.2}
.ev .cnt{font-size:14px; color:var(--muted); margin-top:2px}
.ev ul{list-style:none; margin:10px 0 0; padding:0}
.ev ul li{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,40%); gap:20px; padding:9px 0; border-top:1px dashed var(--rule)}
.ev ul .w{font-size:14px; color:var(--muted)}
.ev.brk{padding:10px 0}
.ev.brk .tm{font-weight:400; color:var(--muted)}
.ev.brk .box{color:var(--muted); font-style:italic}
@media (max-width:700px){ .ev{grid-template-columns:1fr; gap:6px} .ev .tm small{display:inline; margin-left:6px} .ev ul li{grid-template-columns:1fr; gap:2px} }
.logos{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:0; margin-top:28px; border-top:1.5px solid var(--graphite); border-left:1px solid var(--rule); max-width:1100px}
.logos div{height:112px; display:flex; align-items:center; justify-content:center; padding:16px; background:#fff; border-right:1px solid var(--rule); border-bottom:1px solid var(--rule)}
.logos img{max-height:74px; width:auto; object-fit:contain}
@media (max-width:760px){ .logos{grid-template-columns:repeat(2,minmax(0,1fr))} }
.support{margin-top:18px; color:var(--muted); max-width:80ch}
.back{display:inline-block; margin-top:36px; font-weight:700; padding:12px 18px; border:1.5px solid var(--ink); color:var(--ink); text-decoration:none}
.back:hover{background:var(--ink); color:var(--paper)}

/* Bogotá palette */
.stripe{height:18px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='18'%3E%3Cpath d='M0 18 L9 0 L18 18Z' fill='%230A8FA8'/%3E%3Cpath d='M18 18 L27 0 L36 18Z' fill='%23FFD24A'/%3E%3Cpath d='M36 18 L45 0 L54 18Z' fill='%23F26B4E'/%3E%3Cpath d='M54 18 L63 0 L72 18Z' fill='%230E6E55'/%3E%3Cpath d='M72 18 L81 0 L90 18Z' fill='%23FFD24A'/%3E%3Cpath d='M9 0 L18 18 L27 0Z' fill='%23fff'/%3E%3C/svg%3E") repeat-x; background-size:90px 18px}
.stripe.thin{height:8px; background-size:40px 8px}
@media (prefers-reduced-motion:no-preference){ .stripe.move{animation:slide 14s linear infinite} @keyframes slide{to{background-position:900px 0}} }
.hero.bog{background:var(--tealB); color:#fff}
.hero.bog .kick,.hero.bog .meta p{color:#E3F6FA}
.hero.bog .where{color:#fff}
.hero.bog .mg .no{color:var(--yellow)} .hero.bog .mg .note{color:#E3F6FA}
.hero.bog .hl{background:linear-gradient(100deg, transparent 2%, var(--yellow) 4%, var(--yellow) 96%, transparent 98%) 0 72%/100% 46% no-repeat; color:#1F2A2E}
.hero.bog .circ path{stroke:#fff}
.hero.bog .route text{fill:#E3F6FA} .hero.bog .route .city{fill:#fff}
.lex.bog dl{border:0; gap:10px}
.lex.bog dl > div{border:0; padding:22px 22px 20px; color:#fff; border-radius:0}
.lex.bog dl > div:nth-child(1){background:var(--coral); color:#fff} .lex.bog dl > div:nth-child(2){background:var(--tealB)} .lex.bog dl > div:nth-child(3){background:#1F2A2E} .lex.bog dl > div:nth-child(4){background:var(--yellow); color:#1F2A2E}
.lex.bog dl > div:nth-child(4) dt{color:#5A4A10}
.lex.bog dl > div:nth-child(1) dd{color:#fff}
.lex.bog dt{color:rgba(255,255,255,.85)}
@media (max-width:760px){ .lex.bog dl > div:nth-child(3){padding-left:22px} .lex.bog dl > div:nth-child(n+3){border-top:0} }
.c-pink .mg .no{color:var(--coral)} .c-green .mg .no{color:var(--green)} .c-orange .mg .no{color:var(--tealB)}
.greenband{background:var(--yellow); color:#1F2A2E; position:relative; overflow:hidden}
.greenband .mg .no{color:#1F2A2E} .greenband .mg .note{color:#4A3F12}
.greenband .check li{border-color:rgba(31,42,46,.25)} .greenband .check li:first-child{border-top-color:#1F2A2E}
.greenband .check p{color:#3F3A20} .greenband .check .box rect{fill:transparent; stroke:#1F2A2E}
.greenband .check .st.soon{color:#1F2A2E} .greenband .check li.date .st{background:#1F2A2E; color:#fff; padding:2px 8px}
.ruled .dot{display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:8px; vertical-align:middle}
.cols .txt p:first-child::first-letter{color:var(--coral)}
.facts dt{color:var(--tealB)}
footer{background:var(--blue)}
footer .mail{text-decoration-color:var(--yellow)}

/* serif headings */
.hero h1,h2.t,.dhead h1{font-weight:600; letter-spacing:-.02em}
.hero h1{font-size:clamp(64px,11vw,168px); line-height:.95}
.hero h1 .l2{font-style:normal}
.mg .no,.lex dd,.facts dd,.check h3,.prevpage strong,.prevpage .arr,.axes .n,.days button .d,.ev h3,.hero .meta .where,.route .city,.inline-nums .n{font-weight:600; font-style:normal}
.lex dd{font-size:clamp(22px,2.4vw,32px)}
.facts dd{font-size:20px} .check h3{font-size:22px} .ev h3{font-size:20px}
.inline-nums{font-weight:500; font-size:clamp(22px,2.6vw,34px); letter-spacing:-.01em}
footer .mail{font-weight:600; letter-spacing:-.01em}
.cols .txt p:first-child::first-letter{font-weight:600; font-size:3.2em}
.dhead h1{font-size:clamp(40px,6.4vw,88px)}
/* tinted bands */
.tint-y{background:#fff} .tint-t{background:#fff} .tint-c{background:var(--coral); color:#fff}
.tint-c .prevpage{color:#fff; border-color:#fff} .tint-c .prevpage small,.tint-c .prevpage .tt span{color:#fff !important} .tint-c .prevpage .arr{color:#fff} .tint-c .prevpage .go{border-color:#fff} .tint-c .prevpage:hover .go{background:#fff; color:var(--coral)} .tint-c .mg .note{color:#fff}
.tint-t .ruled li{border-color:#A9D3DB} .tint-y .facts{border-color:#1F2A2E}

.solid-t{background:var(--tealB); color:#fff} .solid-t .mg .no{color:var(--yellow)} .solid-t .mg .note{color:#E3F6FA} .solid-t .inline-nums .n{color:var(--yellow)}
.hero.bog{position:relative; overflow:hidden}
.hero.bog > .ct,.hero.bog > .mg,.greenband > .ct,.greenband > .mg{position:relative; z-index:1}
.shape{position:absolute; pointer-events:none; z-index:0}
.shape.sun{width:clamp(260px,34vw,520px); aspect-ratio:1; border-radius:50%; background:var(--yellow); right:clamp(-180px,-8vw,-60px); top:clamp(-160px,-8vw,-60px)}
.shape.half{width:clamp(200px,24vw,360px); aspect-ratio:2/1; border-radius:999px 999px 0 0; background:var(--coral); left:46%; bottom:0}
.shape.qtr{width:clamp(180px,22vw,340px); aspect-ratio:1; border-radius:0 0 0 100%; background:var(--tealB); right:0; top:0}
@media (max-width:760px){ .shape.sun{width:200px; right:-90px; top:-90px} .shape.half,.shape.qtr{display:none} }

/* pastel palette + watercolour */
.wc{position:absolute; z-index:0; pointer-events:none; height:auto}
@media (max-width:760px){ .wc{width:220px !important} }
.hero.bog{background:#BFE6EC; color:#12383F}
.hero.bog .kick,.hero.bog .meta p{color:#1F4A52}
.hero.bog .where{color:#12383F}
.hero.bog .mg .no{color:#12383F} .hero.bog .mg .note{color:#1F4A52}
.hero.bog .hl{background:linear-gradient(100deg, transparent 2%, #FFE38A 4%, #FFE38A 96%, transparent 98%) 0 72%/100% 46% no-repeat; color:#1F2A2E}
.hero.bog .circ path{stroke:#12383F}
.hero.bog .route text{fill:#1F4A52} .hero.bog .route .city{fill:#12383F}
.hero.bog .route path,.hero.bog .route circle{stroke:#12383F}
.hero.bog .route circle{fill:#12383F}
.greenband{background:#FFEFB8}
.tint-c{background:#FBD3C7; color:#4A1D12}
.tint-c .prevpage{color:#4A1D12; border-color:#4A1D12} .tint-c .prevpage small,.tint-c .prevpage .tt span{color:#6B3222 !important} .tint-c .prevpage .arr{color:#4A1D12} .tint-c .prevpage .go{border-color:#4A1D12} .tint-c .prevpage:hover .go{background:#4A1D12; color:#FBD3C7} .tint-c .mg .note{color:#6B3222}
.lex.bog dl > div:nth-child(1){background:#F7A48E; color:#4A1D12} .lex.bog dl > div:nth-child(1) dd{color:#4A1D12} .lex.bog dl > div:nth-child(1) dt{color:#6B3222}
.lex.bog dl > div:nth-child(2){background:#8FD3DE; color:#12383F} .lex.bog dl > div:nth-child(2) dt{color:#1F4A52}
.lex.bog dl > div:nth-child(4){background:#FFE38A}
.solid-t{background:#BFE6EC; color:#12383F} .solid-t .mg .no{color:#12383F} .solid-t .mg .note{color:#1F4A52} .solid-t .inline-nums .n{color:#0A6F82}
footer{background:#12383F}


/* Mara's watercolour washes */
:root{--w-teal:url(/assets/img/2db18c94ae2f.webp);--w-blush:url(/assets/img/0c8861e38658.webp);--w-sand:url(/assets/img/985e873c4e5e.webp);--paper:#FFFFFF; --ink:#23343A; --brown:#7A5C4C; --line:#D8C7BA}
html,body{overflow-x:clip} body{background:#FBF9F5}
main{overflow-x:clip} footer{overflow:visible}
.bclip{position:absolute; inset:0; overflow:hidden; z-index:0; pointer-events:none}
.top{background:rgba(251,249,245,.92) !important; backdrop-filter:blur(4px)}
footer{background:transparent !important}
.logos div{background:#fff}
.top{background:#fff; border-bottom:1px solid var(--line)}
nav.main a[aria-current="page"]{background:none; text-decoration:underline; text-decoration-color:var(--brown); text-underline-offset:8px; text-decoration-thickness:1px}
.langs{border-color:var(--line)} .langs button{border-left-color:var(--line)} .langs button[aria-pressed="true"]{background:var(--ink)}
.hero2{padding:clamp(18px,3vw,40px) clamp(18px,4vw,56px) 0}
.hero2 .frame{position:relative; overflow:hidden; border:1px solid var(--line); min-height:clamp(560px,82vh,820px); display:flex; align-items:center; justify-content:center; padding:clamp(40px,6vw,80px) 20px}
.wash{position:absolute; pointer-events:none; aspect-ratio:1100/919; background-size:contain; background-repeat:no-repeat}
.w-main{background-image:var(--w-teal); width:min(1000px,110%); left:50%; top:50%; transform:translate(-50%,-50%)}
.w-acc{background-image:var(--w-blush); width:min(340px,40%); right:-4%; bottom:-10%; opacity:.9}
.hero2 .sprig{position:absolute; z-index:1; pointer-events:none; width:clamp(80px,9vw,130px); height:auto; left:clamp(8px,4vw,70px); bottom:clamp(10px,4vw,50px)}
@media (max-width:600px){ .hero2 .sprig{display:none} }
.hin{position:relative; z-index:1; text-align:center; max-width:640px}
.kick2{font-size:13px; letter-spacing:.2em; text-transform:uppercase; color:var(--brown); line-height:1.7}
.hin h1{font-family:var(--serif); font-weight:600; font-size:clamp(64px,11vw,150px); line-height:.95; letter-spacing:-.015em; color:#fff; text-shadow:0 1px 18px rgba(35,90,100,.25); margin:22px 0 26px}
.meta2{font-size:15px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink)}
.meta2 .br{display:none}
.lead2{margin:18px auto 0; max-width:46ch; color:var(--ink); font-size:17px}
@media (max-width:600px){ .meta2 span{display:none} .meta2 .br{display:inline} .w-main{width:170%} }
.kick,.facts dt,h3.sub,.prevpage small,.mg .note{text-transform:uppercase; letter-spacing:.16em; font-size:12px !important; color:var(--brown)}
.mg .no{color:var(--brown) !important}
.lex{padding-block:40px 24px}
.lex.bog dl{border:0; gap:10px}
.lex.bog dl > div{position:relative; overflow:hidden; background:transparent !important; text-align:center; padding:34px 14px !important; color:var(--ink) !important}
.lex.bog dl > div::before{content:""; position:absolute; inset:-10% -6%; background-size:contain; background-repeat:no-repeat; background-position:center; z-index:-1}
.lex.bog dl > div{z-index:1}
.lex.bog dl > div:nth-child(1)::before,.lex.bog dl > div:nth-child(3)::before{background-image:var(--w-blush)}
.lex.bog dl > div:nth-child(2)::before{background-image:var(--w-teal)}
.lex.bog dl > div:nth-child(4)::before{background-image:var(--w-sand)}
.lex.bog dl > div dd{color:var(--ink) !important; font-style:normal} .lex.bog dl > div dt{color:var(--brown) !important}
.greenband,.tint-c,.solid-t,.dhead,.tint-y,.tint-t{background:transparent !important; color:var(--ink) !important; position:relative; overflow:hidden}
.greenband > .ct,.tint-c > .ct,.solid-t > .ct,.dhead > .ct{position:relative; z-index:1}
.greenband::before,.tint-c::before,.solid-t::before,.dhead::before{content:""; position:absolute; z-index:0; pointer-events:none; background-repeat:no-repeat; background-size:contain}
.greenband::before{background-image:var(--w-sand); width:min(900px,80%); aspect-ratio:1100/919; left:6%; top:50%; transform:translateY(-50%)}
.tint-c::before{background-image:var(--w-blush); width:min(760px,70%); aspect-ratio:1100/919; left:10%; top:50%; transform:translateY(-50%)}
.solid-t::before{background-image:var(--w-teal); width:min(760px,70%); aspect-ratio:1100/919; left:8%; top:50%; transform:translateY(-50%)}
.dhead::before{background-image:var(--w-sand); width:min(1000px,90%); aspect-ratio:1100/919; left:4%; top:50%; transform:translateY(-50%)}
.greenband .mg .no,.greenband .check .st.soon{color:var(--ink) !important}
.greenband .check li.date .st{background:var(--ink); color:#fff}
.tint-c .prevpage,.tint-c .prevpage small,.tint-c .prevpage .tt span,.tint-c .prevpage .arr{color:var(--ink) !important; border-color:var(--ink)}
.tint-c .prevpage .go{border-color:var(--ink)} .tint-c .prevpage:hover .go{background:var(--ink); color:#fff}
.solid-t .inline-nums .n{color:#1C6F7D !important}
.dhead .hl,.hero .hl{background:none}
.cols .txt p:first-child::first-letter{color:var(--brown)}
.ruled li{border-color:var(--line)} .check li,.axes li,.ev{border-color:var(--line)}
footer{background:#fff; color:var(--ink); border-top:1px solid var(--line)}
footer .mail{color:var(--ink); text-decoration-color:var(--brown); text-decoration-thickness:1px}
footer .fine{color:var(--brown); border-top-color:var(--line)}
footer p,footer .mg .note{color:var(--brown) !important}
.wc{display:none}

/* tinted paper bands in the wash colours */
.band-a,.band-s,.band-n{background-image:none !important}
.band-a{background-color:#CFE8EB !important} .band-s{background-color:#F0E2CB !important} .band-n{background-color:#EFD9CE !important}
.band-a::before,.band-s::before,.band-n::before{display:none !important}

/* blots: large ones bleed off the page, small ones balance */
.greenband,.tint-y,.tint-t{overflow:visible !important}
.row.lex{z-index:2}
.hero2{z-index:2}
.row,.hero2,footer{position:relative}
.row > .mg,.row > .ct,footer > .row > *{position:relative; z-index:1}
.blot{position:absolute; z-index:0; pointer-events:none; aspect-ratio:1100/919; background-size:contain; background-repeat:no-repeat}
.blot.t{background-image:var(--w-teal)} .blot.n{background-image:var(--w-blush)} .blot.s{background-image:var(--w-sand)}
.blot.XL{width:clamp(520px,64vw,1040px)} .blot.L{width:clamp(420px,52vw,820px)} .blot.M{width:clamp(240px,26vw,420px)} .blot.S{width:clamp(110px,11vw,180px)}
.hero2 .frame{overflow:visible}
.hero2 .w-acc{display:none}
@media (max-width:760px){ .blot.XL{width:140vw} .blot.L{width:120vw} .blot.M{width:60vw} }

/* no margin column */
.row{grid-template-columns:minmax(0,1fr) !important; padding-left:clamp(20px,5vw,72px) !important; padding-right:clamp(20px,5vw,72px) !important}
.top{grid-template-columns:minmax(0,1fr) !important; padding-left:clamp(20px,5vw,72px) !important}
.top > span{display:none}
.ct{margin-inline:auto; width:100%; max-width:1200px}
/* key dates as cards (first proposal) */
.steps{list-style:none; margin:36px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; max-width:1100px}
.steps li{border:1.5px dashed #23343A; border-radius:22px; padding:26px; display:flex; flex-direction:column; gap:10px; min-height:220px; background:rgba(255,255,255,.35)}
.steps li.final{border:0; background:#FBF9F5}
.steps .n{font-family:var(--serif); font-weight:600; font-size:40px; line-height:1; color:var(--brown)}
.steps h3{font-family:var(--serif); font-weight:600; font-size:22px}
.steps p{margin:0; color:#3C4B50}
.steps .st{margin-top:auto; font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--brown)}
.steps li.final .st{color:#23343A}
@media (max-width:860px){ .steps{grid-template-columns:1fr} .steps li{min-height:0} }
/* partners as cards */
.pcards{display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; margin-top:32px; max-width:1200px}
.pcard{background:rgba(255,255,255,.88); border:1px solid var(--line); border-radius:16px; padding:18px 20px; display:flex; flex-direction:column; gap:6px; min-height:96px}
.pcard b{font-weight:600; line-height:1.35}
.pcard span{font-size:14px; color:var(--brown)}

/* logo */
.brand{gap:12px !important}
.brand .lp{width:auto; height:66px; flex:none}
.lw{display:flex; flex-direction:column; line-height:1}
.lw b{font-family:var(--serif); font-weight:600; font-size:27px; letter-spacing:-.01em; color:#23343A}
.lw small{font-size:10px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--brown); margin-top:6px; line-height:1.5}
.top .in{min-height:92px !important}
.flogo{display:flex; align-items:center; gap:16px; margin-bottom:40px}
.flogo .lp{height:92px; width:auto}
.flogo .lw b{font-size:44px}
.flogo .lw small{font-size:12px}
.esu{width:clamp(150px,16vw,220px); height:auto; border-radius:10px; margin-bottom:22px; box-shadow:0 1px 0 rgba(0,0,0,.06)}
@media (max-width:600px){ .brand .lp{height:54px} .lw b{font-size:21px} .lw small{font-size:8px; letter-spacing:.1em} .flogo .lp{height:70px} .flogo .lw b{font-size:32px} }

/* family ties with Dakar: full teal + yellow accents */
:root{--dk-teal:#0A8FA8; --dk-teal-d:#07788D; --dk-yellow:#FFD24A}
a{color:var(--dk-teal-d)}
nav.main a[aria-current="page"]{text-decoration-color:var(--dk-teal) !important; text-decoration-thickness:2px !important}
.langs button[aria-pressed="true"]{background:var(--dk-teal-d) !important; color:#fff}
.steps .n{color:var(--dk-teal-d)}
.steps li.final{background:var(--dk-yellow) !important}
.facts dt{color:var(--dk-teal-d) !important}
.prevpage .go,.back{background:var(--dk-teal-d); color:#fff !important; border-color:var(--dk-teal-d) !important}
.prevpage:hover .go,.back:hover,.tint-c .prevpage:hover .go{background:#23343A !important; border-color:#23343A !important; color:#fff !important}
footer .mail{text-decoration-color:var(--dk-teal) !important; text-decoration-thickness:2px !important}
.cols .txt p:first-child::first-letter{color:var(--dk-teal-d) !important}
.kick2{color:var(--dk-teal-d)}
.days button[aria-selected="true"]{background:var(--dk-teal-d); color:#fff}
.days button[aria-selected="true"] .s{color:var(--dk-yellow)}

/* header wordmark: clear and legible */
.brand.hb{display:flex; align-items:center; gap:16px !important; text-decoration:none}
.hb b{font-family:var(--serif); font-weight:600; font-size:28px; letter-spacing:-.01em; color:#23343A; white-space:nowrap}
.hb .hsep{width:1.5px; height:40px; background:var(--dk-teal)}
.hb .hname{font-family:var(--sans); font-weight:600; font-size:14.5px; line-height:1.3; color:#23343A}
@media (max-width:600px){ .hb b{font-size:22px} .hb .hname{font-size:12px} .hb .hsep{height:34px} .brand.hb{gap:10px !important} }

/* hero title: legible name + pencil */
.kick2{font-family:var(--serif) !important; font-weight:600; font-size:clamp(18px,2vw,24px) !important; letter-spacing:0 !important; text-transform:none !important; color:#23343A !important; line-height:1.35 !important}
.hin h1.ht{display:inline-flex; align-items:center; gap:clamp(14px,2vw,28px); text-align:left}
.hin h1.ht .hp{height:clamp(130px,19vw,270px); width:auto; flex:none; filter:drop-shadow(0 1px 10px rgba(35,90,100,.18))}
.meta2{font-weight:600}

/* partners with Dakar colours */
.pcard{border-left:5px solid var(--dk-teal) !important; border-radius:6px 16px 16px 6px !important}
.pcard span{color:var(--dk-teal-d) !important; font-weight:600}
.pcards.people .pcard{border-left-color:var(--dk-yellow) !important}
.pcards.people .pcard span{color:#5B4E44 !important; font-weight:400}
h3.sub{color:var(--dk-teal-d) !important}

.band-y{background:#FFDE59 !important}
.band-y::before{display:none !important}
.band-y .esu{border-radius:0; box-shadow:none}
.band-y .kick,.band-y .info b{color:#4A3F12 !important}
.band-y .stamp{border-color:#23343A; color:#23343A}
.langs button[disabled]{opacity:.35; cursor:not-allowed}

/* objectives */
.objs .omain{font-family:var(--serif); font-weight:600; font-size:clamp(20px,2.1vw,27px); line-height:1.35; margin-top:18px; color:#23343A; max-width:30ch}
.objs .osub{font-weight:600; color:var(--brown); margin-bottom:10px}
.olist{list-style:none; margin:0; padding:0}
.olist li{position:relative; padding:12px 0 12px 26px; border-bottom:1px solid var(--line)}
.olist li:first-child{border-top:1px solid var(--line)}
.olist li::before{content:""; position:absolute; left:2px; top:21px; width:10px; height:10px; border-radius:50%; background:var(--dk-teal)}
.oshort{padding-left:14px; border-left:3px solid var(--dk-teal)}
.oshort b{color:var(--dk-teal-d)}
.pcards.team .pcard{border-left-color:#23343A !important}
.pcards.team .pcard span{color:#5B4E44 !important; font-weight:400 !important}

/* support tiers */
.support-sec .sup-lead{margin-top:16px; max-width:62ch; font-size:18px}
.tiers{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:36px; max-width:1200px; align-items:stretch}
.tier{background:rgba(255,255,255,.92); border:1px solid var(--line); border-top:5px solid var(--dk-teal); border-radius:16px; padding:26px 24px; display:flex; flex-direction:column; gap:12px}
.tier.main{border-top-color:var(--dk-yellow); box-shadow:0 1px 0 rgba(0,0,0,.04), 0 10px 26px rgba(35,52,58,.08)}
.tier h3{font-family:var(--serif); font-weight:600; font-size:26px; line-height:1.15; color:#23343A}
.tier .amt{font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--brown)}
.tier ul{margin:0; padding:0 0 0 18px; display:flex; flex-direction:column; gap:6px; color:#3C4B50}
.tbtn{margin-top:auto; align-self:flex-start; display:inline-block; padding:12px 18px; border-radius:10px; background:var(--dk-teal-d); color:#fff !important; font-weight:700; text-decoration:none}
.tier:not(.main) .tbtn{background:transparent; color:var(--dk-teal-d) !important; border:1.5px solid var(--dk-teal-d)}
.tbtn:hover{background:#23343A !important; border-color:#23343A !important; color:#fff !important}
.sup-note{margin-top:22px; color:var(--brown)}
@media (max-width:860px){ .tiers{grid-template-columns:1fr} }
.sup-head{background:#F2E3CB !important}
.sup-head h1{margin-top:10px}
.support-sec{padding-top:clamp(40px,5vw,64px) !important}
/* cartoon contest */
.cart{display:flex; align-items:center; justify-content:space-between; gap:clamp(24px,5vw,72px); flex-wrap:wrap}
.cart-t{flex:1 1 380px; max-width:60ch}
.cart-t p{margin-top:16px; font-size:18px}
.cart-b{display:inline-block; margin-top:22px; padding:13px 20px; border-radius:10px; background:var(--dk-teal-d); color:#fff !important; font-weight:700; text-decoration:none}
.cart-b:hover{background:#23343A}
.cart-q{margin:0; text-align:center; background:#fff; padding:18px; border-radius:16px; border:1px solid var(--line)}
.cart-q img{width:200px; height:200px; display:block}
.cart-q figcaption{margin-top:10px; font-size:14px; color:var(--muted); max-width:200px}

.cartph{display:grid; grid-template-columns:repeat(2,minmax(0,360px)); gap:12px; margin-top:32px}
.cartph img{display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:12px}
.cartcap{margin-top:10px; font-size:14px; color:var(--muted)}
@media (max-width:760px){ .cartph{grid-template-columns:minmax(0,1fr)} .cartph img{height:auto} }
.cartw-t{margin-top:24px}
.cartw{list-style:none; margin:10px 0 0; padding:0; display:flex; flex-direction:column; gap:8px; font-size:17px}
.cartw li{display:grid; grid-template-columns:104px 1fr; gap:12px; align-items:baseline}
.cartw em{font-style:normal}
.cartw b{color:var(--dk-teal-d); font-size:13px; letter-spacing:.06em; text-transform:uppercase}
.cartw span{color:var(--muted); font-size:15px}
.cart-b{margin-top:26px}
.embph{margin:18px 0 0; max-width:520px}
.embph img{display:block; width:100%; height:auto; border-radius:12px}
.embph figcaption{margin-top:8px; font-size:14px; color:var(--muted)}
/* hero: symposium name first, host as signature */
.kick2 + h1{margin-top:clamp(14px,2vw,26px) !important}
.herohost{display:flex; align-items:center; justify-content:center; gap:12px; margin-top:22px}
.herohost small{font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted)}
.herohost img{height:clamp(46px,4.6vw,60px); width:auto}
/* home: Dakar numbers + organisers summary */
.numsec .nsub{margin-top:8px; color:var(--muted)}
.numsec .gstats{margin-top:22px}
.numsec .cart-b,.whosec .cart-b{margin-top:26px}
.whosec .sup-lead{max-width:62ch; margin-top:12px}
.teamsec{padding-top:clamp(40px,5vw,64px)}
/* programme: more readable names */
.ev ul li{font-size:16px}
.ev ul .w{font-size:15px; color:#46565C}
/* mobile header: one-line scrollable menu */
@media (max-width:760px){
  .top .in{display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px 10px; min-height:0 !important; padding-block:10px}
  .top .brand{grid-column:1; grid-row:1}
  .top .langs{grid-column:2; grid-row:1}
  nav.main{grid-column:1 / -1; grid-row:2; flex-wrap:nowrap; overflow-x:auto; gap:0; margin:0 -6px; scrollbar-width:none; -webkit-overflow-scrolling:touch}
  nav.main::-webkit-scrollbar{display:none}
  nav.main a{white-space:nowrap; font-size:15px; padding:8px 9px !important}
  .langs button{min-width:34px !important; height:34px !important; font-size:12px !important}
}
@media (max-width:440px){ .lw small{display:none} nav.main{justify-content:space-between} nav.main a[href="#contacto"]{display:none} nav.main a{padding:8px 6px !important} }
nav.main a.nav-arch{color:var(--muted); font-weight:400; margin-left:6px; padding-left:14px !important; border-left:1px solid var(--line)}
nav.main a.nav-arch:hover{color:var(--ink)}
nav.main a.nav-arch[aria-current="page"]{color:var(--ink)}
.whosec .lwall{grid-template-columns:repeat(4,minmax(0,1fr)) !important}
.whosec .lwall .host{grid-column:1 / -1 !important; justify-self:center; width:min(100%,420px)}
@media (max-width:760px){ .whosec .lwall{grid-template-columns:repeat(2,minmax(0,1fr)) !important} }
.bxnote{max-width:70ch; margin-top:12px; color:#3C4B50}
.axes.bx{max-width:980px}
.axes.bx .n{font-style:normal; font-size:26px; color:var(--dk-teal-d)}
.axes.bx h3{font-size:18px}
.occols{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(24px,4vw,56px); margin-top:18px; max-width:1100px}
@media (max-width:760px){ .occols{grid-template-columns:minmax(0,1fr)} }
ul.ticks{list-style:none; margin:12px 0 0; padding:0; display:flex; flex-direction:column; gap:10px; max-width:70ch}
ul.ticks li{position:relative; padding-left:26px; line-height:1.5}
ul.ticks li::before{content:""; position:absolute; left:0; top:.55em; width:12px; height:12px; border-radius:50%; background:var(--dk-yellow); border:2px solid var(--dk-teal-d)}
.scinote{margin-top:8px; color:#3C4B50; max-width:70ch}
.ticks a,.txt a{color:var(--dk-teal-d); text-decoration:underline; text-underline-offset:3px}
/* Dakar host university in header */
.band-y .ct{display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:clamp(32px,5vw,72px)}
.band-y .ct > *:not(.dkhost){grid-column:1}
.band-y .ct > .stamp,.band-y .ct > .esu{justify-self:start}
.dkhost{grid-column:2; grid-row:1 / span 6; align-self:center; display:flex; flex-direction:column; align-items:center; text-align:center; gap:14px; max-width:300px; background:rgba(255,255,255,.55); border-radius:20px; padding:26px 24px}
.dkhost img{width:clamp(150px,15vw,200px); height:auto}
.dkhost div{display:flex; flex-direction:column; gap:4px}
.dkhost small{font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#4A3F12}
.dkhost b{font-family:var(--serif); font-weight:600; font-size:22px; line-height:1.2; color:#23343A}
.dkhost span{font-size:13.5px; line-height:1.4; color:#3C4B50}
@media (max-width:860px){ .band-y .ct{grid-template-columns:1fr} .dkhost{grid-column:1; grid-row:4; flex-direction:row; text-align:left; max-width:none; margin:22px 0 4px; padding:18px} .dkhost img{width:96px} }
/* Dakar partners by group */
.plogos{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-top:16px; max-width:1200px}
.plogos > div{background:#fff; border:1px solid var(--line); border-radius:12px; height:112px; display:flex; align-items:center; justify-content:center; padding:14px 18px}
.plogos > div.wide{grid-column:span 2}
.plogos img{max-width:100%; max-height:76px; width:auto; height:auto; object-fit:contain}
.plogos > div.wide img{max-height:84px}
.plogos > div.pf img{max-height:48px}
.plogos img[alt^="Faculté des Sciences de l"],.plogos img[alt^="Fundação para"]{max-height:88px}
.pgroups{display:grid; grid-template-columns:3fr 1fr; gap:24px; max-width:1200px; margin-top:12px}
.plogos.two{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:860px){ .plogos.two{grid-template-columns:repeat(2,minmax(0,1fr))} }
.plogos.one{grid-template-columns:1fr}
@media (max-width:860px){ .plogos{grid-template-columns:repeat(2,minmax(0,1fr))} .pgroups{grid-template-columns:1fr; gap:0} }
@media (max-width:480px){ .plogos.two{grid-template-columns:1fr} }
.plogos.fin{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:860px){ .plogos.fin{grid-template-columns:repeat(2,minmax(0,1fr))} }
.plogos img[alt^="Government of Ireland"]{max-height:84px}
.plogos > div.combo{gap:clamp(12px,2vw,24px)}
.plogos > div.combo > img{max-width:40%}
.plogos .via{font-size:13px; color:var(--muted); text-align:center; max-width:110px; line-height:1.3}
@media (max-width:600px){ .plogos > div.combo{grid-column:span 1; height:auto; flex-direction:column; padding:18px} .plogos > div.combo img{max-width:80%} }
.plogos > div.txt{flex-direction:column; gap:4px; text-align:center}
.plogos > div.txt b{font-family:var(--serif); font-weight:600; font-size:24px; color:#23343A}
.plogos > div.txt span{font-size:13px; color:var(--muted)}
@media (max-width:600px){ .plogos.fin{grid-template-columns:1fr} }
/* links to official sites */
a.olink{display:flex; align-items:center; justify-content:center; max-width:100%; max-height:100%; border-radius:6px}
a.olink:focus-visible{outline:3px solid var(--dk-teal); outline-offset:4px}
.plogos > div:has(a.olink), .lwall div:has(a.olink){transition:border-color .2s, box-shadow .2s}
.plogos > div:has(a.olink):hover, .lwall div:has(a.olink):hover{border-color:var(--dk-teal); box-shadow:0 4px 14px rgba(35,52,58,.10)}
.plogos > div.combo a.olink{max-width:40%} .plogos > div.combo a.olink img{max-width:100%}
.pcard.haslink{position:relative; transition:box-shadow .2s, transform .2s}
.pcard.haslink:hover{box-shadow:0 6px 18px rgba(35,52,58,.12); transform:translateY(-2px)}
a.cardlink{position:absolute; inset:0; border-radius:inherit}
a.cardlink:focus-visible{outline:3px solid var(--dk-teal); outline-offset:2px}
.pcard.haslink::after{content:"↗"; position:absolute; top:12px; right:14px; font-size:14px; color:var(--dk-teal-d); opacity:.55}
/* Dakar photo gallery */
.gstats{list-style:none; margin:26px 0 0; padding:18px 0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px 24px; border-top:1.5px solid var(--graphite); border-bottom:1px solid var(--line); max-width:1200px}
.gstats li{display:flex; flex-direction:column; gap:2px}
.gstats b{font-family:var(--serif); font-weight:600; font-size:clamp(34px,4vw,52px); line-height:1; color:var(--dk-teal-d)}
.gstats span{font-size:15px; color:#3C4B50}
@media (max-width:700px){ .gstats{grid-template-columns:repeat(2,minmax(0,1fr))} }
.galw{position:relative; margin-top:28px; max-width:1200px}
.gal{display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; padding:2px}
.gal::-webkit-scrollbar{display:none}
.gal button{flex:0 0 calc((100% - 28px)/3); aspect-ratio:4/3; scroll-snap-align:start; padding:0; border:0; background:#ddd; cursor:zoom-in; border-radius:10px; overflow:hidden}
.gal img{display:block; width:100%; height:100%; object-fit:cover; object-position:50% 18%; transition:transform .3s ease}
.gal button:hover img{transform:scale(1.04)}
.gal button:focus-visible{outline:3px solid var(--dk-teal); outline-offset:2px}
.gnav{display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:16px}
.gnav button{width:44px; height:44px; border-radius:50%; border:1.5px solid var(--dk-teal-d); background:#fff; color:var(--dk-teal-d); font-size:24px; line-height:1; cursor:pointer}
.gnav button:hover{background:var(--dk-teal-d); color:#fff}
.gdots{display:flex; gap:8px; flex-wrap:wrap; justify-content:center}
.gdots span{width:9px; height:9px; border-radius:50%; background:#C9D3D2}
.gdots span.on{background:var(--dk-teal-d)}
@media (max-width:900px){ .gal button{flex-basis:calc((100% - 14px)/2)} }
@media (max-width:520px){ .gal button{flex-basis:86%} }
dialog.lb{border:0; padding:0; background:transparent; max-width:100vw; max-height:100vh; width:100vw; height:100vh; margin:0}
dialog.lb::backdrop{background:rgba(20,30,34,.92)}
dialog.lb[open]{display:flex; flex-direction:column; align-items:center; justify-content:center}
.lb img{max-width:min(92vw,1400px); max-height:82vh; width:auto; height:auto; border-radius:6px}
.lb-c{color:#fff; margin:12px 16px 0; font-size:15px; text-align:center}
.lb button{position:fixed; border:0; background:rgba(255,255,255,.14); color:#fff; font-size:34px; line-height:1; width:52px; height:52px; border-radius:50%; cursor:pointer}
.lb button:hover{background:rgba(255,255,255,.28)}
.lb-x{top:16px; right:16px}
.lb-p{left:16px; top:50%; transform:translateY(-50%)}
.lb-f{right:16px; top:50%; transform:translateY(-50%)}
@media (max-width:600px){ .lb-p,.lb-f{top:auto; bottom:18px; transform:none} }

/* partner logos */
.pcard em.role{font-style:normal; font-size:14px; line-height:1.35; color:#5B4E44; margin-top:-2px}
.hostcard{margin-top:32px; max-width:1200px; display:flex; align-items:center; gap:clamp(20px,3vw,40px); background:#fff; border:2px solid var(--dk-yellow); border-left:8px solid var(--dk-yellow); border-radius:6px 16px 16px 6px; padding:20px clamp(20px,3vw,32px)}
.hostcard img{height:76px; width:auto; flex:none}
.hostcard div{display:flex; flex-direction:column; gap:4px}
.hostcard small{font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--dk-teal-d)}
.hostcard b{font-weight:600; font-size:19px; line-height:1.3}
.hostcard span{font-size:15px; font-weight:600; color:var(--dk-teal-d)}
.hostcard + .pcards{margin-top:14px}
@media (max-width:600px){ .hostcard{flex-direction:column; align-items:flex-start} .hostcard img{height:62px} }
.grp{margin:26px 0 -18px; font-weight:700; font-size:15px; color:#23343A; display:flex; align-items:center; gap:10px}
.grp::before{content:""; width:22px; height:3px; background:var(--dk-yellow)}
.hin{max-width:1060px !important}
.hin .kick2{font-size:clamp(22px,2.7vw,36px) !important; font-weight:700 !important; color:var(--dk-teal-d) !important; line-height:1.2 !important; max-width:none; margin-left:auto; margin-right:auto; text-wrap:balance}
@media (min-width:700px){ .hin .kick2{white-space:nowrap; font-size:min(36px,2.35vw) !important} }
.herologo{display:block; height:clamp(92px,11vw,140px); width:auto; margin:clamp(18px,2.4vw,28px) auto 0}
.hin .herologo + h1{margin-top:clamp(10px,1.4vw,18px) !important; margin-bottom:clamp(8px,1vw,14px) !important}
.pcards.withlogo .pcard{gap:4px}
.plogo{height:80px; display:flex; align-items:center; margin:2px 0 10px}
.plogo img{max-height:60px; max-width:190px; width:auto; height:auto; object-fit:contain}
.plogo img.sq{max-height:68px}
.lwall img[data-logo="ucad"],.lwall img[data-logo="esepf"],.lwall img[data-logo="udea"]{max-height:80px}
.plogo img.lg-udea{max-height:80px}
.lwall div:has(img[data-logo="udea"]){padding:6px}
.lwall img[data-logo="udea"]{max-height:92px !important}
.plogo.none{font-family:var(--serif); font-weight:600; font-size:26px; color:var(--dk-teal-d); letter-spacing:.01em}
.hostlogo{height:58px; width:auto; display:block; margin-top:6px; mix-blend-mode:multiply}
.lwall{display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:12px; margin-top:22px; max-width:1200px}
.lwall div{background:#fff; border:1px solid var(--line); border-radius:12px; height:104px; display:flex; align-items:center; justify-content:center; padding:14px 18px}
.lwall img{max-height:62px; max-width:100%; width:auto; height:auto; object-fit:contain}
.lwall .host{grid-column:span 2; border-color:var(--dk-yellow); border-width:2px}
.lwall .host img{max-height:70px}
.sup-with{margin-top:clamp(48px,6vw,72px)}
@media (max-width:600px){ .lwall{grid-template-columns:repeat(2,minmax(0,1fr))} .lwall .host{grid-column:span 2} }

/* full-width text (no max-width on text blocks) */
.kick,.hero .meta p,h2.t,.cols .txt p,.dhead h1,.inline-nums,.axes,.axes.bx,.tl,.support,.lead2,.objs .omain,.support-sec .sup-lead,.cart-t,.whosec .sup-lead,.bxnote,.occols,ul.ticks,.scinote,.check{max-width:none !important}

/* language switcher as links */
.langs a.lsw{display:inline-flex; align-items:center; justify-content:center; font:inherit; font-size:13px; font-weight:700; min-width:44px; height:40px; border:0; border-left:1.5px solid var(--line); background:transparent; color:var(--ink); text-decoration:none}
.langs a.lsw:first-child{border-left:0}
.langs a.lsw[aria-current="true"]{background:var(--dk-teal-d); color:#fff}
@media (max-width:760px){ .langs a.lsw{min-width:34px; height:34px; font-size:12px} }
