/* ALMA Consulting — site
   Layout: studio de marque à Brazzaville. Grille 12 colonnes, beaucoup d'air,
   l'anneau du logo sert de motif récurrent ; sections claires alternées avec bandes bleu nuit. */
:root{
  --bg:#F6F8FC; --surface:#FFFFFF; --ink:#0B1426; --muted:#566079; --line:#DDE3EE;
  --cobalt:#0754B8; --cobalt-ink:#0754B8; --navy:#04163A; --navy-2:#0B2350; --sky:#DCE7F7; --sky-2:#B9CFF0;
  --amber:#FFB627; --on-dark:#FFFFFF; --on-dark-muted:#A9BCDF; --todo:#B4530A; --todo-bg:#FFF4E2;
  --f-sans:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --f-mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --s-1:clamp(2.6rem,1.4rem + 4.6vw,5.4rem); --s-2:clamp(2rem,1.3rem + 2.6vw,3.4rem); --s-3:clamp(1.35rem,1.1rem + 0.9vw,1.85rem);
  --s-body:1.0625rem; --s-small:.875rem; --s-label:.75rem;
  --wrap:1200px; --radius:18px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#070E1D; --surface:#0D1830; --ink:#EEF3FB; --muted:#A3B0C8; --line:#1E2C4A;
  --cobalt:#2F7BEA; --cobalt-ink:#7FB0FF; --navy:#04102A; --navy-2:#0B2350; --sky:#13284D; --sky-2:#1F3D6E;
  --todo:#FFC069; --todo-bg:#3A2A10; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#070E1D; --surface:#0D1830; --ink:#EEF3FB; --muted:#A3B0C8; --line:#1E2C4A;
  --cobalt:#2F7BEA; --cobalt-ink:#7FB0FF; --navy:#04102A; --navy-2:#0B2350; --sky:#13284D; --sky-2:#1F3D6E;
  --todo:#FFC069; --todo-bg:#3A2A10; color-scheme:dark}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--f-sans);font-size:var(--s-body);line-height:1.6;margin:0;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--surface)}
img,video{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--cobalt);outline-offset:3px;border-radius:6px}
h1,h2,h3{line-height:1.06;letter-spacing:-.025em;margin:0;text-wrap:balance;font-weight:800}
h1{font-size:var(--s-1)} h2{font-size:var(--s-2)} h3{font-size:var(--s-3);letter-spacing:-.015em}
p{margin:0;max-width:62ch}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.label{font-family:var(--f-mono);font-size:var(--s-label);letter-spacing:.14em;text-transform:uppercase;color:var(--cobalt-ink);font-weight:600}
.lead{font-size:clamp(1.1rem,1rem + .4vw,1.3rem);color:var(--muted);line-height:1.55}
.accent{color:var(--cobalt-ink)}
.u{background:linear-gradient(var(--cobalt),var(--cobalt)) 0 92%/100% .09em no-repeat;padding-bottom:.04em}
.muted{color:var(--muted)}
.stack{display:flex;flex-direction:column;gap:18px}
.sec{padding-block:clamp(64px,8vw,120px)}
.sec-head{display:grid;gap:16px;margin-bottom:clamp(32px,5vw,56px);max-width:760px}

/* ---------- buttons */
.btn{display:inline-flex;align-items:center;gap:10px;font:700 1rem/1 var(--f-sans);padding:16px 22px;border-radius:999px;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform .2s,background .2s,color .2s}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--cobalt);color:#fff}
.btn-ghost{border-color:var(--line);color:var(--ink);background:var(--surface)}
.btn-light{background:#fff;color:#0754B8}
.btn .arr{transition:transform .2s}.btn:hover .arr{transform:translateX(4px)}
.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}

