@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&family=Manrope:wght@300;400;500&display=swap');

:root{
  --paper:#f3f1ec;
  --ink:#101010;
  --muted:#5e5b55;
  --line:#7d7971;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Inter",Arial,sans-serif;
  font-weight:300;
  line-height:1.55;
}
img{display:block;width:100%}
a{color:inherit}
button,input,textarea{font:inherit}
.hidden{position:absolute;left:-9999px}

/* Navigation */
.topbar{
  position:absolute;
  z-index:20;
  top:0;left:0;right:0;
  height:88px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  padding:0 4.1vw;
  color:#fff;
}
.mainnav{display:flex;align-items:center;gap:42px}
.mainnav a{
  color:inherit;
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.15em;
  font-size:13px;
  font-weight:400;
  position:relative;
  padding:10px 0;
}
.mainnav a:after{
  content:"";
  position:absolute;left:0;right:100%;bottom:2px;
  height:1px;background:currentColor;
  transition:right .3s ease;
}
.mainnav a:hover:after,.mainnav a.active:after{right:0}
.menu-toggle{display:none}

/* Hero */
.hero{
  min-height:100svh;
  height:100svh;
  position:relative;
  overflow:hidden;
  background:#1a1a1a;
}
.hero-photo{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  object-position:center;
}
.hero-shade{
  position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.32) 0%,rgba(0,0,0,.08) 45%,rgba(0,0,0,.02) 100%);
}
.hero-copy{
  position:absolute;
  z-index:2;
  left:3.9vw;
  bottom:9.5vh;
  color:#fff;
}
.hero-copy h1{
  margin:0;
  font-family:"Manrope",Arial,sans-serif;
  font-size:clamp(64px,6.8vw,112px);
  line-height:.91;
  font-weight:300;
  letter-spacing:-.055em;
}
.hero-copy p{
  margin:28px 0 0;
  font-size:15px;
  font-weight:300;
}
.scroll-cue{
  position:absolute;
  left:50%;
  bottom:3vh;
  transform:translateX(-50%);
  width:26px;height:43px;
  border:1px solid rgba(255,255,255,.85);
  border-radius:16px;
}
.scroll-cue span{
  width:3px;height:3px;border-radius:50%;
  background:#fff;
  position:absolute;top:10px;left:50%;
  transform:translateX(-50%);
}
.scroll-cue:after{
  content:"";
  position:absolute;left:50%;bottom:-16px;
  width:8px;height:8px;
  border-right:1px solid #fff;border-bottom:1px solid #fff;
  transform:translateX(-50%) rotate(45deg);
}

/* Generic */
.section{padding:34px 5.5vw 9vw}
.section-label{
  display:flex;
  gap:48px;
  align-items:flex-start;
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:500;
}
.section-label span:first-child{font-weight:300}
.section h2{
  font-family:"Manrope",Arial,sans-serif;
  font-weight:300;
  letter-spacing:-.055em;
}

/* Enterprise */
.enterprise{padding-top:28px}
.enterprise > h2{
  margin:52px 0 42px 10.5vw;
  font-size:clamp(52px,5vw,86px);
  line-height:1.03;
}
.enterprise-grid{
  display:grid;
  grid-template-columns:1.55fr .85fr;
  gap:7vw;
  align-items:start;
}
.enterprise-photo img{
  height:66vh;
  min-height:570px;
  object-fit:cover;
}
.enterprise-copy{
  padding-top:48px;
  max-width:530px;
}
.enterprise-copy h3{
  margin:0 0 26px;
  font-size:11px;
  letter-spacing:.16em;
  font-weight:500;
}
.enterprise-copy p{
  margin:0 0 28px;
  font-size:14px;
  line-height:1.9;
}
.knowhow{margin-top:70px}

