/* ============ SECTIONS 1-5 ============ */
.sec-head{display:flex;justify-content:space-between;align-items:baseline;gap:2rem;margin-bottom:clamp(2rem,4vw,4rem);flex-wrap:wrap}
.sec-head .tp-label{flex:none}

/* 01 mission */
.mission{display:grid;grid-template-columns:repeat(12,1fr);gap:3rem 2rem}
.mission__t{grid-column:1/8}
.mission__b{grid-column:9/13;align-self:start;padding-top:2rem;display:flex;flex-direction:column;gap:1.5rem}
.mission__quote{grid-column:1/-1;margin-top:clamp(3rem,6vw,5rem);padding-top:clamp(2.5rem,5vw,4rem);border-top:1px solid var(--line);text-align:center}
.mission__quote .tp-quote{display:block;margin-inline:auto;max-width:10em}
.mission__quote .tp-small{margin-top:1rem}
.mission__team{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:clamp(2rem,4vw,3rem)}
.mission__team figure{position:relative;overflow:hidden}
.mission__team img{width:100%;aspect-ratio:16/9;object-fit:cover;filter:saturate(.75) contrast(1.03)}
.mission__team figcaption{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;opacity:.6;padding-top:.6rem}

/* 02 problem */
.problem__intro{max-width:12em;margin-bottom:clamp(2.5rem,5vw,4rem)}
.problem__list{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.problem__item{padding:clamp(1.5rem,2.5vw,2.5rem);position:relative;display:flex;flex-direction:column;gap:1.2rem;min-height:220px}
.problem__item + .problem__item{border-left:1px solid var(--line)}
.problem__num{font-family:var(--serif);font-weight:300;font-size:clamp(5rem,10vw,9rem);line-height:.8;color:var(--line);opacity:.55;position:absolute;top:.5rem;right:0;z-index:0;user-select:none;pointer-events:none}
.problem__item .tp-h3{position:relative;z-index:1;max-width:7em;margin-top:auto}
.problem__item .tp-body{position:relative;z-index:1;font-size:.95rem}
.problem__close{margin-top:clamp(3rem,6vw,5rem);font-family:var(--serif);font-style:italic;font-size:clamp(1.5rem,3vw,2.6rem);line-height:1.25;color:var(--accent);max-width:17em;margin-left:auto;text-align:right}

/* 03 solutions */
.solutions__intro{font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.8rem);font-weight:300;max-width:11em;margin-bottom:clamp(2rem,4vw,3.5rem)}
.solutions__list{border-top:1px solid var(--line)}
.sol-row{display:grid;grid-template-columns:60px 1fr 1fr;align-items:baseline;gap:0 2rem;padding:1.6rem 0;border-bottom:1px solid var(--line);position:relative;transition:background .3s}
.sol-row:hover{background:rgba(21,19,15,.02)}
.sol-row__num{font-family:var(--sans);font-size:.8rem;color:var(--accent);font-weight:500;letter-spacing:.1em}
.sol-row__t{font-family:var(--serif);font-weight:400;font-size:clamp(1.3rem,2vw,1.9rem);line-height:1.15;letter-spacing:-.01em}
.sol-row__d{max-width:22em;font-size:.92rem;color:color-mix(in srgb,var(--ink) 68%,transparent)}
.sol-row__img{position:absolute;right:0;top:50%;transform:translateY(-50%);width:clamp(180px,22vw,300px);aspect-ratio:3/2;object-fit:cover;opacity:0;pointer-events:none;transition:opacity .25s;z-index:2;box-shadow:0 20px 60px rgba(0,0,0,.18)}
.sol-row:hover .sol-row__img{opacity:1}
.solutions__close{margin-top:clamp(1.5rem,3vw,2.5rem);font-size:.9rem;color:color-mix(in srgb,var(--ink) 55%,transparent);max-width:30em}

/* 04 construction (dark) */
.dark{background:var(--bg-dark);color:var(--ink-inv)}
.construction{position:relative;overflow:hidden}
.construction__bg{position:absolute;inset:0;z-index:0}
.construction__bg img{width:100%;height:100%;object-fit:cover;opacity:.16;filter:saturate(.5)}
.construction__inner{position:relative;z-index:1}
.construction__title{max-width:10em;margin-block:1rem 3rem}
.construction__sub{max-width:21em;font-size:clamp(1rem,1.2vw,1.25rem);line-height:1.6;opacity:.85;margin-bottom:clamp(3rem,6vw,5rem)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;position:relative;margin-bottom:clamp(3rem,6vw,5rem)}
.steps::before{content:"";position:absolute;top:1.1rem;left:0;right:0;height:1px;border-top:1px dashed rgba(245,242,236,.3);background:none}
.step{display:flex;flex-direction:column;gap:.8rem;position:relative;padding-top:3.5rem}
.step::before{content:"";position:absolute;top:.6rem;left:0;width:1rem;height:1rem;border-radius:50%;background:var(--accent);flex:none}
.step__n{font-family:var(--serif);font-weight:300;font-size:clamp(2.2rem,3.5vw,3.5rem);line-height:1;opacity:.9}
.step__t{font-family:var(--serif);font-weight:400;font-size:clamp(1.1rem,1.5vw,1.4rem);line-height:1.2}
.step__d{font-size:.9rem;line-height:1.55;opacity:.75}
.construction__reassure{max-width:26em;font-size:1.05rem;line-height:1.6;opacity:.85;margin-bottom:2.5rem}
.construction__cta{display:inline-block;font-size:.9rem;font-weight:500;color:var(--accent);border-bottom:1px solid var(--accent);padding-bottom:.2em;transition:opacity .3s}
.construction__cta:hover{opacity:.8}
.construction__gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2.5rem}
.construction__gallery figure{position:relative;overflow:hidden}
.construction__gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:saturate(.6) contrast(1.05);transition:transform .5s ease,filter .5s ease}
.construction__gallery figure:hover img{transform:scale(1.04);filter:saturate(.8)}
.construction__gallery figcaption{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;opacity:.6;padding-top:.5rem}

/* 05 réalisations */
.gallery{display:flex;flex-direction:column;gap:clamp(3rem,7vw,5rem)}
.g-item{display:grid;grid-template-columns:repeat(12,1fr);gap:0 2rem;align-items:end}
.g-item__img{grid-column:1/9;aspect-ratio:16/10;overflow:hidden}
.g-item__img img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.6,.2,1)}
.g-item:hover .g-item__img img{transform:scale(1.03)}
.g-item__cap{grid-column:9/13;padding-bottom:.5rem}
.g-item__cap .tp-small{margin-top:.6rem}
.g-item--rev .g-item__img{grid-column:5/13}
.g-item--rev .g-item__cap{grid-column:1/5;order:-1}
