/* RHÔNE TERRA — expérience 3D Scroll (hero + parcours). Complète site.css. */
@font-face{font-family:'Montserrat';font-style:italic;font-weight:800;font-display:swap;src:url('../fonts/montserrat-latin-800-italic.woff2') format('woff2')}
@font-face{font-family:'Montserrat';font-style:italic;font-weight:700;font-display:swap;src:url('../fonts/montserrat-latin-700-italic.woff2') format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/montserrat-latin-800-normal.woff2') format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/montserrat-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Outfit';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/outfit-latin-300-normal.woff2') format('woff2')}
@font-face{font-family:'Outfit';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/outfit-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Outfit';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/outfit-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Outfit';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/outfit-latin-600-normal.woff2') format('woff2')}
:root{--font:'Outfit','Segoe UI',Arial,sans-serif;--display:'Montserrat','Arial Black',Arial,sans-serif;--orange:#f26a14;--orange2:#ff9a3d;--night:#080d14}
body{background:var(--night)}
main>section:not(.xp),.footer{position:relative;z-index:2}
h1,h2,h3,.brand-text,.footer-logo{font-family:var(--display)}

/* ---------- navigation (maquette) ---------- */
.navbar{height:74px;padding:0 clamp(18px,8.6vw,146px);border-bottom:0;background:linear-gradient(180deg,rgba(6,9,15,.82),rgba(6,9,15,0));gap:24px}
.navbar.scrolled{height:66px;background:rgba(8,12,19,.9)}
.brand{gap:12px}.brand-icon{width:58px;filter:drop-shadow(0 0 10px rgba(242,106,20,.45))}
.brand-text{font-size:25px;font-weight:800;letter-spacing:.02em}.brand-text b{color:var(--orange)}
.brand-text small{font-family:var(--font);font-size:8.5px;letter-spacing:.24em;font-weight:500;color:#d5d9de;margin-top:6px}
.menu{gap:clamp(22px,3.9vw,66px);align-self:stretch;margin-left:auto;margin-right:clamp(10px,5vw,96px);border-bottom:1px solid rgba(255,255,255,.14)}
.menu a{font-family:var(--font);font-size:14.5px;font-weight:500;color:#eef0f2;position:relative;height:100%;display:flex;align-items:center}
.menu a.active,.menu a:hover{color:#fff}
.menu a:after{content:'';position:absolute;left:-6px;right:-6px;bottom:-1px;height:2px;background:linear-gradient(90deg,transparent,var(--orange2),transparent);box-shadow:0 0 12px var(--orange);opacity:0;transition:opacity .25s}
.menu a.active:after,.menu a:hover:after{opacity:1}
.button-quote{font-family:var(--font);display:inline-flex;align-items:center;gap:14px;padding:10px 20px;border-radius:10px;border:1.5px solid var(--orange);color:#fff;font-size:14.5px;font-weight:500;background:rgba(20,12,8,.45);box-shadow:0 0 18px rgba(242,106,20,.35),inset 0 0 14px rgba(242,106,20,.12);transition:background .25s,box-shadow .25s,transform .25s;white-space:nowrap}
.button-quote:hover{background:rgba(242,106,20,.25);box-shadow:0 0 26px rgba(242,106,20,.6),inset 0 0 14px rgba(242,106,20,.2);transform:translateY(-2px)}
.button-quote svg{width:19px;height:19px;flex:none}

/* ---------- scène ---------- */
.xp{position:relative;height:100svh;min-height:600px;color:#fff;background:#0b111a url('../images/hero.webp') center 35%/cover no-repeat}
.rt-3d .xp{height:920vh;background:#0b111a}
.xp-sticky{position:sticky;top:0;height:100svh;min-height:560px;overflow:hidden}
#rt-canvas{position:absolute;inset:0;width:100%;height:100%;display:none;outline:0}
.rt-3d #rt-canvas{display:block}
.xp-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(6,9,15,.62) 0%,rgba(6,9,15,.28) 22%,rgba(6,9,15,0) 46%),linear-gradient(180deg,rgba(6,9,15,.55) 0%,rgba(6,9,15,0) 17%),linear-gradient(0deg,rgba(6,9,15,.5) 0%,rgba(6,9,15,0) 22%);transition:opacity .6s}
.xp-stage{position:absolute;left:clamp(22px,8.7vw,146px);pointer-events:none;opacity:0;transform:translate3d(0,26px,0);transition:opacity .55s ease,transform .7s cubic-bezier(.2,.7,.2,1);will-change:opacity,transform}
.xp-stage.on{opacity:1;transform:none;pointer-events:auto}
html:not(.rt-3d) .xp-stage{display:none}html:not(.rt-3d) .xp-stage.xp-hero,html:not(.rt-3d) .xp-stage.xp-metiers{display:block;opacity:1;transform:none;pointer-events:auto}
.xp-eyebrow{font-family:var(--display);font-style:italic;font-weight:600;font-size:clamp(10px,.84vw,14px);letter-spacing:.32em;color:#e9ebee;margin:0 0 clamp(10px,1.2vw,20px) 2.1vw;display:flex;gap:.9em;align-items:center}
.xp-eyebrow i{font-style:normal;color:var(--orange)}
.xp-hero{top:clamp(110px,14.2vh,150px);max-width:min(620px,86vw)}
.xp-hero h1,.xp-step h2,.xp-end h2{font-family:var(--display);font-style:italic;font-weight:800;text-transform:uppercase;margin:0;letter-spacing:-.012em;line-height:1.02;font-size:clamp(36px,3.42vw,70px);filter:drop-shadow(0 6px 18px rgba(0,0,0,.55))}
.xp-hero h1 span{display:block;padding-right:.2em;background:linear-gradient(180deg,#fff 18%,#c9cdd3 62%,#8e949c 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.xp-hero h1 span:nth-child(1){margin-left:.32em}.xp-hero h1 span:nth-child(2){margin-left:0}
.xp-hero h1 em,.xp-step h2 em,.xp-end h2 em,.xp-metiers h2 em{display:block;font-style:italic;padding-right:.2em;background:linear-gradient(180deg,#ffb04a 5%,#f26a14 55%,#d94e06 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 18px rgba(242,106,20,.35))}
.xp-desc{font-size:clamp(14px,1.08vw,19px);font-weight:300;line-height:1.38;color:#f2f3f5;max-width:22em;margin:clamp(14px,1.5vw,24px) 0 clamp(18px,2vw,30px);text-shadow:0 2px 10px rgba(0,0,0,.6)}
.button-hero{font-family:var(--font);display:inline-flex;align-items:center;gap:30px;padding:clamp(11px,.85vw,15px) clamp(26px,2.7vw,46px);border-radius:11px;border:1.5px solid #ffab5e;background:linear-gradient(180deg,#f47a1c,#d95408);color:#fff;font-weight:500;font-size:clamp(14px,1.1vw,18.5px);box-shadow:0 0 0 1px rgba(255,140,60,.25),0 10px 34px rgba(242,106,20,.45),inset 0 1px 0 rgba(255,255,255,.35);transition:transform .25s,box-shadow .25s}
.button-hero:hover{transform:translateY(-3px);box-shadow:0 0 0 1px rgba(255,140,60,.4),0 16px 44px rgba(242,106,20,.65),inset 0 1px 0 rgba(255,255,255,.4)}
.button-hero span{font-size:1.25em;line-height:1}
.xp-metiers{bottom:clamp(26px,6.2vh,62px);left:clamp(22px,12.4vw,208px)}
.xp-metiers p{font-family:var(--display);font-style:italic;font-weight:600;font-size:clamp(10px,.84vw,14px);letter-spacing:.34em;color:var(--orange2);margin:0 0 14px 1em;display:flex;align-items:center;gap:1em}
.xp-metiers p:before{content:'';width:1.4em;height:2px;background:var(--orange)}
.xp-metiers h2{font-family:var(--display);font-style:italic;font-weight:800;text-transform:uppercase;font-size:clamp(24px,2.5vw,48px);line-height:.98;margin:0;position:relative;padding-left:.75em;filter:drop-shadow(0 4px 14px rgba(0,0,0,.6))}
.xp-metiers h2:before{content:'';position:absolute;left:0;top:4%;bottom:6%;width:2px;background:var(--orange);transform:skewX(-16deg);box-shadow:0 0 10px var(--orange)}
.xp-metiers h2 span{display:block;background:linear-gradient(180deg,#fff 20%,#b9bec6 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.xp-metiers h2 em{margin-left:-.35em}
.xp-step{top:50%;transform:translate3d(0,calc(-50% + 26px),0);max-width:min(470px,84vw)}
.xp-step.on{transform:translate3d(0,-50%,0)}
.xp-step .xp-index{font-family:var(--display);font-style:italic;font-weight:700;font-size:13px;letter-spacing:.3em;color:var(--orange2);display:flex;align-items:center;gap:14px;margin-bottom:18px}
.xp-step .xp-index:before{content:'';width:34px;height:2px;background:var(--orange);box-shadow:0 0 10px var(--orange)}
.xp-step h2{font-size:clamp(32px,3.2vw,60px)}
.xp-step h2 span{display:block;background:linear-gradient(180deg,#fff 18%,#b9bec6 100%);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.2em}
.xp-step p{font-size:clamp(14px,1.05vw,17px);font-weight:300;line-height:1.6;color:#e8eaed;margin:20px 0 0;max-width:25em;text-shadow:0 2px 10px rgba(0,0,0,.7)}
.xp-step ul{list-style:none;padding:0;margin:20px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.xp-step li{font-size:12px;letter-spacing:.06em;padding:7px 13px;border:1px solid rgba(255,154,61,.5);border-radius:99px;background:rgba(10,12,18,.55);backdrop-filter:blur(6px)}
.xp-end{left:0;right:0;top:clamp(92px,13vh,140px);text-align:center;display:flex;flex-direction:column;align-items:center}
.xp-end h2{font-size:clamp(28px,3vw,56px);padding:0 16px}
.xp-end h2 span{display:inline;background:linear-gradient(180deg,#fff 18%,#b9bec6 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.xp-end h2 em{display:inline}
.xp-end p{font-size:clamp(14px,1.05vw,17px);font-weight:400;color:#fff;margin:16px 0 24px;max-width:36em;padding:10px 20px;border-radius:12px;background:rgba(8,10,16,.55);backdrop-filter:blur(8px);text-shadow:0 1px 6px rgba(0,0,0,.8)}
.xp-dots{position:absolute;right:clamp(14px,2.6vw,44px);top:50%;transform:translateY(-58%);display:flex;flex-direction:column;gap:30px;z-index:3}
.xp-dots:before{content:'';position:absolute;left:50%;top:6px;bottom:6px;width:1px;background:rgba(255,255,255,.45)}
.xp-dots button{position:relative;width:11px;height:11px;border-radius:50%;border:0;padding:0;background:#e9ebee;box-shadow:0 0 0 0 rgba(242,106,20,0);transition:all .3s}
.xp-dots button:after{content:'';position:absolute;inset:-12px}
.xp-dots button.on{background:var(--orange2);box-shadow:0 0 0 5px rgba(8,10,14,.8),0 0 0 7px var(--orange2),0 0 22px 6px rgba(242,106,20,.8)}
.xp-dots button span{position:absolute;right:26px;top:50%;transform:translateY(-50%);font-size:11px;letter-spacing:.16em;white-space:nowrap;opacity:0;transition:opacity .25s;pointer-events:none;text-transform:uppercase;color:#fff;text-shadow:0 1px 6px #000}
.xp-dots button:hover span,.xp-dots button:focus-visible span{opacity:1}
.xp-scroll{position:absolute;left:auto;right:clamp(40px,6.3vw,106px);bottom:clamp(250px,34.5vh,330px);display:flex;flex-direction:column;align-items:center;gap:10px;font-size:12px;letter-spacing:.36em;color:#fff;text-shadow:0 1px 8px #000}
.xp-scroll svg{width:22px;color:var(--orange2);animation:xpBob 1.6s ease-in-out infinite}
@keyframes xpBob{50%{transform:translateY(7px)}}
.xp-topo-label{position:absolute;left:0;top:0;margin:-34px 0 0 -30px;font-size:15px;color:#fff;text-shadow:0 1px 8px #000;pointer-events:none;opacity:0;transition:opacity .4s;white-space:nowrap}
.xp-topo-label sup{font-size:.6em}
.xp-hud{position:absolute;left:clamp(22px,8.7vw,146px);bottom:26px;display:flex;align-items:center;gap:14px;font-family:var(--display);font-style:italic;font-size:12px;letter-spacing:.2em;color:rgba(255,255,255,.65);opacity:0;transition:opacity .4s}
.xp-hud b{font-size:22px;color:var(--orange2)}.xp-hud u{display:block;width:150px;height:2px;background:rgba(255,255,255,.25);text-decoration:none}.xp-hud i{display:block;height:100%;background:var(--orange);transform-origin:left;transform:scaleX(0);box-shadow:0 0 8px var(--orange)}
.rt-3d .xp:not(.at-hero) .xp-hud{opacity:1}
html:not(.rt-3d) .xp-dots,html:not(.rt-3d) .xp-hud,html:not(.rt-3d) .xp-topo-label{display:none}
.rt-loader{position:absolute;inset:0;z-index:6;display:none;align-items:center;justify-content:center;background:radial-gradient(ellipse at 38% 55%,#17120e 0%,#0a0d13 62%,#06080c 100%);transition:opacity .9s ease,visibility .9s;overflow:hidden}
.rt-loader:before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px) 0 0/48px 48px,linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px) 0 0/48px 48px;-webkit-mask-image:radial-gradient(ellipse at 50% 50%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse at 50% 50%,#000 20%,transparent 75%)}
.rt-3d .rt-loader{display:flex}.rt-loader.done{opacity:0;visibility:hidden}
.rtl{position:relative;display:grid;grid-template-columns:auto auto;align-items:center;gap:clamp(28px,6vw,110px);padding:70px 24px 20px}
.rtl-scene{width:clamp(250px,36vw,560px)}.rtl-scene svg{display:block;width:100%;height:auto;overflow:visible}
.rtl-grid{stroke:rgba(242,106,20,.2);stroke-width:.6}.rtl-pad{fill:rgba(242,106,20,.05);stroke:rgba(255,154,61,.55);stroke-width:.8;stroke-dasharray:5 4}.rtl-found{fill:#14171c;stroke:#ff9a3d;stroke-width:.9}
.rtl-ghost{fill:none;stroke:rgba(255,255,255,.3);stroke-width:.8;stroke-dasharray:3 4;transition:opacity .3s}
.rtl-floor{transition:none;will-change:transform,opacity}
.rtl-fl{fill:#1b1f25;stroke:#0b0d10;stroke-width:.5}.rtl-fr{fill:#272c34;stroke:#0b0d10;stroke-width:.5}.rtl-top{fill:#3a414b;stroke:#0b0d10;stroke-width:.5}
.rtl-edge{fill:none;stroke:rgba(255,255,255,.28);stroke-width:.9}.rtl-floor.new .rtl-edge{stroke:#ffb04a;stroke-width:1.6;filter:drop-shadow(0 0 4px #f26a14)}.rtl-floor.new .rtl-top{fill:#5a4630}
.rtl-win{fill:#0d1218;stroke:rgba(255,255,255,.08);stroke-width:.4;transition:fill .5s}.rtl-win.r{fill:#131a22}.rtl-win.lit{fill:#ffb866;filter:drop-shadow(0 0 3px rgba(255,150,60,.9))}
.rt-loader.complete .rtl-win{fill:#ffc27a}
.rtl-steel{stroke:#ff9a3d;stroke-width:1.5;stroke-linecap:round}.rtl-lat{stroke:rgba(255,154,61,.75);stroke-width:.7}.rtl-tie{stroke:rgba(255,154,61,.6);stroke-width:.7}
.rtl-base{fill:#1b1f25;stroke:#ff9a3d;stroke-width:.8}.rtl-cw{fill:#3a414b;stroke:#ff9a3d;stroke-width:.7}.rtl-cab{fill:#f26a14;stroke:#ffc27a;stroke-width:.6}
.rtl-beacon{fill:#ff3b1f;animation:rtlBlink 1.4s steps(2,jump-none) infinite}@keyframes rtlBlink{50%{opacity:.15}}
.rtl-cable{stroke:rgba(255,255,255,.8);stroke-width:.7;fill:none}.rtl-load{fill:#4a525d;stroke:#ffb04a;stroke-width:.8}
.rtl-trolley{animation:rtlTrolley 5.5s ease-in-out infinite alternate}@keyframes rtlTrolley{from{transform:translate(-22px,-12.7px)}to{transform:translate(40px,23.1px)}}
.rtl-info{min-width:min(300px,80vw)}
.rtl-brand{font-family:var(--display);font-weight:800;font-size:clamp(17px,1.5vw,24px);letter-spacing:.04em;margin:0 0 6px;color:#fff}.rtl-brand b{color:var(--orange)}
.rtl-pct{display:flex;align-items:flex-start;font-family:var(--display);font-style:italic;font-weight:800;line-height:.9;font-variant-numeric:tabular-nums}
.rtl-pct b{font-size:clamp(84px,10.5vw,176px);letter-spacing:-.04em;padding-right:.06em;background:linear-gradient(180deg,#fff 15%,#c9cdd3 60%,#7d838c 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.rtl-pct span{font-size:clamp(26px,2.6vw,44px);margin-top:.35em;color:var(--orange)}
.rtl-bar{height:2px;background:rgba(255,255,255,.16);margin:18px 0 22px;overflow:hidden}.rtl-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--orange),var(--orange2));transform-origin:left;transform:scaleX(0);box-shadow:0 0 12px var(--orange)}
.rtl-phases{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.rtl-phases li{display:flex;align-items:center;gap:14px;font-size:14px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.3);transition:color .35s}
.rtl-phases li span{font-family:var(--display);font-style:italic;font-weight:700;font-size:11px;letter-spacing:.1em;width:30px;height:30px;flex:none;display:grid;place-items:center;border:1px solid currentColor;border-radius:50%;transition:all .35s}
.rtl-phases li.done{color:rgba(255,255,255,.78)}.rtl-phases li.done span{background:rgba(255,255,255,.1)}
.rtl-phases li.on{color:#fff}.rtl-phases li.on span{color:#fff;border-color:var(--orange2);background:var(--orange);box-shadow:0 0 18px rgba(242,106,20,.75)}
.rtl-cap{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:#8d949d;margin:24px 0 0}
@media(max-width:820px){.rtl{grid-template-columns:1fr;justify-items:center;text-align:left;gap:10px;padding-top:60px}.rtl-scene{width:min(300px,70vw)}.rtl-pct b{font-size:76px}.rtl-phases{grid-template-columns:1fr 1fr;gap:9px 14px}.rtl-phases li{font-size:11px;gap:9px;letter-spacing:.1em}.rtl-phases li span{width:24px;height:24px;font-size:9px}.rtl-bar{margin:10px 0 14px}.rtl-cap{margin-top:14px}}
@media(prefers-reduced-motion:reduce){.rtl-trolley,.rtl-beacon{animation:none}}
/* sections suivantes */
.intro{background:#f9f9f7}
.services .section-header h2 em,.feature h2 em{color:var(--orange)}
.section-header h2,.feature h2,.contact-intro h2,.intro-statement{font-family:var(--display);letter-spacing:-.045em}
.button{font-family:var(--font)}
/* responsive */
@media(max-width:1100px){.menu{margin-right:10px;gap:20px}.menu a{font-size:13px}.brand-icon{width:46px}.brand-text{font-size:21px}}
@media(max-width:900px){.navbar{height:66px}.menu{border-bottom:0;margin:0;background:rgba(8,12,19,.97)}.menu a{height:auto;font-size:16px}.menu a:after{display:none}.nav-actions .button-quote{display:none}
 .xp-hero{top:96px}.xp-metiers{left:22px;bottom:22px}.xp-scroll{display:none}.xp-shade{background:linear-gradient(180deg,rgba(6,9,15,.78) 0%,rgba(6,9,15,.35) 34%,rgba(6,9,15,0) 55%),linear-gradient(0deg,rgba(6,9,15,.7) 0%,rgba(6,9,15,0) 30%)}
 .xp-step{top:auto;bottom:74px;transform:translate3d(0,26px,0)}.xp-step.on{transform:none}.xp-hud{bottom:18px}.xp-dots{gap:22px}}
@media(max-width:560px){.xp-hero h1{font-size:clamp(34px,10.4vw,46px)}.xp-eyebrow{font-size:9px;letter-spacing:.22em;margin-left:0}.xp-desc{font-size:14px}.xp-metiers h2{font-size:23px}.xp-step h2{font-size:30px}.xp-step p{font-size:13.5px}.xp-step li{font-size:11px;padding:5px 10px}.xp-dots{right:10px}.xp-hud u{width:90px}.brand-text small{display:none}}
@media(prefers-reduced-motion:reduce){.xp-scroll svg{animation:none}}
