:root{
  --emerald:#0A3D33;
  --emerald-2:#0F4A3E;
  --emerald-3:#155A4B;
  --deep:#062A23;
  --gold:#E8C27A;
  --gold-2:#F3D597;
  --mint:#7FE0C2;
  --cream:#F5EFE3;
  --text:#E9F2EE;
  --muted:#A9C4BB;
  --display:"Unbounded","Arial Black",Helvetica,sans-serif;
  --body:"Figtree","Segoe UI",Helvetica,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--emerald);color:var(--text);font-family:var(--body);font-size:1.0625rem;line-height:1.6}
a{color:var(--gold)}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.wrap{max-width:1200px;margin:0 auto;padding:0 1.5rem}

/* Logo */
.logo{display:flex;align-items:center;gap:.75rem;text-decoration:none}
.logo svg{width:46px;height:46px;flex:none}
.logo-text{display:flex;flex-direction:column;line-height:1}
.logo-text b{font-family:var(--display);font-weight:800;font-size:1.35rem;color:var(--cream);letter-spacing:-.02em}
.logo-text span{font-family:var(--display);font-weight:400;font-size:.72rem;color:var(--gold);letter-spacing:.06em;margin-top:.3rem}

/* En-tête */
.top{position:sticky;top:0;z-index:10;background:rgba(10,61,51,.88);backdrop-filter:blur(12px);border-bottom:1px solid rgba(232,194,122,.18)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:76px}
.top nav{display:flex;gap:1.8rem;align-items:center}
.top nav a{color:var(--text);text-decoration:none;font-weight:500}
.top nav a:hover{color:var(--gold)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:52px;padding:0 1.7rem;border-radius:999px;font-family:var(--body);font-weight:700;font-size:1rem;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform .15s,background .15s,color .15s}
.btn:hover{transform:translateY(-2px)}
.btn-gold{background:var(--gold);color:var(--deep)}
.btn-gold:hover{background:var(--gold-2)}
.btn-line{border-color:rgba(245,239,227,.5);color:var(--cream)}
.btn-line:hover{border-color:var(--cream);background:var(--cream);color:var(--deep)}
.top nav .btn{min-height:44px;color:var(--deep)}

/* Héro */
.hero{position:relative;overflow:hidden;background:var(--deep)}
.lens{position:absolute;right:-140px;top:50%;width:680px;height:680px;transform:translateY(-50%);pointer-events:none}
.lens .ring{fill:none;stroke:var(--gold);stroke-width:2;opacity:.35}
.lens .sweep{transform-origin:340px 340px;animation:sweep 9s linear infinite}
@keyframes sweep{to{transform:rotate(360deg)}}
.hero .wrap{position:relative;padding-top:6rem;padding-bottom:6.5rem}
.kicker{font-weight:600;color:var(--mint);margin:0 0 1.4rem;font-size:1.05rem}
.hero h1{font-family:var(--display);font-weight:800;font-size:clamp(2.2rem,5.6vw,4.6rem);line-height:1.05;letter-spacing:-.03em;color:var(--cream);margin:0 0 2rem;max-width:15ch}
.hero h1 .role{display:block;color:var(--gold);min-height:2.2em}
.caret{display:inline-block;width:.08em;height:.9em;background:var(--gold);margin-left:.06em;vertical-align:-.08em;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.hero p{font-size:1.2rem;max-width:34rem;margin:0 0 2.3rem;color:var(--muted)}
.hero .actions{display:flex;flex-wrap:wrap;gap:.9rem}

/* Bandeau */
.ticker{background:var(--gold);color:var(--deep);overflow:hidden;white-space:nowrap;padding:1.05rem 0}
.ticker-track{display:inline-flex;gap:2.2rem;animation:slide 45s linear infinite;font-family:var(--display);font-weight:600;font-size:1.05rem}
.ticker-track span::after{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--deep);margin-left:2.2rem;vertical-align:middle}
@keyframes slide{to{transform:translateX(-50%)}}

/* Sections */
section{padding:6.5rem 0}
h2{font-family:var(--display);font-weight:800;font-size:clamp(1.8rem,3.8vw,3rem);line-height:1.08;letter-spacing:-.03em;color:var(--cream);margin:0 0 1.1rem;max-width:18ch}
.lead{font-size:1.18rem;max-width:40rem;margin:0 0 3.2rem;color:var(--muted)}
h3{font-family:var(--display);font-weight:600;font-size:1.2rem;letter-spacing:-.01em;color:var(--cream);margin:0 0 .7rem;line-height:1.25}