/* ---------- header */
.hdr{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:72px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:800;letter-spacing:.18em;font-size:.82rem;white-space:nowrap}
.mark{position:relative;width:38px;height:38px;border-radius:50%;box-shadow:inset 0 0 0 3.4px var(--cobalt);flex:none;display:grid;place-items:center}
.mark img{width:62%;height:62%}
.mark.lg{width:72px;height:72px;box-shadow:inset 0 0 0 6px currentColor}
.nav{display:flex;align-items:center;gap:6px}
.nav a{text-decoration:none;font-weight:600;font-size:.94rem;padding:10px 12px;border-radius:10px;color:var(--muted);white-space:nowrap}
.nav a:hover,.nav a[aria-current="page"]{color:var(--ink);background:var(--sky)}
.nav .btn{margin-left:8px;padding:12px 18px;font-size:.92rem;color:#fff;background:var(--cobalt)}
.nav .btn:hover{background:var(--cobalt);color:#fff}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:12px;padding:10px 12px;color:var(--ink);font:600 .9rem var(--f-sans)}
@media (max-width:1180px){
  .menu-btn{display:inline-flex}
  .nav{position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:2px;background:var(--surface);border-bottom:1px solid var(--line);padding:10px max(20px,env(safe-area-inset-right,0px)) 18px max(20px,env(safe-area-inset-left,0px))}
  .nav a{padding:14px 12px}
  .nav .btn{margin:8px 0 0;justify-content:center}
  .hdr:not(.open) .nav{display:none}
}

/* ---------- hero */
.hero{padding-block:clamp(40px,6vw,88px) clamp(48px,6vw,96px);position:relative;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(28px,5vw,72px);align-items:center}
.hero-grid>*{min-width:0}
.hero h1 .accent{display:inline-block}
.hero .lead{margin-top:22px}
.hero .row{margin-top:32px}
.hero-meta{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:34px;color:var(--muted);font-size:var(--s-small)}
.hero-meta span{display:inline-flex;align-items:center;gap:8px}
.hero-meta span::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--cobalt)}
.film{position:relative;border-radius:22px;overflow:hidden;background:#04163A;aspect-ratio:16/9;box-shadow:0 30px 60px -30px rgba(4,22,58,.45)}
.film video{width:100%;height:100%;object-fit:cover}
.film .sound{position:absolute;left:14px;bottom:14px;display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.94);color:#0B1426;border:0;border-radius:999px;padding:10px 14px;font:700 .85rem var(--f-sans);cursor:pointer}
.film-wrap{position:relative}
.film-wrap::before{content:"";position:absolute;width:62%;aspect-ratio:1;right:-14%;top:-24%;border-radius:50%;box-shadow:inset 0 0 0 clamp(14px,2.2vw,30px) var(--sky);z-index:-1}
@media (max-width:860px){.hero-grid{grid-template-columns:1fr}.film{aspect-ratio:9/16;max-height:78vh;margin-inline:auto;width:min(100%,420px)}}

/* ---------- client marquee */
.marquee{border-block:1px solid var(--line);background:var(--surface);overflow:hidden;padding-block:22px}
.marquee .t{display:flex;gap:14px;width:max-content;animation:mq 70s linear infinite;align-items:center}
.marquee .lg{background:#fff;border:1px solid var(--line);border-radius:12px;height:68px;width:140px;display:grid;place-items:center;padding:10px;flex:none}
.marquee img{max-height:46px;max-width:118px;width:auto;height:auto;object-fit:contain}
.marquee:hover .t{animation-play-state:paused}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---------- pillars */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.pillar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:28px;display:flex;flex-direction:column;gap:16px;text-decoration:none;transition:transform .25s,border-color .25s}
.pillar:hover{transform:translateY(-4px);border-color:var(--cobalt)}
.pillar .ill{aspect-ratio:4/3;border-radius:14px;background:var(--sky);display:grid;place-items:center;overflow:hidden}
.pillar .ill svg{width:86%;height:86%}
.pillar ul{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.pillar li{font-size:.8rem;font-weight:600;padding:6px 10px;border-radius:999px;background:var(--bg);border:1px solid var(--line);color:var(--muted)}
.pillar .more{margin-top:auto;font-weight:700;color:var(--cobalt-ink);display:inline-flex;gap:8px}
@media (max-width:900px){.pillars{grid-template-columns:1fr}}

/* ---------- values */
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,4vw,48px)}
.value h3{margin:14px 0 10px}
.value .ic{width:52px;height:52px;border-radius:50%;box-shadow:inset 0 0 0 4px var(--cobalt);display:grid;place-items:center;color:var(--cobalt-ink);font:800 1rem var(--f-mono)}
@media (max-width:800px){.values{grid-template-columns:1fr}}

