/*
Theme Name: Aigba — Passage
Description: La maquette Aigba validée, adaptée à WordPress. Pages éditables, publications, import initial en brouillon.
Version: 1.1.1
Requires at least: 6.8
Requires PHP: 7.4
Author: Aigba Conseil & Gestion
Text Domain: aigba-passage
*/
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Instrument+Serif:ital@0;1&display=swap');

:root {
  --paper: #eeede8;
  --ink: #202a27;
  --green: #202e29;
  --copper: #a14f30;
  --patina: #d2b59c;
  --muted: #626761;
  --line: #c8cbc3;
  --milk: #faf7f0;
  color-scheme: light;
  font-family: 'DM Sans', Arial, sans-serif;
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 132px; }
body { margin: 0; }
h1, h2, h3, p, figure { margin: 0; }
h1, h2, h3 { font-weight: 500; text-wrap: balance; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; }
img { display: block; max-width: 100%; height: auto; }
a, button { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible {
  outline: 2px solid currentColor; outline-offset: 6px;
}
em { font-family: 'Instrument Serif', Georgia, serif; font-weight: 400; }
.shell { width: min(1320px, calc(100% - 112px)); margin-inline: auto; }
.eyebrow { font-size: 11px; line-height: 1.6; letter-spacing: .14em; text-transform: uppercase; font-weight: 500; }
.arrow { display: inline-block; font-size: 1.3em; line-height: 1; flex-shrink: 0; }
.text-link {
  display: inline-flex; align-items: center; gap: 25px; min-height: 46px;
  border-bottom: 1px solid currentColor; padding: 11px 0;
  font-size: 14px; font-weight: 500; line-height: 1.45;
}
.inline-action { margin-top: 28px; }
.skip-link {
  position: absolute; left: 24px; top: 14px; padding: 12px 18px; z-index: 100;
  background: var(--ink); color: var(--paper); transform: translateY(-200%);
}
.skip-link:focus { transform: none; }
.site-header {
  position: sticky; top: 0; z-index: 30; background: var(--paper);
  border-bottom: 1px solid var(--line);
}
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 101px; padding-block: 14px; }
.brand { flex: 0 0 auto; }
.brand img { width: 150px; mix-blend-mode: multiply; }
.site-nav { display: flex; align-items: center; gap: 29px; font-size: 13px; }
.site-nav a { padding: 13px 0; border-bottom: 1px solid transparent; }
.site-nav a:hover, .site-nav a[aria-current="page"] { color: var(--copper); border-color: currentColor; }
.site-nav .nav-contact { display: flex; align-items: center; gap: 22px; border-color: var(--ink); margin-left: 8px; }
.menu-button { display: none; align-items: center; gap: 12px; border: 0; padding: 14px 0; background: none; font-size: 14px; }
.menu-bars { width: 22px; display: grid; gap: 6px; }
.menu-bars::before, .menu-bars::after { content: ''; display: block; height: 1px; background: currentColor; }

