.g{--k:#14100c;--k2:#1d1813;--w:#fbf9f6;--alt:#f3efe9;--line:#e2dcd3;--mut:#6b6259;--o:#e8710a;--od:#b93c05;color:var(--k);background:var(--w)}
.g *{box-sizing:border-box}
.g h1,.g h2,.g h3{margin:0;letter-spacing:-.025em;line-height:1.1}
.g p{margin:0}.g ul,.g ol{margin:0;padding:0;list-style:none}
.g-wrap{max-width:1240px;margin-inline:auto;padding-inline:clamp(1.25rem,4vw,2.5rem)}
.g-sec{padding-block:clamp(4rem,8vw,7rem);border-top:1px solid var(--line)}
.g-alt{background:var(--alt)}
.g-dark{background:var(--k);color:#f4efe9;border-color:#2a231c}
.g-label{font-size:.74rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--od)}
.g-dark .g-label{color:#f5a25a}
.g-sec h2{font-size:clamp(1.8rem,3.6vw,2.9rem);font-weight:600;max-width:22ch;margin:.9rem 0 clamp(2rem,4vw,3.2rem)}
.g-lead{margin-top:1.3rem;font-size:1.1rem;color:var(--mut);max-width:48ch}
.g-dark .g-lead{color:#c5b9ad}
.g-num{font-size:.8rem;font-weight:600;color:var(--o);font-variant-numeric:tabular-nums}
.g-cta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}
.g-btn{display:inline-block;padding:.85rem 1.5rem;border-radius:3px;font-weight:500;font-size:.96rem;border:1px solid transparent;transition:background .2s,border-color .2s,transform .2s}
.g-btn-fill{background:var(--o);color:#fff}.g-btn-fill:hover{background:var(--od);transform:translateY(-1px)}
.g-btn-line{border-color:currentColor}.g-btn-line:hover{border-color:var(--o);color:var(--o)}
.g-link{display:inline-block;margin-top:1.2rem;font-weight:500;font-size:.94rem;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;padding-bottom:2px;transition:background-size .25s,color .2s}
.g-link:hover{background-size:100% 1px;color:var(--od)}
.g a:focus-visible{outline:2px solid var(--o);outline-offset:3px}

/* HERO */
.g-hero{padding-block:clamp(3rem,7vw,6rem)}
.g-hero h1{font-size:clamp(2.3rem,5.2vw,4.1rem);font-weight:700;margin:1.1rem 0 0;max-width:15ch}
.g-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.g-eco{position:relative;aspect-ratio:1/1;max-width:520px;width:100%;margin-inline:auto;border:1px solid var(--line);background:repeating-linear-gradient(0deg,transparent 0 39px,var(--line) 39px 40px),repeating-linear-gradient(90deg,transparent 0 39px,var(--line) 39px 40px)}
.g-eco-core{position:absolute;inset:27% 22%;background:var(--k);color:#fff;padding:1.2rem;display:flex;flex-direction:column;justify-content:space-between;border-radius:3px;border-top:3px solid var(--o)}
.g-eco-core .g-label{color:#f5a25a}.g-eco-core strong{font-size:1rem;font-weight:600}
.g-bars{display:flex;align-items:flex-end;gap:5px;height:38px}
.g-bars i{flex:1;background:#3a3027;border-radius:1px}.g-bars i:nth-child(1){height:40%}.g-bars i:nth-child(2){height:70%}.g-bars i:nth-child(3){height:55%;background:var(--o)}.g-bars i:nth-child(4){height:90%}.g-bars i:nth-child(5){height:65%}
.g-node{position:absolute;background:var(--w);border:1px solid var(--k);padding:.4rem .75rem;font-size:.8rem;font-weight:600;white-space:nowrap;transition:transform .25s,border-color .25s}
.g-node:hover{transform:translateY(-3px);border-color:var(--o)}
.n1{top:5%;left:6%}.n2{top:5%;right:6%}.n3{top:50%;left:-3%;transform:translateY(-50%)}.n4{top:50%;right:-3%;transform:translateY(-50%)}.n5{bottom:6%;left:14%}.n6{bottom:6%;right:10%}
.n3:hover,.n4:hover{transform:translateY(-55%)}
.g-eco-note{position:absolute;bottom:-1.7rem;left:0;font-size:.72rem;color:var(--mut)}

/* MÉTIER */
.g-three{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--k)}
.g-three article{padding:2rem 2rem 2rem 0;border-right:1px solid var(--line);margin-right:2rem}
.g-three article:last-child{border:0;margin:0}
.g-three h3{font-size:clamp(1.8rem,3vw,2.5rem);margin:1rem 0 .8rem;font-weight:700}
.g-three p{color:var(--mut);max-width:32ch}

/* SOLUTIONS */
.g-sol{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}
.g-card{border:1px solid var(--line);background:#fff;padding:clamp(1.5rem,3vw,2.2rem);display:flex;flex-direction:column;gap:.8rem;transition:transform .25s,border-color .25s}
.g-card:hover{transform:translateY(-4px);border-color:var(--o)}
.g-card h3{font-size:1.7rem;font-weight:700}
.g-card>p:not(.g-label){color:var(--mut);max-width:44ch}
.g-big{grid-row:span 2;background:var(--k);color:#f4efe9;border-color:var(--k)}
.g-big>p:not(.g-label){color:#c5b9ad}.g-big h3{font-size:clamp(2rem,4vw,3rem)}
.g-chips{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.6rem}
.g-chips li{border:1px solid #4a3f35;padding:.3rem .8rem;font-size:.84rem;border-radius:2px}
.g-chips-l li{border-color:var(--line);background:#fff;color:var(--mut)}
.g-ui{margin-top:auto;padding-top:2rem;display:grid;grid-template-columns:2fr 1fr;gap:.6rem;height:190px}
.g-ui i{background:#241d17;border:1px solid #3a3027;border-radius:2px}.g-ui i:first-child{grid-row:span 2;background:linear-gradient(180deg,#241d17 60%,rgba(232,113,10,.35))}
.g-list li{padding:.5rem 0;border-top:1px solid var(--line);font-size:.92rem;color:var(--mut)}
.g-wide{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:center;gap:2rem}

/* SECTEURS */
.g-sectors{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--k)}
.g-sectors li{padding:1.3rem 0;border-bottom:1px solid var(--line);font-size:clamp(1.05rem,1.8vw,1.4rem);font-weight:500;transition:color .2s,padding-left .2s}
.g-sectors li:hover{color:var(--od);padding-left:.5rem}

/* TIMELINE */
.g-tl{display:grid;grid-template-columns:repeat(6,1fr);gap:1.25rem;position:relative}
.g-tl li{border-top:3px solid var(--k);padding-top:1rem;position:relative}
.g-tl li::before{content:"";position:absolute;top:-8px;left:0;width:13px;height:13px;background:var(--o);border-radius:50%}
.g-tl h3{font-size:1.05rem;margin:.4rem 0}.g-tl p{font-size:.88rem;color:var(--mut)}

/* INFRA */
.g-flow{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;margin-bottom:2.5rem}
.g-flow span{border:1px solid #4a3f35;padding:.7rem 1.2rem;font-weight:500;background:var(--k2)}
.g-flow span:nth-of-type(3){border-color:var(--o)}
.g-flow b{color:var(--o)}
.g-six{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #3a3027}
.g-six article{padding:1.6rem 1.5rem 1.6rem 0;border-bottom:1px solid #3a3027}
.g-six h3{font-size:1.15rem;margin-bottom:.4rem}.g-six p{color:#c5b9ad;font-size:.94rem;max-width:34ch}

/* SPLIT / DL */
.g-split{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,6vw,5rem);align-items:start}
.g-split h2{margin-bottom:0}
.g-dl{margin:0;border-top:1px solid var(--k)}
.g-dl>div{padding:1.3rem 0;border-bottom:1px solid var(--line)}
.g-dl dt{font-weight:600;font-size:1.1rem}.g-dl dd{margin:.3rem 0 0;color:var(--mut);max-width:50ch}

/* RÉALISATIONS */
.g-proj{border-top:2px solid var(--k)}
.g-proj article{display:grid;grid-template-columns:1fr 1.2fr 1.2fr auto;gap:2rem;padding:1.8rem 0;border-bottom:1px solid var(--line);align-items:start;transition:padding-left .25s}
.g-proj article:hover{padding-left:.6rem}
.g-proj h3{font-size:1.5rem;margin-top:.3rem}
.g-proj p{font-size:.94rem;color:var(--mut)}
.g-proj p b{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--k);margin-bottom:.25rem}
.g-proj .g-link{margin:0}

/* CONTACT */
.g-contact h2{max-width:18ch}
.g-addr{font-style:normal;line-height:2;color:#c5b9ad;border-top:2px solid var(--o);padding-top:1.4rem;margin-top:2.2rem}
.g-addr strong{display:block;color:#fff;font-size:1.2rem}
.g-addr a{color:#fff}.g-addr a:hover{color:#f5a25a}

/* MOTION */
.g-js .rv{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
.g-js .rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.g-js .rv{opacity:1;transform:none;transition:none}.g *{transition:none!important}}

/* RESPONSIVE */
@media(max-width:1024px){
  .g-hero-grid,.g-split{grid-template-columns:1fr}
  .g-tl{grid-template-columns:repeat(3,1fr);row-gap:2rem}
  .g-sectors{grid-template-columns:repeat(3,1fr)}
  .g-proj article{grid-template-columns:1fr 1fr}.g-proj .g-link{grid-column:1/-1}
}
@media(max-width:768px){
  .g-three,.g-sol,.g-six{grid-template-columns:1fr}
  .g-three article{border-right:0;margin:0;border-bottom:1px solid var(--line);padding-right:0}
  .g-big{grid-row:auto}.g-wide{flex-direction:column;align-items:flex-start}
  .g-sectors{grid-template-columns:repeat(2,1fr)}
  .g-tl{grid-template-columns:repeat(2,1fr)}
  .g-proj article{grid-template-columns:1fr;gap:1rem}
  .g-eco{margin-bottom:2rem}.n3{left:0}.n4{right:0}
  .g-cta .g-btn{flex:1 1 100%;text-align:center}
}