/* ---------- dark band */
.band{background:var(--navy);color:var(--on-dark)}
.band .lead,.band .muted{color:var(--on-dark-muted)}
.band .label{color:#7FB0FF}
.band .u{background-image:linear-gradient(#FFB627,#FFB627)}

/* ---------- method (a real sequence) */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;counter-reset:s;position:relative}
.step{position:relative;padding:28px 22px 26px;border-radius:var(--radius);background:var(--navy-2);border:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:10px}
.step .n{font:600 .8rem var(--f-mono);letter-spacing:.12em;color:#FFB627}
.step h3{font-size:1.35rem;color:#fff}
.step p{color:var(--on-dark-muted);font-size:.95rem}
@media (max-width:980px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}

/* ---------- logo wall */
.wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.wall figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:14px;height:112px;display:grid;place-items:center;padding:16px;min-width:0}
.wall img{max-height:80px;max-width:100%;width:auto;height:auto;object-fit:contain}
.note{font-size:var(--s-small);color:var(--muted);margin-top:16px}

/* ---------- CTA */
.cta{background:var(--cobalt);color:#fff;border-radius:28px;padding:clamp(36px,6vw,72px);display:grid;grid-template-columns:1.3fr auto;gap:28px;align-items:center;position:relative;overflow:hidden}
.cta::after{content:"";position:absolute;width:340px;aspect-ratio:1;border-radius:50%;right:-110px;bottom:-170px;box-shadow:inset 0 0 0 34px rgba(255,255,255,.12)}
.cta p{color:#DCE7F7;margin-top:12px}
.cta>*{position:relative;z-index:1;min-width:0}
@media (max-width:760px){.cta{grid-template-columns:1fr}}

/* ---------- service pages */
.page-hero{padding-block:clamp(40px,6vw,88px) clamp(32px,4vw,56px)}
.page-hero .hero-grid{grid-template-columns:1.1fr .9fr}
.page-hero .ill{aspect-ratio:1/1;background:var(--sky);border-radius:28px;display:grid;place-items:center;overflow:hidden}
.page-hero .ill svg{width:84%;height:84%}
@media (max-width:860px){.page-hero .hero-grid{grid-template-columns:1fr}.page-hero .ill{max-width:440px;width:100%}}
.offers{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.offer{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:30px;display:flex;flex-direction:column;gap:14px;min-width:0}
.offer .tag{align-self:flex-start}
.offer ul{margin:4px 0 0;padding:0;list-style:none;display:grid;gap:8px}
.offer li{display:flex;gap:10px;align-items:flex-start;font-size:.97rem;color:var(--muted)}
.offer li::before{content:"";flex:none;width:7px;height:7px;margin-top:.62em;border-radius:50%;background:var(--cobalt)}
@media (max-width:820px){.offers{grid-template-columns:1fr}}
.packs{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.pack{border-radius:16px;padding:22px;background:var(--surface);border:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.pack .lvl{font:600 .72rem var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.pack h4{margin:0;font-size:1.2rem}
.pack .bar{height:6px;border-radius:3px;background:var(--sky);overflow:hidden;margin-top:6px}
.pack .bar i{display:block;height:100%;background:var(--cobalt)}
@media (max-width:900px){.packs{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.packs{grid-template-columns:1fr}}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,64px);align-items:start}
.split>*{min-width:0}
@media (max-width:820px){.split{grid-template-columns:1fr}}
.faq details{border-top:1px solid var(--line);padding-block:18px}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{font-weight:700;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::after{content:"+";font:600 1.3rem var(--f-mono);color:var(--cobalt-ink)}
.faq details[open] summary::after{content:"–"}
.faq details p{margin-top:12px;color:var(--muted)}

/* ---------- projects */
.projects{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.project{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}
.project .head{background:#fff;border-bottom:1px solid var(--line);height:150px;display:grid;place-items:center;padding:24px}
.project .head img{max-height:100%;width:auto}
.project .mono-init{width:96px;height:96px;border-radius:50%;box-shadow:inset 0 0 0 6px #0754B8;display:grid;place-items:center;font:800 1.5rem var(--f-sans);color:#0754B8;letter-spacing:.04em}
.project .body{padding:26px;display:flex;flex-direction:column;gap:12px}
.project .chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font:600 .72rem var(--f-mono);letter-spacing:.06em;text-transform:uppercase;padding:6px 10px;border-radius:999px;background:var(--sky);color:var(--cobalt-ink)}
@media (max-width:820px){.projects{grid-template-columns:1fr}}

/* ---------- about */
.bio{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(24px,5vw,64px);align-items:start}
.bio>*{min-width:0}
.portrait{aspect-ratio:4/5;border-radius:24px;background:var(--navy);color:#fff;display:grid;place-items:center;position:relative;overflow:hidden}
.portrait .mark.lg{width:160px;height:160px;box-shadow:inset 0 0 0 13px #fff}
.portrait .todo{position:absolute;left:16px;right:16px;bottom:16px}
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:8px}
.fact{border:1px solid var(--line);border-radius:14px;padding:16px;background:var(--surface)}
.fact b{display:block;font-size:1.02rem}
.fact span{font-size:.88rem;color:var(--muted)}
@media (max-width:820px){.bio{grid-template-columns:1fr}.portrait{max-width:360px}}
@media (max-width:480px){.facts{grid-template-columns:1fr}}

/* ---------- contact */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,5vw,64px);align-items:start}
.contact-grid>*{min-width:0}
.coords{display:grid;gap:12px}
.coord{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.coord .k{font:600 .72rem var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);min-width:86px}
.coord .v{font-weight:700;overflow-wrap:anywhere}
.copy{background:none;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font:600 .78rem var(--f-sans);color:var(--ink);cursor:pointer}
form.f{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:clamp(22px,4vw,36px);display:grid;gap:16px}
.f .two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:560px){.f .two{grid-template-columns:1fr}}
.f label{display:grid;gap:8px;font-weight:600;font-size:.92rem}
.f input,.f select,.f textarea{font:500 1rem var(--f-sans);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:14px;width:100%}
.f textarea{min-height:140px;resize:vertical}
.f .chips-in{display:flex;flex-wrap:wrap;gap:8px}
.f .chips-in label{display:inline-flex;align-items:center;gap:8px;font-weight:600;padding:10px 14px;border:1px solid var(--line);border-radius:999px;background:var(--bg);cursor:pointer}
.f .chips-in input{width:auto;accent-color:#0754B8}
.f .err{color:#C0362C;font-size:.88rem;font-weight:600}
.done{border:1px solid var(--cobalt);background:var(--sky);border-radius:18px;padding:22px;display:grid;gap:12px}
.done pre{white-space:pre-wrap;font:500 .9rem var(--f-mono);background:var(--surface);border-radius:12px;padding:14px;margin:0;border:1px solid var(--line);overflow-wrap:anywhere}

/* ---------- to-complete marker */
.todo{display:inline-flex;align-items:center;gap:6px;font:600 .78rem var(--f-mono);letter-spacing:.04em;color:var(--todo);background:var(--todo-bg);border:1.5px dashed var(--todo);border-radius:8px;padding:4px 8px}

/* ---------- footer */
.ftr{background:var(--navy);color:var(--on-dark);padding-block:64px 36px;margin-top:clamp(64px,8vw,120px)}
.ftr-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:32px}
.ftr-grid>*{min-width:0}
.ftr h4{font:600 .74rem var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:#7FB0FF;margin:0 0 14px}
.ftr a{text-decoration:none;color:var(--on-dark-muted)}.ftr a:hover{color:#fff}
.ftr ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:.95rem}
.ftr .sig{font-size:1.4rem;font-weight:800;letter-spacing:-.02em;margin-top:18px;max-width:20ch}
.ftr .mark{box-shadow:inset 0 0 0 3.4px #fff}
.ftr .base{border-top:1px solid rgba(255,255,255,.12);margin-top:44px;padding-top:22px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;color:var(--on-dark-muted);font-size:.85rem}
.ftr .todo{color:#FFC069;background:rgba(255,192,105,.1);border-color:#FFC069}
@media (max-width:900px){.ftr-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.ftr-grid{grid-template-columns:1fr}}

/* ---------- illustrations: motion (resting state is complete) */
.ill .spin{transform-origin:50% 50%;transform-box:fill-box;animation:spin 18s linear infinite}
.ill .dart{animation:dart 4s cubic-bezier(.6,0,.3,1) infinite}
.ill .pulse{transform-box:fill-box;transform-origin:50% 50%;animation:pulse 2s ease-in-out infinite}
.ill .float{animation:flt 4s ease-in-out infinite}
.ill .float2{animation:flt 4s ease-in-out -2s infinite}
.ill .cursor{animation:cur 5s cubic-bezier(.6,0,.3,1) infinite}
.ill .grow{transform-box:fill-box;transform-origin:50% 100%;animation:grow 5s cubic-bezier(.3,1.3,.5,1) infinite}
.ill .g2{animation-delay:.15s}.ill .g3{animation-delay:.3s}.ill .g4{animation-delay:.45s}.ill .g5{animation-delay:.6s}
.ill .sheet{animation:sheet 4s cubic-bezier(.5,0,.3,1) infinite}
.ill .roll{transform-box:fill-box;transform-origin:50% 50%;animation:spin 1.2s linear infinite}
.ill .fan1{transform-box:fill-box;transform-origin:50% 100%;animation:fan1 4s ease-in-out infinite}
.ill .fan2{transform-box:fill-box;transform-origin:50% 100%;animation:fan2 4s ease-in-out infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes dart{0%,100%{transform:translate(0,0)}8%{transform:translate(70px,-70px)}22%{transform:translate(0,0)}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
@keyframes flt{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes cur{0%,100%{transform:translate(0,0)}35%{transform:translate(-120px,-40px)}45%{transform:translate(-120px,-40px) scale(.85)}55%{transform:translate(-120px,-40px)}}
@keyframes grow{0%,100%{transform:scaleY(1)}12%{transform:scaleY(.15)}30%{transform:scaleY(1)}}
@keyframes sheet{0%,100%{transform:translateY(0)}15%{transform:translateY(-60px)}40%{transform:translateY(0)}}
@keyframes fan1{0%,100%{transform:rotate(-12deg)}50%{transform:rotate(-4deg)}}
@keyframes fan2{0%,100%{transform:rotate(12deg)}50%{transform:rotate(4deg)}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.skip{position:absolute;left:-999px;top:12px;z-index:100;background:var(--cobalt);color:#fff;padding:10px 14px;border-radius:10px;font-weight:700}
.skip:focus{left:16px}
.facts.three{grid-template-columns:repeat(3,1fr)}
@media (max-width:820px){.facts.three{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.facts.three{grid-template-columns:1fr}}
.band .sectors .fact{background:var(--navy-2);border-color:rgba(255,255,255,.08)}
.band .sectors .fact b{color:#fff}.band .sectors .fact span{color:var(--on-dark-muted)}
.offer .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}