.home-hero { display: grid; grid-template-columns: 54% 46%; min-height: 755px; }
.hero-copy { padding: 48px clamp(32px, 5vw, 76px) 45px max(5vw, calc((100vw - 1320px)/2)); }
.hero-copy > .eyebrow { color: var(--copper); margin-bottom: 29px; font-size: 16px; font-weight: 600; line-height: 1.55; letter-spacing: .08em; }
.home-hero h1 { font-size: clamp(65px, 6.65vw, 96px); line-height: .99; letter-spacing: -.058em; max-width: 11ch; }
.home-hero h1 span, .home-hero h1 em { display: block; }
.home-hero h1 em { color: var(--copper); font-size: 1.13em; letter-spacing: -.035em; margin-top: 4px; }
.hero-intro { margin-top: 28px; max-width: 540px; }
.hero-intro p { font-size: 16px; line-height: 1.75; }
.hero-intro p + p { margin-top: 14px; color: var(--muted); }
.hero-intro .inline-action { margin-top: 19px; }
.hero-art { position: relative; min-width: 0; overflow: hidden; }
.hero-art > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 52% 47%; }
.hero-art figcaption { position: absolute; bottom: 24px; left: 28px; right: 28px; display: flex; justify-content: space-between; align-items: center; background: #202e29e8; color: var(--paper); padding: 14px 17px; font-size: 12px; letter-spacing: .03em; }
.hero-art figcaption span { font-size: 20px; color: var(--patina); }

.section { padding-block: 90px; }
.section-head { display: grid; grid-template-columns: 20% 1fr; align-items: start; gap: 0; margin-bottom: 46px; }
.section-index { font: 400 43px/1 'Instrument Serif', Georgia, serif; color: var(--copper); }
.section-head h2 { font-size: clamp(34px, 3.8vw, 54px); line-height: 1.13; letter-spacing: -.045em; max-width: 23ch; }
.service-rows { margin-left: 20%; }
.service-row { display: grid; grid-template-columns: 70px 1fr 35px; gap: 22px; align-items: start; padding: 33px 0; border-top: 1px solid var(--line); }
.service-row:last-child { border-bottom: 1px solid var(--line); }
.service-number { font: 400 43px/1.1 'Instrument Serif', Georgia, serif; color: var(--copper); }
.service-row h3 { font-size: clamp(26px, 2.8vw, 39px); line-height: 1.13; letter-spacing: -.035em; max-width: 25ch; }
.service-row p { max-width: 680px; margin-top: 18px; font-size: 16px; line-height: 1.8; color: var(--muted); }
.service-row > .arrow { justify-self: end; margin-top: 6px; font-size: 25px; }
.service-row:hover h3 { color: var(--copper); }
.section-tail { margin-left: 20%; margin-top: 29px; }
.section-tail .inline-action { margin: 0; }

.experience-band { background: var(--green); color: var(--paper); padding-block: 76px; }
.experience-grid { display: grid; grid-template-columns: 27% 1fr; gap: 76px; }
.experience-number { border-right: 1px solid #ffffff29; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.experience-number > span { font-size: clamp(170px, 17vw, 245px); font-weight: 400; line-height: .9; letter-spacing: -.085em; color: var(--patina); }
.experience-number > small { font-size: 14px; margin-top: 26px; letter-spacing: .02em; }
.experience-copy h2 { font-size: clamp(34px, 3.5vw, 49px); line-height: 1.13; letter-spacing: -.04em; max-width: 21ch; margin-bottom: 27px; }
.experience-copy p { font-size: 16px; line-height: 1.85; color: #d4d9d2; max-width: 720px; }
.experience-copy p + p { margin-top: 18px; }
.experience-copy .text-link { color: var(--paper); }
.involvement { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; }
.involvement .section-head { grid-template-columns: 65px 1fr; margin: 0; }
.involvement .section-head h2 { font-size: clamp(33px, 3.3vw, 46px); }
.involvement-copy { font-size: 18px; line-height: 1.8; padding-top: 6px; max-width: 570px; color: var(--muted); }

.page-hero { padding-block: 62px 66px; }
.page-hero-green { background: var(--green); color: var(--paper); }
.page-hero-copper { background: var(--copper); color: var(--milk); }
.page-hero .eyebrow { color: var(--patina); margin-bottom: 35px; }
.page-hero-copper .eyebrow { color: #f1d6c7; }
.page-hero-grid { display: grid; grid-template-columns: 62% 38%; align-items: end; gap: 0; }
.page-hero h1 { font-size: clamp(52px, 6.4vw, 92px); line-height: 1.02; letter-spacing: -.05em; max-width: 16ch; }
.page-hero h1 em { color: var(--patina); font-size: 1.08em; }
.page-hero-copper h1 em { color: #ead3bd; }
.page-lead { padding: 0 0 8px 15%; }
.page-lead p { font-size: 17px; line-height: 1.8; color: #d9dfd7; }
.page-hero-copper .page-lead p { color: #f5e7dc; }
.reading-layout { display: grid; grid-template-columns: 200px 1fr; gap: 80px; align-items: start; padding-block: 64px 90px; }
.section-nav { position: sticky; top: 135px; display: flex; flex-direction: column; gap: 0; }
.section-nav a { display: flex; gap: 13px; font-size: 12px; line-height: 1.65; padding: 15px 0; border-top: 1px solid var(--line); color: var(--muted); }
.section-nav a:last-child { border-bottom: 1px solid var(--line); }
.section-nav a span { font: 400 21px/1.1 'Instrument Serif', Georgia, serif; color: var(--copper); }
.section-nav a:hover, .section-nav a.is-active { color: var(--copper); }
.editorial-section { padding-block: 42px 52px; border-top: 1px solid var(--line); }
.editorial-section:first-child { border-top: 0; padding-top: 0; }
.editorial-section:last-child { padding-bottom: 0; }
.editorial-heading { display: grid; grid-template-columns: 45px 1fr; gap: 23px; align-items: start; }
.editorial-heading .section-index { font-size: 35px; padding-top: 3px; }
.editorial-heading h2 { font-size: clamp(29px, 3vw, 42px); line-height: 1.16; letter-spacing: -.035em; max-width: 27ch; }
.prose { font-size: 17px; line-height: 1.85; color: var(--muted); }
.prose p + p { margin-top: 21px; }
.editorial-section > .prose { margin: 26px 0 0 68px; max-width: 800px; }
.prose strong { color: var(--ink); font-weight: 500; }
.editorial-list { list-style: none; padding: 0; margin: 25px 0; border-top: 1px solid var(--line); color: var(--ink); }
.editorial-list li { position: relative; padding: 14px 0 14px 24px; border-bottom: 1px solid var(--line); font-size: 15px; line-height: 1.8; }
.editorial-list li::before { content: ''; position: absolute; width: 4px; height: 4px; left: 0; top: 27px; background: var(--copper); }
.wide-art { height: 330px; overflow: hidden; }
.wide-art img { height: 100%; width: 100%; object-fit: cover; object-position: center 52%; }
.africa-intro { display: grid; grid-template-columns: 1.2fr 1fr; gap: 80px; padding-block: 56px 6px; }
.africa-intro p { font-size: 17px; line-height: 1.8; max-width: 650px; }
.africa-intro p + p { color: var(--muted); }
.page-canada-afrique .page-hero h1 { max-width: 14ch; }
.mineral-section { background: var(--green); color: var(--paper); padding: 44px 36px 50px; margin: 20px -36px 0; border: 0; }
.mineral-section .section-index { color: var(--patina); }
.mineral-section .prose { color: #d4d9d2; }
.mineral-section .prose strong { color: var(--paper); }
.mineral-section + .editorial-section { border-top: 0; margin-top: 16px; }

.about-hero { display: grid; grid-template-columns: 62% 38%; min-height: 650px; border-bottom: 1px solid var(--line); }
.about-hero-copy { padding: 52px 80px 54px 0; }
.about-hero .eyebrow { color: var(--copper); margin-bottom: 30px; }
.about-hero h1 { font-size: clamp(54px, 5.9vw, 84px); line-height: 1.05; letter-spacing: -.05em; max-width: 13ch; }
.about-hero h1 .person-given, .about-hero h1 .person-family { display: block; }
.about-hero h1 .person-family { white-space: nowrap; }
.about-hero h1 em { display: block; color: var(--copper); font-size: 1.08em; }
.about-intro { margin-top: 30px; max-width: 650px; font-size: 17px; }
.about-art { position: relative; overflow: hidden; margin-block: 36px; }
.about-art img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 62% center; }
.about-sections { padding-block: 28px 80px; }
.about-section { display: grid; grid-template-columns: 43% 57%; padding-block: 50px; border-bottom: 1px solid var(--line); gap: 0; }
.about-section:last-child { border-bottom: 0; padding-bottom: 0; }
.about-heading { display: grid; grid-template-columns: 50px 1fr; gap: 18px; padding-right: 65px; }
.about-heading .section-index { font-size: 34px; padding-top: 5px; }
.about-heading h2 { font-size: clamp(28px, 2.9vw, 39px); line-height: 1.2; letter-spacing: -.035em; }
.about-section > .prose { font-size: 17px; }
.about-section-last > .prose p:nth-child(2) { color: var(--ink); border-left: 2px solid var(--copper); padding-left: 24px; }

.contact-panel { background: var(--green); color: var(--paper); }
.contact-grid { display: grid; grid-template-columns: 57% 43%; padding-block: 66px 62px; }
.contact-copy { padding-right: 65px; }
.contact-copy h2 { font-size: clamp(42px, 5.2vw, 74px); line-height: 1.07; letter-spacing: -.045em; max-width: 15ch; }
.contact-copy h2 em { font-size: 1.14em; color: var(--patina); }
.contact-copy > p { font-size: 16px; line-height: 1.8; max-width: 580px; color: #d4d9d2; margin-top: 23px; }
.contact-copy .inline-action { margin-top: 23px; }
.contact-info { padding-left: 16%; border-left: 1px solid #ffffff29; display: flex; flex-direction: column; justify-content: space-between; gap: 29px; }
.contact-name { font-size: 17px; font-weight: 500; }
.contact-role, .contact-location { font-size: 13px; line-height: 1.8; color: #c8d0c8; }
.contact-role { margin-top: 5px; }
.contact-email { display: flex; justify-content: space-between; align-items: center; gap: 15px; padding-block: 14px; border-bottom: 1px solid #c8d0c8; font-size: clamp(22px, 2.3vw, 32px); letter-spacing: -.035em; overflow-wrap: anywhere; }
.contact-email .arrow { color: var(--patina); }
.footer-bottom { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 50px; border-top: 1px solid #ffffff29; padding-block: 34px 37px; align-items: start; }
.footer-brand > span { display: block; font-size: 33px; letter-spacing: .12em; line-height: 1; }
.footer-brand small { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: .1em; margin-top: 10px; }
.footer-nav { display: flex; flex-wrap: wrap; gap: 12px 24px; font-size: 12px; line-height: 1.7; max-width: 300px; }
.footer-nav a:hover, .footer-meta a:hover { color: var(--patina); }
.footer-meta { display: flex; flex-direction: column; gap: 18px; font-size: 12px; line-height: 1.7; justify-self: end; }
.footer-meta > span { color: #c8d0c8; }
.footer-meta a { display: inline-flex; gap: 21px; }
.contact-page { background: var(--green); color: var(--paper); }
.contact-page-inner { display: grid; grid-template-columns: 57% 43%; min-height: 650px; padding-block: 68px 80px; align-items: center; }
.contact-page-copy { padding-right: 80px; }
.contact-page .eyebrow { color: var(--patina); margin-bottom: 31px; }
.contact-page h1 { font-size: clamp(68px, 7.2vw, 105px); line-height: 1; letter-spacing: -.055em; max-width: 11ch; }
.contact-page h1 em { color: var(--patina); font-size: 1.1em; }
.contact-page .prose { margin-top: 34px; color: #d4d9d2; font-size: 17px; max-width: 580px; }
.contact-page-details { padding-left: 16%; border-left: 1px solid #ffffff29; display: flex; flex-direction: column; gap: 20px; font-size: 15px; line-height: 1.8; }
.contact-page-details .strong-line { font-size: 21px; line-height: 1.5; color: var(--paper); }
.contact-page-details p:has(a) { border-bottom: 1px solid #ffffff70; padding-block: 9px; margin-block: 3px; font-size: clamp(26px, 2.7vw, 38px); letter-spacing: -.04em; overflow-wrap: anywhere; }
.contact-page-details .inline-action { margin-top: 10px; }
.contact-page-details .text-link { background: var(--patina); color: var(--green); padding: 15px 22px; gap: 45px; border: 0; }
.contact-footer-only .footer-bottom { border-top: 1px solid #ffffff29; }

.publications-hero { padding-block: 58px 48px; }
.publications-hero > .eyebrow { color: var(--copper); margin-bottom: 28px; }
.publications-hero-grid { display: grid; grid-template-columns: 60% 40%; align-items: end; }
.publications-hero h1 { font: italic 400 clamp(80px, 9.2vw, 132px)/1 'Instrument Serif', Georgia, serif; letter-spacing: -.045em; color: var(--copper); }
.publications-hero-grid > p { font-size: 17px; line-height: 1.8; max-width: 460px; padding: 0 0 7px 35px; color: var(--muted); }
.publications-feed { padding-bottom: 80px; }
.editorial-preview-note { display: flex; gap: 12px; align-items: flex-start; padding: 15px 19px; border: 1px solid #a14f3052; background: #a14f3006; color: var(--muted); font-size: 12px; line-height: 1.7; margin-bottom: 28px; }
.editorial-preview-note strong { color: var(--ink); font-weight: 500; }
.preview-marker { width: 5px; height: 5px; flex: 0 0 5px; border-radius: 50%; background: var(--copper); margin-top: 7px; }
.publication-card { display: block; min-width: 0; }
.publication-card h2, .publication-card h3 { font-size: 34px; line-height: 1.16; letter-spacing: -.035em; margin-top: 23px; }
.publication-card-copy > p { margin-top: 19px; font-size: 16px; line-height: 1.8; color: var(--muted); max-width: 610px; }
.publication-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 11px 20px; font-size: 10px; line-height: 1.6; letter-spacing: .08em; text-transform: uppercase; color: var(--copper); }
.publication-status { display: inline-block; border: 1px solid #a14f305c; padding: 4px 8px; letter-spacing: .025em; font-size: 10px; white-space: nowrap; }
.publication-meta time { color: var(--muted); letter-spacing: .02em; }
.publication-read { display: inline-flex; align-items: center; gap: 25px; font-size: 13px; font-weight: 500; padding-block: 12px; margin-top: 22px; border-bottom: 1px solid currentColor; }
.publication-card:hover h2, .publication-card:hover h3 { color: var(--copper); }
.publication-feature { display: grid; grid-template-columns: 42% 58%; min-height: 490px; background: var(--green); color: var(--paper); }
.publication-feature-art { position: relative; overflow: hidden; }
.publication-feature-art img { position: absolute; width: 100%; height: 100%; inset: 0; object-fit: cover; object-position: 52% center; }
.publication-feature .publication-card-copy { padding: 44px 48px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.publication-feature h2 { font-size: clamp(33px, 3.4vw, 48px); line-height: 1.14; max-width: 24ch; }
.publication-feature .publication-meta { color: var(--patina); }
.publication-feature .publication-status { border-color: #d2b59c70; }
.publication-feature .publication-card-copy > p, .publication-feature time { color: #d4d9d2; }
.publication-feature .publication-read { color: var(--paper); }
.publication-feature:hover h2 { color: var(--patina); }
.publications-list > .publication-card:not(.publication-feature) { margin-top: 42px; padding-block: 35px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.publications-list > .publication-card:not(.publication-feature) .publication-card-copy { display: grid; grid-template-columns: 27% 1fr; column-gap: 55px; align-items: start; }
.publications-list > .publication-card:not(.publication-feature) .publication-meta { grid-row: 1/4; flex-direction: column; align-items: flex-start; margin-top: 7px; }
.publications-list > .publication-card:not(.publication-feature) h2 { margin-top: 0; }
.publications-list > .publication-card:not(.publication-feature) p, .publications-list > .publication-card:not(.publication-feature) .publication-read { grid-column: 2; }
.publications-list > .publication-card:not(.publication-feature) .publication-read { justify-self: start; }
.publications-empty { padding-block: 40px 60px; font-size: 18px; color: var(--muted); }
.publication-teaser { border-top: 1px solid var(--line); padding-top: 65px; }
.publication-section-intro { margin-top: 20px; font-size: 16px; line-height: 1.8; color: var(--muted); max-width: 660px; }
.publication-teaser-grid { margin-left: 20%; display: grid; grid-template-columns: 1fr 1fr; gap: 42px; }
.publication-teaser .publication-card { padding-block: 27px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.publication-teaser .publication-card h3 { font-size: 31px; }
.publication-teaser .publication-card-copy > p { font-size: 15px; }
.publication-home-note { margin: 20px 0 0 20%; font-size: 12px; line-height: 1.7; color: var(--muted); }
.publication-section-action { margin: 20px 0 0 20%; }
.article-hero { padding-block: 28px 0; }
.article-back { display: inline-flex; align-items: center; gap: 16px; min-height: 44px; font-size: 12px; color: var(--muted); margin-bottom: 27px; }
.article-back:hover { color: var(--copper); }
.article-hero-grid { display: grid; grid-template-columns: minmax(0,1fr) 240px; gap: 70px; align-items: end; }
.article-hero h1 { font-size: clamp(43px, 4.8vw, 68px); line-height: 1.08; letter-spacing: -.045em; margin-top: 25px; max-width: 24ch; }
.article-lead { font-size: 19px; line-height: 1.7; margin-top: 27px; color: var(--muted); max-width: 760px; }
.article-author { border-left: 1px solid var(--line); padding: 10px 0 7px 28px; }
.article-author > .eyebrow { color: var(--copper); font-size: 10px; margin-bottom: 15px; }
.article-author > a:not(.article-share) { font-size: 17px; line-height: 1.5; font-weight: 500; }
.article-author > a:not(.article-share):hover { color: var(--copper); }
.article-author > p:not(.eyebrow) { font-size: 12px; line-height: 1.8; color: var(--muted); margin-top: 11px; }
.article-share { font-size: 12px; margin-top: 18px; gap: 15px; }
.article-preview-note { margin: 34px 0 0; }
.article-layout { padding-top: 45px; }
.article-layout > * { min-width: 0; }
.article-body { max-width: 820px; }
.article-opening { font-size: 18px; line-height: 1.85; margin-bottom: 35px; max-width: 720px; color: var(--ink); }
.article-body .editorial-heading h2 { font-size: 34px; }
.article-body .editorial-section > .prose { margin-left: 68px; font-size: 17px; }
.article-takeaway { background: #e3e2da; border-top: 2px solid var(--copper); padding: 24px 27px; margin-top: 28px; font-size: 18px; line-height: 1.8; color: var(--ink); }
.article-body .prose a { text-decoration: underline; text-underline-offset: 4px; }
.article-end { border-top: 1px solid var(--line); padding-top: 27px; margin-top: 35px; }
.article-next { display: grid; grid-template-columns: 1fr 25px; gap: 13px 24px; margin-top: 32px; padding-top: 27px; border-top: 1px solid var(--line); }
.article-next > span:first-child { grid-column: 1/-1; font-size: 11px; color: var(--copper); text-transform: uppercase; letter-spacing: .08em; }
.article-next strong { font-size: 25px; line-height: 1.3; font-weight: 500; letter-spacing: -.025em; }
.article-next .arrow { font-size: 23px; align-self: center; }
.article-next:hover strong { color: var(--copper); }

@media (min-width: 1550px) {
  .hero-copy { padding-left: max(5vw, calc((100vw - 1320px)/2)); padding-right: 90px; }
  .home-hero { min-height: 800px; }
}
@media (max-width: 1100px) {
  .site-nav { gap: 22px; }
  .reading-layout { grid-template-columns: 160px 1fr; gap: 45px; }
  .hero-copy { padding-left: 5vw; padding-right: 36px; }
  .home-hero h1 { font-size: 6.8vw; }
  .about-hero-copy { padding-right: 50px; }
  .about-section { grid-template-columns: 42% 58%; }
  .about-heading { padding-right: 35px; }
}
@media (max-width: 980px) {
  html { scroll-padding-top: 108px; }
  .shell { width: calc(100% - 64px); }
  .header-inner { min-height: 83px; padding-block: 10px; flex-wrap: wrap; }
  .brand img { width: 132px; }
  .menu-button { display: flex; }
  .site-nav { display: none; flex-basis: 100%; flex-direction: column; align-items: flex-start; gap: 0; padding: 9px 0 8px; border-top: 1px solid var(--line); margin-top: 9px; font-size: 16px; }
  .site-nav.is-open { display: flex; }
  .site-nav a { width: 100%; padding: 13px 0; }
  .site-nav .nav-contact { width: auto; margin: 0; gap: 30px; }
  .home-hero { min-height: 680px; }
  .hero-copy { padding-block: 35px; padding-right: 30px; }
  .hero-copy > .eyebrow { font-size: 14px; margin-bottom: 25px; }
  .hero-intro p { font-size: 15px; }
  .home-hero h1 { font-size: 7.3vw; }
  .experience-grid { grid-template-columns: 26% 1fr; gap: 45px; }
  .experience-number > span { font-size: 150px; }
  .experience-copy p { font-size: 15px; }
  .reading-layout { grid-template-columns: 1fr; gap: 35px; padding-top: 28px; }
  .section-nav { position: static; flex-direction: row; overflow-x: auto; gap: 25px; padding-bottom: 12px; }
  .section-nav a { flex: 0 0 auto; max-width: 175px; border-bottom: 1px solid var(--line); font-size: 12px; padding: 12px 0; }
  .section-nav a span { font-size: 22px; }
  .editorial-section > .prose { max-width: none; }
  .page-hero-grid { grid-template-columns: 60% 40%; }
  .page-hero h1 { font-size: 7vw; }
  .page-lead { padding-left: 12%; }
  .page-lead p { font-size: 16px; }
  .about-hero { grid-template-columns: 63% 37%; }
  .about-hero h1 { font-size: 6.6vw; }
  .about-hero-copy { padding-block: 40px; padding-right: 40px; }
  .about-intro { font-size: 16px; }
  .about-heading { grid-template-columns: 34px 1fr; gap: 14px; padding-right: 30px; }
  .about-heading h2 { font-size: 29px; }
  .about-section > .prose { font-size: 16px; }
  .contact-info { padding-left: 11%; }
  .contact-copy { padding-right: 40px; }
  .contact-page-copy { padding-right: 45px; }
  .contact-page-details { padding-left: 10%; }
  .publications-hero h1 { font-size: 11vw; }
  .publications-hero-grid > p { font-size: 16px; padding-left: 20px; }
  .publication-feature { grid-template-columns: 40% 60%; min-height: 440px; }
  .publication-feature .publication-card-copy { padding: 32px; }
  .publication-feature h2 { font-size: 35px; }
  .publication-teaser-grid { gap: 28px; }
  .publication-teaser .publication-card h3 { font-size: 27px; }
  .article-hero-grid { grid-template-columns: 1fr; gap: 28px; }
  .article-hero h1 { font-size: 7vw; max-width: 24ch; }
  .article-author { border-left: 0; border-top: 1px solid var(--line); padding: 21px 0 0; }
  .article-author > .eyebrow { margin-bottom: 9px; }
  .article-author > p:not(.eyebrow) { margin-top: 6px; }
  .article-preview-note { margin-top: 27px; }
  .article-layout { padding-top: 24px; }
}
@media (max-width: 700px) {
  .shell { width: calc(100% - 40px); }
  .home-hero { grid-template-columns: 1fr; min-height: 0; }
  .hero-copy { padding: 34px 20px 35px; }
  .home-hero h1 { font-size: clamp(57px, 12vw, 80px); max-width: 12ch; }
  .home-hero h1 em { font-size: 1.12em; }
  .hero-copy > .eyebrow { font-size: 14px; max-width: 32ch; margin-bottom: 27px; }
  .hero-intro { margin-top: 25px; max-width: 550px; }
  .hero-intro p { font-size: 16px; line-height: 1.75; }
  .hero-art { height: 390px; }
  .hero-art > img { object-position: 50% 52%; }
  .hero-art figcaption { left: 20px; right: 20px; bottom: 20px; font-size: 11px; padding: 12px 15px; }
  .section { padding-block: 48px; }
  .section-head { grid-template-columns: 43px 1fr; gap: 10px; margin-bottom: 28px; }
  .section-index { font-size: 33px; }
  .section-head h2 { font-size: 34px; line-height: 1.15; }
  .service-rows, .section-tail { margin-left: 0; }
  .service-row { grid-template-columns: 35px 1fr 22px; gap: 13px; padding-block: 25px; }
  .service-number { font-size: 31px; }
  .service-row h3 { font-size: 27px; }
  .service-row p { font-size: 15px; line-height: 1.8; margin-top: 14px; }
  .service-row > .arrow { font-size: 22px; }
  .section-tail { margin-top: 22px; }
  .experience-band { padding-block: 42px; }
  .experience-grid { grid-template-columns: 1fr; gap: 33px; }
  .experience-number { border-right: 0; border-bottom: 1px solid #ffffff29; padding-bottom: 31px; flex-direction: row; align-items: end; justify-content: flex-start; gap: 30px; }
  .experience-number > span { font-size: 132px; }
  .experience-number > small { margin: 0 0 8px; font-size: 13px; }
  .experience-copy h2 { font-size: 35px; margin-bottom: 23px; }
  .experience-copy p { font-size: 16px; line-height: 1.8; }
  .involvement { grid-template-columns: 1fr; gap: 26px; }
  .involvement .section-head { grid-template-columns: 43px 1fr; gap: 10px; }
  .involvement .section-head h2 { font-size: 34px; }
  .involvement-copy { padding-left: 53px; padding-top: 0; font-size: 16px; }
  .page-hero { padding-block: 37px 41px; }
  .page-hero .eyebrow { margin-bottom: 25px; }
  .page-hero-grid { grid-template-columns: 1fr; gap: 26px; }
  .page-hero h1 { font-size: clamp(46px, 11.8vw, 68px); max-width: 16ch; line-height: 1.05; }
  .page-hero h1 em { font-size: 1.1em; }
  .page-lead { padding: 0; max-width: 550px; }
  .page-lead p { font-size: 16px; line-height: 1.8; }
  .reading-layout { padding-block: 22px 48px; gap: 25px; }
  .section-nav { gap: 24px; }
  .section-nav a { max-width: 155px; font-size: 11px; padding-block: 12px; gap: 9px; }
  .editorial-section { padding-block: 33px 38px; }
  .editorial-heading { grid-template-columns: 29px 1fr; gap: 17px; }
  .editorial-heading .section-index { font-size: 30px; padding-top: 3px; }
  .editorial-heading h2 { font-size: 30px; line-height: 1.17; }
  .editorial-section > .prose { margin: 23px 0 0 46px; }
  .prose { font-size: 16px; line-height: 1.85; }
  .prose p + p { margin-top: 20px; }
  .editorial-list { margin-block: 22px; }
  .editorial-list li { font-size: 15px; line-height: 1.8; padding-left: 20px; }
  .wide-art { height: 235px; }
  .africa-intro { grid-template-columns: 1fr; gap: 23px; padding-top: 34px; padding-bottom: 12px; }
  .africa-intro p { font-size: 16px; }
  .mineral-section { padding: 32px 20px 36px; margin-inline: -20px; margin-top: 0; }
  .mineral-section + .editorial-section { margin-top: 0; }
  .about-hero { grid-template-columns: 1fr; min-height: 0; }
  .about-hero-copy { padding: 35px 0 30px; }
  .about-hero .eyebrow { margin-bottom: 25px; }
  .about-hero h1 { font-size: clamp(48px, 12.4vw, 70px); max-width: 13ch; }
  .about-intro { margin-top: 25px; font-size: 16px; }
  .about-art { height: 290px; margin: 0 0 30px; }
  .about-art img { object-position: 50% 53%; }
  .about-sections { padding-block: 0 45px; }
  .about-section { grid-template-columns: 1fr; gap: 24px; padding-block: 35px; }
  .about-heading { grid-template-columns: 29px 1fr; gap: 17px; padding-right: 0; }
  .about-heading .section-index { font-size: 30px; padding-top: 3px; }
  .about-heading h2 { font-size: 31px; }
  .about-section > .prose { padding-left: 46px; }
  .about-section-last > .prose p:nth-child(2) { padding-left: 18px; }
  .contact-grid { grid-template-columns: 1fr; padding-block: 42px 38px; }
  .contact-copy { padding-right: 0; }
  .contact-copy h2 { font-size: 49px; max-width: 15ch; }
  .contact-copy > p { font-size: 16px; margin-top: 24px; }
  .contact-info { padding: 27px 0 0; border: 0; border-top: 1px solid #ffffff29; margin-top: 32px; gap: 25px; }
  .contact-name { font-size: 16px; }
  .contact-email { font-size: 27px; }
  .contact-role, .contact-location { font-size: 13px; }
  .footer-bottom { grid-template-columns: 1fr 1fr; gap: 31px 20px; padding-block: 29px; }
  .footer-brand > span { font-size: 29px; }
  .footer-nav { flex-direction: column; gap: 9px; font-size: 12px; }
  .footer-meta { grid-column: 1/-1; justify-self: stretch; flex-direction: row; justify-content: space-between; gap: 18px; font-size: 11px; }
  .contact-page-inner { grid-template-columns: 1fr; min-height: 0; padding-block: 38px 47px; }
  .contact-page-copy { padding-right: 0; }
  .contact-page .eyebrow { margin-bottom: 24px; }
  .contact-page h1 { font-size: clamp(64px, 15vw, 84px); }
  .contact-page .prose { margin-top: 29px; font-size: 16px; }
  .contact-page-details { padding: 29px 0 0; border: 0; border-top: 1px solid #ffffff29; margin-top: 31px; gap: 17px; }
  .contact-page-details .strong-line { font-size: 20px; }
  .contact-page-details p:has(a) { font-size: 32px; padding-block: 11px; }
  .contact-page-details .text-link { font-size: 14px; }
  .publications-hero { padding-block: 34px 29px; }
  .publications-hero > .eyebrow { font-size: 10px; margin-bottom: 23px; }
  .publications-hero-grid { grid-template-columns: 1fr; gap: 23px; }
  .publications-hero h1 { font-size: clamp(66px, 17vw, 95px); }
  .publications-hero-grid > p { padding: 0; font-size: 16px; }
  .publications-feed { padding-bottom: 45px; }
  .editorial-preview-note { padding: 13px 15px; font-size: 11px; margin-bottom: 23px; }
  .publication-feature { grid-template-columns: 1fr; min-height: 0; }
  .publication-feature-art { height: 200px; grid-row: 2; }
  .publication-feature-art img { object-position: 50% 45%; }
  .publication-feature .publication-card-copy { padding: 27px 23px 31px; grid-row: 1; }
  .publication-feature h2 { font-size: 32px; margin-top: 23px; }
  .publication-card-copy > p { font-size: 15px; margin-top: 18px; }
  .publication-meta { font-size: 9px; gap: 10px 15px; }
  .publication-status { font-size: 9px; padding: 4px 7px; }
  .publication-read { font-size: 12px; margin-top: 18px; }
  .publications-list > .publication-card:not(.publication-feature) { margin-top: 28px; padding-block: 26px; }
  .publications-list > .publication-card:not(.publication-feature) .publication-card-copy { display: block; }
  .publications-list > .publication-card:not(.publication-feature) .publication-meta { flex-direction: row; margin: 0; }
  .publications-list > .publication-card:not(.publication-feature) h2 { font-size: 29px; margin-top: 22px; }
  .publication-teaser { padding-top: 41px; }
  .publication-section-intro { font-size: 15px; margin-top: 17px; }
  .publication-teaser-grid { grid-template-columns: 1fr; margin-left: 0; gap: 0; }
  .publication-teaser .publication-card { padding-block: 25px; border-bottom: 0; }
  .publication-teaser .publication-card:last-child { border-bottom: 1px solid var(--line); }
  .publication-teaser .publication-card h3 { font-size: 29px; }
  .publication-home-note, .publication-section-action { margin-left: 0; }
  .article-hero { padding-top: 19px; }
  .article-back { font-size: 11px; margin-bottom: 19px; }
  .article-hero h1 { font-size: clamp(36px, 9.5vw, 48px); line-height: 1.12; margin-top: 23px; }
  .article-lead { font-size: 17px; line-height: 1.8; margin-top: 24px; }
  .article-author { padding-top: 19px; }
  .article-author > a:not(.article-share) { font-size: 16px; }
  .article-preview-note { margin-top: 25px; margin-bottom: 0; }
  .article-layout { padding-top: 19px; }
  .article-opening { font-size: 17px; margin-bottom: 27px; }
  .article-body .editorial-heading h2 { font-size: 29px; }
  .article-body .editorial-section > .prose { margin-left: 0; font-size: 16px; }
  .article-takeaway { font-size: 17px; padding: 20px; margin-top: 24px; }
  .article-end { margin-top: 27px; padding-top: 20px; }
  .article-next strong { font-size: 23px; }
}
@media (max-width: 370px) {
  .hero-copy { padding-inline: 18px; }
  .home-hero h1 { font-size: 53px; }
  .editorial-section > .prose, .about-section > .prose, .involvement-copy { margin-left: 0; padding-left: 0; }
  .contact-copy h2 { font-size: 44px; }
  .contact-email { font-size: 24px; }
  .contact-page-details p:has(a) { font-size: 28px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
@media (prefers-reduced-motion: no-preference) {
  .text-link .arrow, .nav-contact .arrow, .service-row > .arrow { transition: transform .2s ease; }
  .text-link:hover .arrow, .nav-contact:hover .arrow, .service-row:hover > .arrow { transform: translate(3px, -3px); }
}

/* Intégration WordPress */
body.admin-bar .site-header { top: 32px; }
body.admin-bar .section-nav { top: 167px; }
.aigba-pagination { display:flex; flex-wrap:wrap; gap:12px; padding-block:35px 10px; font-size:14px; }
.aigba-pagination .page-numbers { padding:10px 15px; border:1px solid var(--line); }
.aigba-pagination .current { background:var(--green); color:var(--paper); }
.aigba-generic-content { margin-top:30px; max-width:820px; }
.article-takeaway { margin-inline:0; }
.article-body .prose h3 { margin-block:25px 14px; font-size:26px; line-height:1.25; color:var(--ink); }
.article-body .prose img { height:auto; }
.article-body .prose figure { margin-block:24px; }
.article-body .prose figcaption { font-size:13px; }
.article-body .prose table { width:100%; border-collapse:collapse; }
.article-body .prose td,.article-body .prose th { padding:12px; border:1px solid var(--line); }
@media(max-width:782px) {
 body.admin-bar .site-header { top:46px; }
 body.admin-bar .section-nav { top:auto; }
}

/* FR / EN : always available in the header, including on small screens. */
.header-inner { column-gap:24px; }
.header-inner > .site-nav { margin-left:auto; }
.header-controls { display:flex; align-items:center; gap:22px; flex:0 0 auto; }
.language-switcher { display:flex; align-items:center; gap:0; font-size:12px; font-weight:500; white-space:nowrap; }
.language-switcher > a, .language-switcher > span { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding-inline:7px; }
.language-switcher > :first-child::after { content:'|'; color:var(--line); padding-left:14px; }
.language-switcher a[aria-current="page"] { color:var(--copper); }
.language-switcher a:hover { text-decoration:underline; text-underline-offset:5px; }
.language-switcher [aria-disabled="true"] { color:var(--muted); opacity:.65; }
@media(min-width:981px) and (max-width:1150px) { .header-inner > .site-nav { gap:16px; } .header-inner { column-gap:16px; } }
@media(max-width:980px) { .header-inner > .site-nav { order:3; margin-left:0; } .header-controls { margin-left:auto; gap:20px; } }
@media(max-width:370px) { .header-controls { gap:12px; } .language-switcher { font-size:11px; } .language-switcher > a, .language-switcher > span { padding-inline:4px; } .language-switcher > :first-child::after { padding-left:8px; } .header-inner { column-gap:12px; } .menu-button { gap:7px; } }

.arrow svg { display:block; }
@media(max-width:370px) { .header-inner .brand img { width:110px; } }