/* Portfolio */
.portfolio{padding-top:38px}
.portfolio-label{margin-bottom:76px}
.portfolio-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7vw 5vw;
  align-items:start;
}
.portfolio-grid figure{margin:0}
.portfolio-grid img{height:auto}
.p2{margin-top:48px!important}
.p3{width:78%;margin-left:12%!important}
.p4{margin-top:105px!important}
.p5{grid-column:1 / span 2;width:76%;margin:15px auto 0!important}
.p6{width:74%}
.p7{width:82%;margin-left:auto!important;margin-top:95px!important}

/* Contact */
.contact{
  min-height:96vh;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9vw;
  align-items:start;
  padding-top:90px;
  padding-bottom:105px;
}
.contact-left{padding-left:1.2vw}
.contact-label{margin-bottom:55px}
.contact-left h2{
  margin:0;
  font-size:clamp(72px,6.6vw,112px);
  line-height:.92;
}
.contact-intro{
  margin:72px 0 0;
  font-size:18px;
  line-height:1.8;
  color:#44413d;
}
.contact-details{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-top:84px;
}
.contact-details a{
  text-decoration:none;
  font-size:18px;
}
.contact-form{
  padding-top:58px;
}
.contact-form label{
  display:block;
  font-size:12px;
  letter-spacing:.18em;
  font-weight:400;
  margin-bottom:31px;
}
.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:45px;
}
.contact-form input,.contact-form textarea{
  width:100%;
  display:block;
  border:0;
  border-bottom:1px solid var(--line);
  border-radius:0;
  background:transparent;
  color:var(--ink);
  outline:none;
  padding:16px 0 11px;
  font-size:18px;
  letter-spacing:0;
  font-weight:300;
  resize:vertical;
}
.contact-form textarea{min-height:180px}
.contact-form input:focus,.contact-form textarea:focus{border-color:#111}
.contact-form button{
  margin-top:20px;
  width:235px;
  height:82px;
  border:1px solid #1c1c1c;
  background:transparent;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 31px;
  font-size:13px;
  letter-spacing:.18em;
  cursor:pointer;
  transition:background .2s,color .2s;
}
.contact-form button:hover{background:#151515;color:#fff}

/* Footer */
.footer{
  min-height:90px;
  border-top:1px solid #c8c4ba;
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  align-items:center;
  padding:0 5.5vw;
  font-size:10px;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.footer span:nth-child(2){text-align:center}
.footer span:last-child{text-align:right}

/* Mobile */
@media(max-width:820px){
  .topbar{height:72px;padding:0 20px}
  .menu-toggle{
    display:block;
    border:0;background:transparent;color:#fff;
    text-transform:uppercase;letter-spacing:.17em;font-size:11px;
  }
  .mainnav{
    position:absolute;top:72px;left:0;right:0;
    display:none;flex-direction:column;align-items:flex-start;
    gap:18px;padding:24px 20px 30px;background:rgba(18,18,18,.96)
  }
  .mainnav.open{display:flex}
  .mainnav a{font-size:12px}
  .hero-photo{object-position:55% center}
  .hero-copy{left:20px;right:20px;bottom:11vh}
  .hero-copy h1{font-size:clamp(52px,17vw,80px)}
  .hero-copy p{font-size:14px}
  .section{padding:28px 20px 82px}
  .section-label{gap:24px;font-size:10px}
  .enterprise > h2{
    margin:48px 0 46px;
    font-size:45px;
  }
  .enterprise-grid{display:block}
  .enterprise-photo img{height:62vh;min-height:450px}
  .enterprise-copy{padding-top:52px}
  .enterprise-copy p{font-size:14px}
  .portfolio-label{margin-bottom:52px}
  .portfolio-grid{display:block}
  .portfolio-grid figure,.p2,.p3,.p4,.p5,.p6,.p7{
    width:100%!important;
    margin:0 0 45px!important;
  }
  .contact{display:block;min-height:auto;padding-top:70px}
  .contact-left{padding-left:0}
  .contact-label{margin-bottom:42px}
  .contact-left h2{font-size:62px}
  .contact-intro{margin-top:48px;font-size:16px}
  .contact-details{margin-top:48px}
  .contact-details a{font-size:16px}
  .contact-form{padding-top:80px}
  .form-row{display:block}
  .contact-form label{font-size:11px}
  .footer{display:block;padding:28px 20px}
  .footer span{display:block;margin-bottom:13px}
  .footer span:nth-child(2),.footer span:last-child{text-align:left}
}

.seo-local{margin-top:34px!important;font-size:13px!important;color:#5e5b55;}

.blog-page{padding:135px 7vw 110px;max-width:1450px;margin:auto}
.blog-kicker{font-size:11px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:38px}
.blog-title{font-family:"Manrope",Arial,sans-serif;font-size:clamp(58px,7vw,112px);line-height:.94;font-weight:300;letter-spacing:-.055em;margin:0 0 95px}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5vw 3vw}
.blog-card{text-decoration:none;border-top:1px solid #aaa59b;padding-top:18px}
.blog-card h2{font-family:"Manrope",Arial,sans-serif;font-size:28px;line-height:1.12;font-weight:300;letter-spacing:-.035em;margin:18px 0}
.blog-card p{font-size:13px;line-height:1.75;color:#5e5b55}
.article{max-width:900px;margin:auto;padding:125px 6vw}
.article .back{font-size:11px;letter-spacing:.16em;text-transform:uppercase;text-decoration:none}
.article h1{font-family:"Manrope",Arial,sans-serif;font-size:clamp(48px,6vw,86px);line-height:1;letter-spacing:-.05em;font-weight:300;margin:60px 0 35px}
.article .meta{font-size:12px;color:#6b675f;margin-bottom:55px}
.article h2{font-family:"Manrope",Arial,sans-serif;font-size:29px;font-weight:400;margin:55px 0 20px}
.article p,.article li{font-size:16px;line-height:1.9;color:#302e2b}
@media(max-width:820px){.blog-page{padding:100px 20px 75px}.blog-grid{grid-template-columns:1fr}.blog-title{margin-bottom:60px}.article{padding:95px 20px}.article h1{margin-top:45px}}

.blog-nav{
  height:82px;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:38px;
  padding:0 5.5vw;
  border-bottom:1px solid #c8c4ba;
}
.blog-nav a{
  color:#111;
  text-decoration:none;
  font-size:12px;
  font-weight:400;
  letter-spacing:.16em;
  position:relative;
  padding:9px 0;
}
.blog-nav a:after{
  content:"";
  position:absolute;
  left:0;right:100%;bottom:2px;
  height:1px;background:#111;
  transition:right .25s ease;
}
.blog-nav a:hover:after{right:0}
@media(max-width:820px){
  .blog-nav{height:68px;padding:0 20px;gap:25px}
  .blog-nav a{font-size:11px}
}


/* V4 — navigation cohérente sur les pages secondaires */
.site-nav-light{
  width:100%;
  padding:30px 4.1vw 12px;
}
.site-nav-light nav{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:32px;
  flex-wrap:wrap;
}
.site-nav-light a{
  color:var(--ink);
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.15em;
  font-size:12px;
  font-weight:400;
  position:relative;
  padding:8px 0;
}
.site-nav-light a:after{
  content:"";
  position:absolute;left:0;right:100%;bottom:1px;
  height:1px;background:currentColor;
  transition:right .3s ease;
}
.site-nav-light a:hover:after{right:0}

/* La photo Entreprise est fournie directement en noir et blanc. */
.enterprise-photo img{filter:none}

/* Footer volontairement supprimé sur la page principale. */

@media (max-width:760px){
  .site-nav-light{padding:20px 5vw 8px}
  .site-nav-light nav{justify-content:flex-start;gap:12px 18px}
  .site-nav-light a{font-size:10px}
}