.services{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}
.service{position:relative;padding:2.4rem;border-radius:28px;background:var(--emerald-2);border:1px solid rgba(232,194,122,.16);overflow:hidden;transition:border-color .2s,transform .2s}
.service:hover{border-color:var(--gold);transform:translateY(-3px)}
.service::after{content:"";position:absolute;width:180px;height:180px;right:-60px;bottom:-60px;border-radius:50%;border:2px solid rgba(232,194,122,.18)}
.service .icon{width:58px;height:58px;border-radius:50%;border:2px solid var(--gold);display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem}
.service .icon svg{width:26px;height:26px;fill:none;stroke:var(--gold);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.service p{margin:0;color:var(--muted);max-width:32rem}

/* International */
.intl{background:var(--emerald-2);border-top:1px solid rgba(232,194,122,.16)}
.intl .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:4rem;align-items:center}
.intl p{color:var(--muted);max-width:36rem;margin:0 0 1.1rem}
.intl .lead{margin-bottom:1.6rem}
.intl-cards{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.intl-card{border-radius:24px;padding:1.7rem;background:var(--deep);border:1px solid rgba(232,194,122,.25)}
.intl-card.wide{grid-column:1/-1;background:var(--gold);border-color:var(--gold)}
.intl-card b{display:block;font-family:var(--display);font-weight:600;font-size:1.05rem;color:var(--cream);margin-bottom:.4rem}
.intl-card span{color:var(--muted)}
.intl-card.wide b,.intl-card.wide span{color:var(--deep)}

/* Secteurs */
.sectors{background:var(--cream);color:var(--deep)}
.sectors h2{color:var(--emerald)}
.sectors .lead{color:#3E5A52}
.chips{display:flex;flex-wrap:wrap;gap:.75rem}
.chips span{font-family:var(--display);font-weight:600;font-size:clamp(.92rem,1.7vw,1.1rem);padding:.85rem 1.4rem;border-radius:999px;background:var(--emerald);color:var(--cream);transition:background .2s,color .2s}
.chips span:nth-child(4n+2){background:var(--gold);color:var(--deep)}
.chips span:nth-child(4n+3){background:transparent;color:var(--emerald);box-shadow:inset 0 0 0 2px var(--emerald)}
.chips span:hover{background:var(--deep);color:var(--gold)}
.sector-note{margin:2.4rem 0 0;font-weight:600;color:#3E5A52}

/* Équipe */
.team .wrap{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
.team p{margin:0 0 1.1rem;max-width:36rem;color:var(--muted)}
.team strong{color:var(--cream)}
.expertise{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.expertise div{border-radius:24px;padding:1.7rem;background:var(--emerald-2);border:1px solid rgba(232,194,122,.16)}
.expertise b{display:block;font-family:var(--display);font-weight:600;font-size:1.02rem;color:var(--cream);margin-bottom:.4rem}
.expertise span{color:var(--muted);font-size:.98rem}
.expertise div:nth-child(1){background:var(--gold);border-color:var(--gold)}
.expertise div:nth-child(4){background:var(--mint);border-color:var(--mint)}
.expertise div:nth-child(1) b,.expertise div:nth-child(1) span,.expertise div:nth-child(4) b,.expertise div:nth-child(4) span{color:var(--deep)}

/* Approche */
.process{background:var(--deep)}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;counter-reset:step;position:relative}
.steps::before{content:"";position:absolute;left:30px;right:30px;top:30px;border-top:2px dashed rgba(232,194,122,.4)}
.steps li{counter-increment:step;position:relative}
.steps li::before{content:counter(step);display:flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:50%;background:var(--deep);border:2px solid var(--gold);color:var(--gold);font-family:var(--display);font-weight:800;font-size:1.3rem;margin-bottom:1.4rem;position:relative}
.steps li p{margin:0;color:var(--muted)}

/* Contact */
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:3.5rem;align-items:start}
.coords p{margin:0 0 1.4rem}
.coords .label{display:block;font-weight:600;color:var(--mint);font-size:.95rem}
.coords a{color:var(--cream);font-size:1.25rem;text-decoration:none;font-weight:600}
.coords a:hover{color:var(--gold)}
form{background:var(--cream);color:var(--deep);border-radius:30px;padding:2.3rem;display:grid;gap:1.1rem}
.row{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
label{display:block;font-weight:600;margin-bottom:.35rem;font-size:.98rem}
input,select,textarea{width:100%;font:inherit;color:var(--deep);background:#FFFBF3;border:1.5px solid #D6CBB4;border-radius:14px;padding:.75rem .95rem;min-height:52px}
textarea{min-height:130px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:3px solid var(--emerald);outline-offset:1px;border-color:var(--emerald)}
form .btn{justify-self:start;border:none;background:var(--emerald);color:var(--cream)}
form .btn:hover{background:var(--deep)}
.form-note{font-size:.92rem;color:#4F6560;margin:0}
.form-error{color:#9B1C08;font-weight:700;margin:0;display:none}

footer{background:var(--deep);color:var(--muted);padding:2.6rem 0;font-size:.95rem;border-top:1px solid rgba(232,194,122,.18)}
footer .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.3rem}
footer a{color:var(--text);text-decoration:none}
footer a:hover{color:var(--gold)}

/* Mobile */
@media (max-width:900px){
  .intl .wrap,.team .wrap,.contact-grid{grid-template-columns:1fr}
  .lens{width:460px;height:460px;right:-200px;opacity:.6}
  .steps{grid-template-columns:1fr 1fr}
  .steps::before{display:none}
}
@media (max-width:640px){
  .top nav a:not(.btn){display:none}
  .top nav .btn{padding:0 1.1rem}
  .logo svg{width:40px;height:40px}
  .logo-text b{font-size:1.15rem}
  section{padding:4.2rem 0}
  .hero .wrap{padding-top:3.5rem;padding-bottom:4rem}
  .services,.expertise,.steps,.row,.intl-cards{grid-template-columns:1fr}
  form,.service{padding:1.6rem}
}

/* Cartes de services cliquables */
a.service{display:block;text-decoration:none;color:inherit}
.service .more{display:inline-flex;align-items:center;gap:.4rem;margin-top:1.3rem;font-weight:700;color:var(--gold)}
.service .more svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}
a.service:hover .more svg{transform:translateX(4px)}

/* Formulaires */
.check{display:flex;gap:.7rem;align-items:flex-start;font-weight:500;font-size:.95rem;margin:0}
.check input{width:22px;height:22px;min-height:0;flex:none;margin-top:.15rem;accent-color:var(--emerald)}
.check a{color:var(--emerald);font-weight:700}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
form .form-note a{color:var(--emerald);font-weight:600}

/* Pages de service */
.crumbs{margin:0 0 1.6rem;font-weight:600;color:var(--mint)}
.crumbs a{color:var(--mint);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.page-hero{position:relative;overflow:hidden;background:var(--deep)}
.page-hero .wrap{position:relative;padding-top:5rem;padding-bottom:5.5rem}
.page-hero h1{font-family:var(--display);font-weight:800;font-size:clamp(2.1rem,5vw,4rem);line-height:1.05;letter-spacing:-.03em;color:var(--cream);margin:0 0 1.6rem;max-width:16ch}
.page-hero p.intro{font-size:1.22rem;max-width:38rem;margin:0 0 2.3rem;color:var(--muted)}
.page-hero .actions{display:flex;flex-wrap:wrap;gap:.9rem}
.page-hero .big-icon{position:absolute;right:4%;top:50%;transform:translateY(-50%);width:clamp(200px,30vw,380px);height:auto;opacity:.16}
.page-hero .big-icon svg{width:100%;height:auto;fill:none;stroke:var(--gold);stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round}
.story .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:4rem;align-items:start}
.story p{color:var(--muted);max-width:38rem;margin:0 0 1.1rem}
.story strong{color:var(--cream)}
.how{display:grid;gap:1rem}
.how div{border-radius:24px;padding:1.6rem;background:var(--emerald-2);border:1px solid rgba(232,194,122,.16)}
.how div:first-child{background:var(--gold);border-color:var(--gold)}
.how b{display:block;font-family:var(--display);font-weight:600;font-size:1.02rem;color:var(--cream);margin-bottom:.35rem}
.how span{color:var(--muted)}
.how div:first-child b,.how div:first-child span{color:var(--deep)}
.others{background:var(--deep)}
.others-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem}
.others-grid a{display:block;padding:1.3rem;border-radius:20px;border:1px solid rgba(232,194,122,.25);color:var(--cream);text-decoration:none;font-family:var(--display);font-weight:600;font-size:.95rem;line-height:1.3;transition:border-color .2s,background .2s}
.others-grid a:hover{border-color:var(--gold);background:var(--emerald-2)}

/* Pages texte (confidentialité, merci) */
.text-page .wrap{max-width:820px}
.text-page h2{font-size:clamp(1.3rem,2.6vw,1.7rem);margin-top:2.6rem;max-width:none}
.text-page p,.text-page li{color:var(--muted)}
.text-page strong{color:var(--cream)}

@media (max-width:900px){
  .story .wrap{grid-template-columns:1fr}
  .others-grid{grid-template-columns:1fr 1fr}
  .page-hero .big-icon{opacity:.08}
}
@media (max-width:640px){
  .page-hero .wrap{padding-top:3.5rem;padding-bottom:4rem}
  .others-grid{grid-template-columns:1fr}
}
