/* ============================================================
   FONTAINE DIVINE — site vitrine · HTML / CSS / JavaScript (vanilla, sans dépendance)
   Palette latex-forêt-ambre · Bricolage Grotesque + Instrument Sans
   ============================================================ */
:root{
  --ink:#0c1d15; --pine:#10261b; --forest:#1b4431; --leaf:#2e7d51; --moss:#79b98f;
  --latex:#f4efe1; --paper:#fbf7ec; --sand:#e9e0c9; --bark:#7a5c3e;
  --amber:#e79b2e; --tangerine:#ed7d22; --up:#4caf77; --down:#d65f51;
  --display:"Bricolage Grotesque","Instrument Sans",sans-serif;
  --body:"Instrument Sans",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,monospace;
  --ease:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;color-scheme:light}
body{background:var(--latex);color:var(--ink);font-family:var(--body);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
::selection{background:var(--amber);color:var(--ink)}
.container{max-width:80rem;margin-inline:auto;padding-inline:1.5rem}
section{position:relative}
.sec{padding-block:6rem}
.scrollfix{scroll-margin-top:6.5rem}

/* Grain ambiant */
body::after{content:"";position:fixed;inset:0;z-index:80;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ---------- typographie ---------- */
.display{font-family:var(--display);font-weight:800;letter-spacing:-.015em;line-height:1.02}
.eyebrow{font-family:var(--mono);font-size:.69rem;text-transform:uppercase;letter-spacing:.22em;color:var(--leaf);display:block;margin-bottom:1rem}
.h2{font-size:clamp(2.1rem,4.6vw,3.15rem)}
.mono{font-family:var(--mono)}
.ghost{position:absolute;font-family:var(--display);font-weight:800;text-transform:uppercase;line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(12,29,21,.20);pointer-events:none;user-select:none}
.ghost-light{-webkit-text-stroke:1.5px rgba(244,239,225,.16)}

/* ---------- keyframes ---------- */
@keyframes kenburns{from{transform:scale(1.03)}to{transform:scale(1.16) translate(-1.8%,1.6%)}}
.kenburns{animation:kenburns 17s ease-in-out infinite alternate;will-change:transform}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes riseUp{from{transform:translateY(115%)}to{transform:translateY(0)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes spinSlow{to{transform:rotate(360deg)}}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes dripDrop{0%{transform:translateY(-4px);opacity:0}18%{opacity:1}75%{transform:translateY(30px);opacity:1}100%{transform:translateY(40px);opacity:0}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(231,155,46,.55)}70%{box-shadow:0 0 0 9px rgba(231,155,46,0)}}
@keyframes panelIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes reveal{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes growX{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes cue{from{transform:translateY(-100%)}to{transform:translateY(240%)}}

/* Révélations au scroll — pilotées par IntersectionObserver (JS) */
html.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .85s ease,transform .85s var(--ease)}
html.js .reveal.in{opacity:1;transform:none}

/* ---------- barre de progression ---------- */
.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:95}
.progress i{display:block;height:100%;background:var(--amber);transform:scaleX(0);transform-origin:0 50%}

/* ---------- header ---------- */
.topbar{background:var(--ink);color:rgba(244,239,225,.75);font-family:var(--mono);font-size:.66rem;letter-spacing:.06em}
.topbar .container{display:flex;justify-content:space-between;gap:2rem;padding-block:.45rem}
.topbar b{color:var(--moss);font-weight:500}
.site-head{position:sticky;top:0;z-index:90;background:var(--latex);border-bottom:1px solid rgba(12,29,21,.12)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-block:.85rem}
.brand{display:flex;align-items:center;gap:.8rem}
.brand svg{width:2.6rem;height:2.6rem;transition:transform .3s var(--ease)}
.brand:hover svg{transform:rotate(-8deg)}
.brand-name{font-family:var(--display);font-weight:800;font-size:1.28rem;line-height:1;letter-spacing:-.01em}
.brand-sub{display:block;margin-top:.3rem;font-family:var(--mono);font-size:.56rem;text-transform:uppercase;letter-spacing:.22em;color:var(--leaf)}
.nav-links{display:flex;gap:1.7rem}
.nav-links a{font-size:.86rem;font-weight:500;color:rgba(12,29,21,.8)}
.nav-cta{display:inline-flex;align-items:center;gap:.5rem;background:var(--ink);color:var(--latex);border-radius:999px;padding:.65rem 1.3rem;font-size:.86rem;font-weight:600;transition:background .3s,transform .3s}
.nav-cta:hover{background:var(--forest);transform:translateY(-2px)}
.nav-cta svg{width:1rem;height:1rem}
.burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:2.7rem;height:2.7rem;border:1px solid rgba(12,29,21,.18);border-radius:999px;background:none;cursor:pointer;padding:0 .7rem}
.burger span{display:block;height:2px;background:var(--ink);border-radius:2px;transition:transform .3s var(--ease),opacity .2s}
.site-head.open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.site-head.open .burger span:nth-child(2){opacity:0}
.site-head.open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{display:none;overflow:hidden;max-height:0;background:var(--paper);border-top:1px solid rgba(12,29,21,.1);transition:max-height .35s var(--ease)}
.site-head.open .mobile-menu{max-height:26rem}
.mobile-menu a{display:block;padding:.85rem 1.5rem;font-family:var(--display);font-weight:700;font-size:1.1rem;border-bottom:1px dashed rgba(12,29,21,.12)}
.mobile-menu a:hover{background:var(--sand)}
@media (max-width:1023px){.nav-links,.nav-cta{display:none}.burger{display:flex}.mobile-menu{display:block}}
@media (max-width:767px){.topbar{display:none}}
.link-line{background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0% 1.5px;padding-bottom:2px;transition:background-size .35s var(--ease)}
.link-line:hover{background-size:100% 1.5px}

/* ---------- boutons ---------- */
.btn{display:inline-flex;align-items:center;gap:.6rem;border-radius:999px;padding:.9rem 1.7rem;font-weight:600;font-size:.95rem;border:2px solid transparent;cursor:pointer;transition:transform .3s var(--ease),background .3s,color .3s,box-shadow .3s;position:relative;overflow:hidden}
.btn svg{width:1.05rem;height:1.05rem;transition:transform .3s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn:hover{transform:translateY(-3px)}
.btn-amber{background:var(--amber);color:var(--ink);box-shadow:0 14px 30px -12px rgba(231,155,46,.55)}
.btn-amber:hover{background:var(--tangerine)}
.btn-leaf{background:var(--leaf);color:var(--paper)}
.btn-leaf:hover{background:var(--forest)}
.btn-dark{background:var(--ink);color:var(--latex)}
.btn-dark:hover{background:var(--forest)}
.btn-ghost-light{border-color:var(--amber);color:var(--amber);background:transparent}
.btn-ghost-light:hover{background:var(--amber);color:var(--ink)}
.btn-ghost{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-ghost:hover{background:var(--ink);color:var(--latex)}
.btn-sweep::after{content:"";position:absolute;inset:0;background:var(--forest);transform:scaleX(0);transform-origin:0 50%;transition:transform .45s var(--ease);z-index:-1}
.btn-sweep:hover::after{transform:scaleX(1)}
.btn > *{position:relative;z-index:1}

/* ---------- hero ---------- */
.hero{min-height:88vh;display:flex;align-items:flex-end;background:var(--ink);overflow:hidden}
.hero-media{position:absolute;inset:0;overflow:hidden}
.hero-media img{width:100%;height:100%;object-fit:cover}
.hero-veil-l{position:absolute;inset:0;background:linear-gradient(to right,rgba(12,29,21,.95),rgba(12,29,21,.72) 45%,rgba(12,29,21,.15))}
.hero-veil-b{position:absolute;inset:0;background:linear-gradient(to top,rgba(12,29,21,.95),rgba(12,29,21,.28) 45%,rgba(12,29,21,.42))}
.hero-ghost{position:absolute;right:-1%;bottom:4%;font-size:24vw;-webkit-text-stroke:1.5px rgba(244,239,225,.09);color:transparent;font-family:var(--display);font-weight:800;line-height:1;pointer-events:none;user-select:none}
.hero-inner{position:relative;z-index:2;width:100%;padding-block:9.5rem 4.5rem;max-width:62rem}
.hero-anim{opacity:0;animation:fadeUp .9s var(--ease) forwards}
.pill{display:inline-flex;align-items:center;gap:.55rem;border:1px solid rgba(244,239,225,.25);background:rgba(12,29,21,.5);border-radius:999px;padding:.45rem 1.1rem;font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.18em;color:var(--moss);margin-bottom:1.6rem}
.pill svg{width:.95rem;height:.95rem}
.hero h1{font-family:var(--display);font-weight:800;font-size:clamp(2.7rem,7.2vw,4.7rem);line-height:.98;letter-spacing:-.02em;color:var(--latex)}
.hero h1 .moss{color:var(--moss)}
.hero h1 .amber{color:var(--amber)}
.mask-line{display:block;overflow:hidden;padding-bottom:.09em}
.mask-line > span{display:block;transform:translateY(115%);animation:riseUp 1s var(--ease) forwards}
.hero-lead{margin-top:1.8rem;max-width:38rem;font-size:1.08rem;color:rgba(244,239,225,.85)}
.hero-lead strong{color:var(--latex)}
.hero-cta{margin-top:2.2rem;display:flex;flex-wrap:wrap;align-items:center;gap:1.1rem}
.hero-cta .link-line{color:var(--latex);font-weight:600;padding-block:.6rem}
.hero-chip{margin-top:2.4rem;display:inline-flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.1rem;border:1px solid rgba(244,239,225,.2);background:rgba(12,29,21,.55);padding:.7rem 1.2rem;font-family:var(--mono);font-size:.74rem;color:rgba(244,239,225,.78)}
.dot-live{width:.5rem;height:.5rem;border-radius:50%;background:var(--amber);animation:pulse 2s infinite;display:inline-block}
.hero-chip strong{color:var(--moss)}
.up{color:var(--up);display:inline-flex;align-items:center;gap:.25rem}
.down{color:var(--down);display:inline-flex;align-items:center;gap:.25rem}
.tri{width:.55rem;height:.55rem}

/* badge rotatif */
.rotor{position:absolute;z-index:3;right:2.2rem;top:8.5rem;width:7.2rem;height:7.2rem;display:none}
.rotor svg{width:100%;height:100%;animation:spinSlow 24s linear infinite}
.rotor .center-drop{position:absolute;inset:0;display:grid;place-items:center;color:var(--amber)}
.rotor .center-drop svg{width:1.7rem;height:1.7rem;animation:none}
@media (min-width:640px){.rotor{display:block}}

/* carte flottante des cours */
.float-card{position:absolute;z-index:3;right:2.2rem;bottom:7rem;width:16.5rem;background:rgba(251,247,236,.96);border:1px solid rgba(12,29,21,.12);padding:1rem 1.15rem;box-shadow:0 24px 50px -20px rgba(0,0,0,.5);animation:floatY 5.5s ease-in-out infinite;display:none}
@media (min-width:768px){.float-card{display:block}}
.float-card h4{font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.18em;color:rgba(12,29,21,.55);display:flex;justify-content:space-between;align-items:center;margin-bottom:.8rem}
.float-card h4 svg{width:.95rem;height:.95rem;color:var(--amber)}
.float-card li{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem;padding-block:.3rem}
.float-card li + li{border-top:1px dashed rgba(12,29,21,.14)}
.fc-name{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;color:rgba(12,29,21,.6)}
.fc-val{font-family:var(--display);font-weight:800;font-size:.9rem}
.fc-unit{font-family:var(--mono);font-size:.58rem;color:rgba(12,29,21,.45);margin-left:.2rem}
.fc-chg{font-family:var(--mono);font-size:.62rem;font-weight:600}

/* rail latéral */
.rail{position:absolute;left:1.4rem;bottom:6rem;z-index:3;display:none;flex-direction:column;align-items:center;gap:1.2rem}
@media (min-width:1536px){.rail{display:flex}}
.rail span{writing-mode:vertical-rl;font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.34em;color:rgba(244,239,225,.45)}
.rail i{position:relative;display:block;width:1px;height:4.5rem;background:rgba(244,239,225,.2);overflow:hidden}
.rail i::after{content:"";position:absolute;left:0;top:0;width:100%;height:40%;background:var(--amber);animation:cue 2.2s ease-in-out infinite}

/* goutte qui tombe du hero */
.drip-hero{position:absolute;z-index:3;left:3rem;bottom:-2px;width:.8rem;color:var(--latex)}
.drip-hero .fall{animation:dripDrop 2.8s ease-in infinite}

/* bordure gouttes */
.drip-edge{display:block;width:100%;height:2.4rem;pointer-events:none}

/* ---------- ticker ---------- */
.ticker{display:flex;align-items:stretch;background:var(--ink);border-block:2px solid var(--amber);overflow:hidden}
.ticker-label{display:none;align-items:center;gap:.55rem;background:var(--forest);padding-inline:1.4rem;font-family:var(--mono);font-size:.64rem;text-transform:uppercase;letter-spacing:.2em;color:rgba(244,239,225,.85);flex-shrink:0}
@media (min-width:640px){.ticker-label{display:flex}}
.ticker-view{flex:1;overflow:hidden}
.ticker-track{display:flex;width:max-content;animation:marquee 42s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
.t-item{display:flex;align-items:center;gap:.7rem;padding:.7rem 1.8rem;border-right:1px solid rgba(244,239,225,.1);white-space:nowrap}
.t-name{font-family:var(--mono);font-size:.64rem;text-transform:uppercase;letter-spacing:.14em;color:rgba(244,239,225,.55)}
.t-price{font-family:var(--display);font-weight:800;color:var(--latex)}
.t-unit{font-family:var(--mono);font-size:.58rem;color:rgba(244,239,225,.45);margin-left:.25rem}
.t-chg{font-family:var(--mono);font-size:.64rem;font-weight:600;display:inline-flex;align-items:center;gap:.25rem}

/* ---------- stats ---------- */
.stats{background:var(--forest);color:var(--latex)}
.stats .hatch-light{position:absolute;inset:0;pointer-events:none;
  background-image:repeating-linear-gradient(-55deg,rgba(244,239,225,.05) 0 1px,transparent 1px 14px)}
.stats-grid{position:relative;display:grid;grid-template-columns:repeat(2,1fr)}
@media (min-width:1024px){.stats-grid{grid-template-columns:repeat(4,1fr)}}
.stat{padding:2.4rem 1.4rem;text-align:center;border-left:1px solid rgba(244,239,225,.1)}
.stat:first-child{border-left:none}
@media (max-width:1023px){.stat:nth-child(odd){border-left:none}.stat:nth-child(n+3){border-top:1px solid rgba(244,239,225,.1)}}
.stat svg{width:1.25rem;height:1.25rem;color:var(--amber);margin-inline:auto;margin-bottom:.9rem}
.stat b{display:block;font-family:var(--display);font-weight:800;font-size:clamp(2rem,3.4vw,2.9rem);letter-spacing:-.02em}
.stat b em{font-style:normal;color:var(--amber)}
.stat span{display:block;margin-top:.6rem;font-family:var(--mono);font-size:.63rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(244,239,225,.6);max-width:13rem;margin-inline:auto;line-height:1.7}

/* ---------- en-têtes de section ---------- */
.sec-head{display:grid;gap:1.5rem;margin-bottom:3.6rem}
@media (min-width:1024px){.sec-head{grid-template-columns:repeat(12,1fr);align-items:end}.sec-head .h{grid-column:span 7}.sec-head .p{grid-column:9/span 4}}
.sec-head .p{font-size:1.02rem;color:rgba(12,29,21,.7)}

/* ---------- métiers ---------- */
.metiers{background:var(--paper)}
.metier{display:grid;gap:1.4rem;padding:2.3rem 0;border-bottom:1px solid rgba(12,29,21,.15);transition:background .3s,padding-left .3s}
.metier:first-child{border-top:1px solid rgba(12,29,21,.15)}
.metier:hover{background:var(--latex);padding-left:1.2rem}
@media (min-width:768px){.metier{grid-template-columns:70px 56px 1fr 32px;gap:2rem;align-items:start}}
.metier-num{font-family:var(--mono);font-size:.85rem;color:rgba(12,29,21,.4);transition:color .3s}
.metier:hover .metier-num{color:var(--amber)}
.metier-ico{display:none;width:3.5rem;height:3.5rem;align-items:center;justify-content:center;border:1px solid rgba(12,29,21,.18);color:var(--forest);transition:all .3s}
@media (min-width:768px){.metier-ico{display:flex}}
.metier-ico svg{width:1.7rem;height:1.7rem}
.metier:hover .metier-ico{background:var(--leaf);border-color:var(--leaf);color:var(--paper)}
.metier h3{font-family:var(--display);font-weight:700;font-size:1.55rem;letter-spacing:-.01em;transition:color .3s}
.metier:hover h3{color:var(--forest)}
.metier p{margin-top:.7rem;max-width:46rem;color:rgba(12,29,21,.7)}
.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.1rem}
.tags li{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;color:rgba(12,29,21,.6);border:1px solid rgba(12,29,21,.16);border-radius:999px;padding:.3rem .8rem;transition:all .3s}
.metier:hover .tags li{border-color:rgba(46,125,81,.5);color:var(--forest)}
.metier-arrow{display:none;color:rgba(12,29,21,.25);transition:all .3s}
@media (min-width:768px){.metier-arrow{display:block;width:1.4rem;height:1.4rem}}
.metier:hover .metier-arrow{color:var(--leaf);transform:translate(4px,-4px)}

/* ---------- produits : bordereau ---------- */
.produits{background:var(--latex);overflow:hidden}
.tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;border-bottom:2px solid rgba(12,29,21,.15);margin-bottom:2.6rem}
@media (min-width:768px){.tabs{grid-template-columns:repeat(4,1fr)}}
.tab{display:flex;flex-direction:column;gap:.2rem;border:1px solid rgba(12,29,21,.15);border-bottom:none;background:var(--paper);padding:1rem 1.2rem;cursor:pointer;transition:all .3s;position:relative}
.tab::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:3px;background:var(--amber);transform:scaleX(0);transition:transform .35s var(--ease)}
.tab:hover{background:var(--sand)}
.tab b{font-family:var(--display);font-size:1.05rem;letter-spacing:-.01em}
.tab span{font-family:var(--mono);font-size:.58rem;text-transform:uppercase;letter-spacing:.14em;color:rgba(12,29,21,.5)}
.tab.active{background:var(--ink);color:var(--latex)}
.tab.active span{color:var(--amber)}
.tab.active::after{transform:scaleX(1)}
.panel{display:none}
.panel.active{display:grid;animation:panelIn .5s var(--ease) both}
.panel{grid-template-columns:1fr;gap:2.6rem;position:relative}
@media (min-width:1024px){.panel{grid-template-columns:5fr 6fr;align-items:center}}
.panel-media{position:relative;overflow:hidden;border:1px solid rgba(12,29,21,.15)}
.panel-media img{width:100%;height:20rem;object-fit:cover;transition:transform .8s var(--ease)}
.panel:hover .panel-media img{transform:scale(1.05)}
@media (min-width:1024px){.panel-media img{height:29rem}}
.panel-media figcaption{position:absolute;left:0;bottom:0;right:0;padding:1.1rem 1.3rem .9rem;background:linear-gradient(to top,rgba(12,29,21,.9),transparent);font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.16em;color:rgba(244,239,225,.85);display:flex;justify-content:space-between;gap:1rem}
.panel-ghost{position:absolute;right:-3%;top:-14%;font-size:16rem;z-index:0}
@media (max-width:1023px){.panel-ghost{display:none}}
.panel-info{position:relative;z-index:1}
.panel-info .aka{font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.18em;color:rgba(12,29,21,.5)}
.panel-info h3{font-family:var(--display);font-weight:800;font-size:clamp(1.7rem,3vw,2.3rem);letter-spacing:-.015em;margin-top:.4rem}
.grade-pill{display:inline-block;background:var(--ink);color:var(--latex);border-radius:999px;padding:.3rem .9rem;font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.12em;margin-left:.7rem;vertical-align:middle}
.panel-info > p{margin-top:1rem;max-width:34rem;color:rgba(12,29,21,.72)}
.specs{margin-top:1.7rem;border-top:1px solid rgba(12,29,21,.15)}
.specs > div{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.75rem 0;border-bottom:1px dashed rgba(12,29,21,.2)}
.specs dt{font-family:var(--mono);font-size:.63rem;text-transform:uppercase;letter-spacing:.1em;color:rgba(12,29,21,.55)}
.specs dd{font-weight:700;color:var(--forest);text-align:right}
.panel-cta{margin-top:1.8rem;display:inline-flex;align-items:center;gap:.5rem;font-weight:600;color:var(--leaf)}
.panel-cta svg{width:1rem;height:1rem;transition:transform .3s}
.panel-cta:hover{color:var(--forest)}
.panel-cta:hover svg{transform:translate(3px,-3px)}

/* ---------- collecte (sticky + ticket) ---------- */
.collecte{background:var(--sand);border-block:1px solid rgba(12,29,21,.1)}
.collecte-grid{display:grid;gap:3.5rem}
@media (min-width:1024px){.collecte-grid{grid-template-columns:5fr 6fr}}
.sticky-col{position:sticky;top:7rem}
.sticky-col > p{margin-top:1.4rem;max-width:28rem;color:rgba(12,29,21,.7)}
.photo-ticket{position:relative;max-width:24rem;margin-top:2.4rem}
.photo-ticket .frame{position:relative;overflow:hidden;border:1px solid rgba(12,29,21,.15);box-shadow:0 20px 44px -20px rgba(12,29,21,.45)}
.photo-ticket .frame img{width:100%;height:18rem;object-fit:cover}
.photo-ticket .cap{position:absolute;left:0;right:0;bottom:0;padding:2.6rem 1.2rem .9rem;background:linear-gradient(to top,rgba(12,29,21,.88),transparent);display:flex;align-items:center;gap:.5rem;font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.16em;color:rgba(244,239,225,.85)}
.photo-ticket .cap svg{width:.9rem;height:.9rem;color:var(--amber)}
.ticket{position:absolute;right:-1.2rem;bottom:-2.6rem;width:14.5rem;background:var(--paper);border:1px solid rgba(12,29,21,.2);padding:1rem 1.1rem;transform:rotate(3deg);box-shadow:0 18px 36px -18px rgba(12,29,21,.5);transition:transform .3s var(--ease)}
.ticket:hover{transform:rotate(0) scale(1.03)}
.ticket-head{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.56rem;text-transform:uppercase;letter-spacing:.14em;color:rgba(12,29,21,.55);border-bottom:1px dashed rgba(12,29,21,.25);padding-bottom:.5rem}
.ticket-head b{color:var(--amber)}
.ticket dl{margin-top:.65rem;font-family:var(--mono);font-size:.66rem;color:rgba(12,29,21,.72)}
.ticket dl > div{display:flex;justify-content:space-between;padding-block:.2rem}
.ticket dd{font-weight:600;color:var(--ink)}
.ticket .net{border-top:1px dashed rgba(12,29,21,.25);margin-top:.3rem;padding-top:.4rem}
.ticket .net dd{font-weight:700}
.ticket-foot{margin-top:.6rem;border-top:1px dashed rgba(12,29,21,.25);padding-top:.5rem;font-family:var(--mono);font-size:.52rem;text-transform:uppercase;letter-spacing:.1em;color:rgba(12,29,21,.4)}
@media (max-width:639px){.ticket{right:0}}
.steps{position:relative}
.steps::before{content:"";position:absolute;left:1.35rem;top:1.4rem;bottom:1.4rem;width:1px;background:rgba(12,29,21,.18)}
.steps li{position:relative;display:grid;grid-template-columns:2.75rem 1fr;gap:1.4rem;padding-bottom:2.4rem}
.steps li:last-child{padding-bottom:0}
.step-num{position:relative;z-index:1;width:2.75rem;height:2.75rem;display:flex;align-items:center;justify-content:center;border-radius:50%;border:2px solid var(--ink);background:var(--latex);font-family:var(--mono);font-size:.72rem;font-weight:600;transition:background .3s}
.steps li:hover .step-num{background:var(--amber)}
.step-card{border:1px solid rgba(12,29,21,.14);background:var(--paper);padding:1.5rem;transition:all .3s var(--ease)}
.steps li:hover .step-card{transform:translateY(-3px);border-color:rgba(46,125,81,.6);box-shadow:0 18px 40px -22px rgba(12,29,21,.4)}
.step-card h3{font-family:var(--display);font-weight:700;font-size:1.22rem;color:var(--forest)}
.step-card p{margin-top:.6rem;color:rgba(12,29,21,.7);font-size:.95rem}

/* ---------- partenaires ---------- */
.partenaires{background:var(--latex)}
.part-grid{display:grid;gap:1.6rem}
@media (min-width:1024px){.part-grid{grid-template-columns:7fr 5fr}}
.part{position:relative;display:flex;flex-direction:column;min-height:26rem;color:var(--latex);overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s}
.part:hover{transform:translateY(-5px);box-shadow:0 30px 60px -30px rgba(12,29,21,.55)}
.part-forest{background:var(--forest)}
.part-ink{background:var(--ink)}
.part .hatch{position:absolute;inset:0;pointer-events:none;background-image:repeating-linear-gradient(-55deg,rgba(244,239,225,.05) 0 1px,transparent 1px 14px)}
.part-body{position:relative;flex:1;padding:2.2rem}
.part-sub{font-family:var(--mono);font-size:.64rem;text-transform:uppercase;letter-spacing:.22em;color:var(--amber)}
.part h3{margin-top:.7rem;font-family:var(--display);font-weight:700;font-size:1.6rem;line-height:1.15}
.part-body > p{margin-top:.7rem;color:rgba(244,239,225,.75);font-size:.94rem}
.part ul{margin-top:1.4rem;display:grid;gap:.6rem}
.part li{display:flex;gap:.7rem;font-size:.9rem;color:rgba(244,239,225,.85)}
.part li svg{width:1rem;height:1rem;flex-shrink:0;margin-top:.2rem;color:var(--amber)}
.part-figures{margin-top:1.6rem;padding-top:1rem;border-top:1px solid rgba(244,239,225,.15);display:grid;grid-template-columns:repeat(3,1fr)}
.part-figures > div{padding-inline:1rem}
.part-figures > div:first-child{padding-left:0}
.part-figures > div + div{border-left:1px solid rgba(244,239,225,.15)}
.part-figures b{display:block;font-family:var(--display);font-size:1.15rem;color:var(--amber)}
.part-figures span{font-family:var(--mono);font-size:.55rem;text-transform:uppercase;letter-spacing:.14em;color:rgba(244,239,225,.55)}
.part .btn{margin-top:1.7rem;align-self:flex-start}
.part-img{position:relative;height:14rem;overflow:hidden;border-top:4px solid var(--amber)}
.part-img img{width:100%;height:100%;object-fit:cover}
@media (min-width:768px){
  .part-supply{flex-direction:row}
  .part-supply .part-img{height:auto;width:40%;border-top:none;border-left:4px solid var(--amber)}
}
.part-img .cap{position:absolute;left:1.2rem;bottom:.8rem;font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.16em;color:rgba(244,239,225,.9)}

/* ---------- engagements ---------- */
.engagements{background:var(--paper);border-top:1px solid rgba(12,29,21,.1)}
.engage-grid{display:grid;gap:3.5rem}
@media (min-width:1024px){.engage-grid{grid-template-columns:5fr 7fr}}
.engage-grid > div:first-child > div{position:sticky;top:7rem}
.engage-grid .intro > p{margin-top:1.4rem;max-width:28rem;color:rgba(12,29,21,.7)}
.charte{margin-top:2.3rem;border:1px solid rgba(12,29,21,.15);background:var(--latex);padding:1.8rem}
.charte svg{width:1.5rem;height:1.5rem;color:var(--amber)}
.charte h3{margin-top:.7rem;font-family:var(--display);font-weight:700;font-size:1.3rem}
.charte ul{margin-top:1rem;display:grid;gap:.6rem}
.charte li{display:flex;gap:.6rem;font-size:.92rem;color:rgba(12,29,21,.75)}
.charte li svg{width:.95rem;height:.95rem;flex-shrink:0;margin-top:.25rem;color:var(--leaf)}
.charte a{display:inline-flex;align-items:center;gap:.45rem;margin-top:1.2rem;font-weight:600;font-size:.88rem;color:var(--forest)}
.charte a svg{width:.95rem;height:.95rem;transition:transform .3s}
.charte a:hover svg{transform:translate(3px,-3px)}
.engage-item{display:grid;grid-template-columns:64px 1fr;gap:1.2rem;padding:2rem 0;border-top:1px solid rgba(12,29,21,.15);transition:background .3s,padding-left .3s}
.engage-item:last-child{border-bottom:1px solid rgba(12,29,21,.15)}
.engage-item:hover{background:var(--latex);padding-left:1rem}
@media (min-width:768px){.engage-item{grid-template-columns:90px 1fr auto;align-items:start}}
.engage-num{font-family:var(--display);font-weight:800;font-size:3.2rem;line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(12,29,21,.3);transition:-webkit-text-stroke-color .3s}
.engage-item:hover .engage-num{-webkit-text-stroke-color:var(--amber)}
.engage-item h3{font-family:var(--display);font-weight:700;font-size:1.35rem;transition:color .3s}
.engage-item:hover h3{color:var(--forest)}
.engage-item p{margin-top:.55rem;max-width:36rem;color:rgba(12,29,21,.7);font-size:.94rem}
.engage-metric{grid-column:2;display:inline-block;width:max-content;border:1px solid rgba(12,29,21,.22);border-radius:999px;padding:.35rem .95rem;font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(12,29,21,.65);transition:all .3s;margin-top:.4rem}
@media (min-width:768px){.engage-metric{grid-column:auto;margin-top:.3rem}}
.engage-item:hover .engage-metric{background:var(--amber);border-color:var(--amber);color:var(--ink)}

/* ---------- mot du DG ---------- */
.mot-dg{background:var(--paper);border-top:1px solid rgba(12,29,21,.1)}
.mot-dg-grid{display:grid;gap:3rem}
@media (min-width:1024px){.mot-dg-grid{grid-template-columns:5fr 7fr;gap:4.5rem;align-items:start}}
.mot-dg-photo{position:relative}
.mot-dg-frame{position:relative;overflow:hidden;border:1px solid rgba(12,29,21,.15);box-shadow:0 24px 50px -24px rgba(12,29,21,.4)}
.mot-dg-frame img{width:100%;height:auto;display:block;aspect-ratio:9/11;object-fit:cover}
.mot-dg-caption{position:absolute;left:0;right:0;bottom:0;padding:1.4rem 1.6rem 1.2rem;background:linear-gradient(to top,rgba(12,29,21,.92) 0%,rgba(12,29,21,.6) 55%,transparent 100%);display:flex;align-items:flex-end;gap:.9rem}
.mot-dg-caption-line{width:2.4rem;height:2px;background:var(--amber);flex-shrink:0}
.mot-dg-caption span:last-child{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.14em;color:rgba(244,239,225,.92);line-height:1.5}
.mot-dg-text{position:relative}
.mot-dg-quote{position:relative;font-family:var(--display);font-weight:600;font-size:clamp(1.4rem,2.4vw,1.85rem);line-height:1.3;letter-spacing:-.01em;color:var(--ink);margin:1rem 0 2rem;padding-left:1.6rem;border-left:0px solid var(--amber)}
.mot-dg-quote::before{content:"«";position:absolute;left:-.3rem;top:-.8rem;font-family:var(--display);font-size:4.5rem;color:var(--amber);opacity:.35;line-height:1}
.mot-dg-body p{color:rgba(12,29,21,.75);font-size:1.02rem;line-height:1.75;margin-bottom:1.15rem;max-width:38rem}
.mot-dg-body p:first-child::first-letter{font-family:var(--display);font-weight:800;font-size:3.2rem;float:left;line-height:.9;padding:.2rem .6rem 0 0;color:var(--forest)}
.mot-dg-sign{margin-top:2.4rem;display:flex;align-items:center;gap:1.2rem}
.mot-dg-sign-line{width:3rem;height:2px;background:var(--ink);flex-shrink:0}
.mot-dg-sign-name{font-family:var(--display);font-weight:700;font-size:1.15rem;color:var(--ink);line-height:1.2}
.mot-dg-sign-role{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.14em;color:var(--leaf);margin-top:.25rem}
.mot-dg-sign-date{font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(12,29,21,.45);margin-top:.15rem}

/* ---------- export ---------- */
.export{background:var(--ink);color:var(--latex);padding-top:7.5rem}
.export .hatch{position:absolute;inset:0;pointer-events:none;background-image:repeating-linear-gradient(-55deg,rgba(244,239,225,.04) 0 1px,transparent 1px 14px)}
.export .eyebrow{color:var(--amber)}
.export .sec-head .p{color:rgba(244,239,225,.65)}
.export-grid{position:relative;display:grid;gap:3rem}
@media (min-width:1024px){.export-grid{grid-template-columns:6fr 6fr}}
.market-box{border:1px solid rgba(244,239,225,.15);background:var(--pine);padding:2rem}
.market-box h4,.logi h4{display:flex;align-items:center;gap:.6rem;font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.2em;color:rgba(244,239,225,.6);margin-bottom:1.6rem}
.market-box h4 svg,.logi h4 svg{width:1rem;height:1rem;color:var(--amber)}
.market{padding-block:.75rem}
.market + .market{border-top:1px dashed rgba(244,239,225,.1)}
.market-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.45rem}
.market-row .code{color:var(--amber);margin-right:.5rem}
.market-row span{font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(244,239,225,.7)}
.market-row b{font-family:var(--display);font-size:.92rem}
.bar{height:.62rem;background:rgba(244,239,225,.1);overflow:hidden}
.bar-fill{display:block;height:100%;background:var(--amber);width:var(--w);transform-origin:0 50%;transition:filter .3s}
html.js .bar-fill{width:0;transition:width 1.1s var(--ease),filter .3s}
html.js .bar-fill.in{width:var(--w)}
.market:hover .bar-fill{filter:brightness(1.15)}
.market-note{margin-top:1.4rem;padding-top:1.1rem;border-top:1px solid rgba(244,239,225,.1);font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.14em;color:rgba(244,239,225,.45)}
.logi-row{display:flex;align-items:center;gap:1.2rem;padding:1.15rem 0;border-top:1px solid rgba(244,239,225,.12);transition:all .3s var(--ease)}
.logi .logi-list{border-bottom:1px solid rgba(244,239,225,.12)}
.logi-row:hover{background:var(--pine);padding-left:1rem}
.logi-num{font-family:var(--mono);font-size:.72rem;color:rgba(244,239,225,.35);transition:color .3s}
.logi-row:hover .logi-num{color:var(--amber)}
.logi-ico{display:flex;width:3rem;height:3rem;flex-shrink:0;align-items:center;justify-content:center;border:1px solid rgba(244,239,225,.2);color:var(--amber);transition:all .3s}
.logi-ico svg{width:1.45rem;height:1.45rem}
.logi-row:hover .logi-ico{border-color:var(--amber);transform:rotate(-6deg)}
.logi-row h5{font-family:var(--display);font-weight:700;font-size:1.08rem}
.logi-row p{margin-top:.2rem;font-size:.83rem;color:rgba(244,239,225,.6)}
.logi-stat{margin-left:auto;flex-shrink:0;display:none;border:1px solid rgba(231,155,46,.45);border-radius:999px;padding:.35rem .9rem;font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:var(--amber);transition:all .3s}
@media (min-width:768px){.logi-stat{display:block}}
.logi-row:hover .logi-stat{background:var(--amber);color:var(--ink)}
.port-fig{position:relative;margin-top:3.4rem;overflow:hidden;border:1px solid rgba(244,239,225,.15)}
.port-fig img{width:100%;height:17rem;object-fit:cover}
@media (min-width:768px){.port-fig img{height:21rem}}
.port-fig figcaption{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;gap:1rem;padding:3.2rem 1.4rem 1rem;background:linear-gradient(to top,rgba(12,29,21,.9),transparent);font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.16em;color:rgba(244,239,225,.85)}

/* ---------- actualités ---------- */
.actus{background:var(--paper);overflow:hidden}
.news-grid{display:grid;gap:2rem}
@media (min-width:1024px){.news-grid{grid-template-columns:7fr 5fr}}
.news-feat{display:flex;flex-direction:column;height:100%;border:1px solid rgba(12,29,21,.15);background:var(--latex);overflow:hidden;transition:all .35s var(--ease)}
.news-feat:hover{transform:translateY(-5px);border-color:var(--amber);box-shadow:0 26px 55px -26px rgba(12,29,21,.4)}
.news-feat .imgwrap{overflow:hidden}
.news-feat img{width:100%;height:17rem;object-fit:cover;transition:transform .8s var(--ease)}
.news-feat:hover img{transform:scale(1.05)}
.news-body{display:flex;flex-direction:column;flex:1;padding:1.9rem}
.news-meta{display:flex;align-items:center;gap:.8rem}
.news-tag{background:var(--amber);color:var(--ink);border-radius:999px;padding:.28rem .8rem;font-family:var(--mono);font-size:.58rem;text-transform:uppercase;letter-spacing:.14em}
.news-tag.alt{background:transparent;border:1px solid rgba(46,125,81,.55);color:var(--forest)}
.news-date{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(12,29,21,.45)}
.news-feat h3{margin-top:1rem;font-family:var(--display);font-weight:700;font-size:clamp(1.35rem,2.2vw,1.75rem);line-height:1.2;transition:color .3s}
.news-feat:hover h3{color:var(--forest)}
.news-body > p{margin-top:.9rem;color:rgba(12,29,21,.7);font-size:.94rem}
.news-more{margin-top:auto;padding-top:1.4rem;display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:.88rem;color:var(--leaf)}
.news-more svg{width:1rem;height:1rem;transition:transform .3s}
.news-feat:hover .news-more svg{transform:translateX(4px)}
.news-list{display:flex;flex-direction:column;gap:1.6rem}
.news-brief{display:grid;grid-template-columns:8rem 1fr;gap:1.2rem;border:1px solid rgba(12,29,21,.15);background:var(--latex);padding:.9rem;transition:all .3s var(--ease)}
@media (min-width:640px){.news-brief{grid-template-columns:10.5rem 1fr}}
.news-brief:hover{transform:translateY(-3px);border-color:rgba(46,125,81,.6);box-shadow:0 18px 40px -22px rgba(12,29,21,.4)}
.news-brief .imgwrap{overflow:hidden}
.news-brief img{width:100%;height:100%;min-height:8rem;object-fit:cover;transition:transform .8s var(--ease)}
.news-brief:hover img{transform:scale(1.07)}
.news-brief h3{margin-top:.6rem;font-family:var(--display);font-weight:700;font-size:1.05rem;line-height:1.3;transition:color .3s}
.news-brief:hover h3{color:var(--forest)}
.news-brief p{margin-top:.45rem;font-size:.83rem;color:rgba(12,29,21,.65);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* ---------- témoignages ---------- */
.temoignages{background:var(--sand);border-block:1px solid rgba(12,29,21,.1)}
.quote-box{max-width:52rem;margin-inline:auto;text-align:center;padding-block:5rem}
.quote-box > svg{width:2.6rem;height:2.6rem;color:var(--amber);margin-inline:auto}
.quote-count{margin-top:.9rem;font-family:var(--mono);font-size:.64rem;text-transform:uppercase;letter-spacing:.22em;color:rgba(12,29,21,.45)}
.q-panel{display:none}
.q-panel.active{display:block;animation:panelIn .55s var(--ease) both}
.q-panel blockquote{font-family:var(--display);font-weight:600;font-size:clamp(1.35rem,2.6vw,1.85rem);line-height:1.3;letter-spacing:-.01em}
.q-panel cite{display:block;margin-top:1.5rem;font-style:normal}
.q-panel cite b{font-family:var(--display);font-size:1.1rem;color:var(--forest)}
.q-panel cite span{display:block;margin-top:.3rem;font-family:var(--mono);font-size:.63rem;text-transform:uppercase;letter-spacing:.14em;color:rgba(12,29,21,.55)}
.q-dots{display:flex;justify-content:center;gap:.55rem;margin-top:2.2rem}
.q-dots button{width:.55rem;height:.55rem;border-radius:999px;background:rgba(12,29,21,.25);cursor:pointer;transition:all .3s var(--ease);border:0;padding:0}
.q-dots button:hover{background:rgba(12,29,21,.5)}
.q-dots button.active{width:1.8rem;background:var(--leaf)}
.q-arrows{display:flex;justify-content:center;gap:1.2rem;margin-top:1.4rem}
.q-arrows button{display:flex;width:2.7rem;height:2.7rem;align-items:center;justify-content:center;border:1px solid rgba(12,29,21,.25);border-radius:50%;cursor:pointer;transition:all .3s;background:transparent;color:inherit}
.q-arrows button:hover{background:var(--leaf);border-color:var(--leaf);color:var(--paper)}
.q-arrows svg{width:1.05rem;height:1.05rem}

/* ---------- contact ---------- */
.contact{background:var(--latex);overflow:hidden}
.contact-ghost{position:absolute;right:-2%;top:2%;font-size:15vw}
.contact-drop{position:absolute;right:2%;top:6rem;height:34rem;width:auto;opacity:.13;pointer-events:none}
@media (max-width:1023px){.contact-drop{display:none}}
.contact-grid{position:relative;display:grid;gap:2.2rem}
@media (min-width:1024px){.contact-grid{grid-template-columns:7fr 5fr}}
.form-card{border:1px solid rgba(12,29,21,.15);background:var(--paper);padding:2.2rem}
.form-grid{display:grid;gap:1.5rem}
@media (min-width:640px){.form-grid{grid-template-columns:1fr 1fr}.full{grid-column:1/-1}}
.field label{display:block;margin-bottom:.5rem;font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.16em;color:rgba(12,29,21,.55)}
.input-line{width:100%;border:0;border-bottom:2px solid rgba(12,29,21,.22);background:transparent;padding:.55rem .1rem;font-family:var(--body);font-size:.98rem;color:var(--ink);transition:border-color .3s;border-radius:0;appearance:none}
.input-line:focus{outline:none;border-color:var(--leaf)}
.input-line::placeholder{color:rgba(12,29,21,.35)}
textarea.input-line{resize:vertical;min-height:7.5rem}
select.input-line{cursor:pointer}
.form-foot{margin-top:1.9rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.1rem}
.form-note{font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(12,29,21,.45)}
.info-card{border:1px solid rgba(12,29,21,.15);background:var(--paper);padding:1.9rem}
.info-card h3{font-family:var(--display);font-weight:700;font-size:1.3rem}
.info-card ul{margin-top:1.3rem;display:grid;gap:1.1rem;font-size:.93rem}
.info-card li{display:flex;gap:.85rem}
.info-card li > svg{width:1.15rem;height:1.15rem;flex-shrink:0;margin-top:.15rem;color:var(--leaf)}
.info-card .sub{display:block;font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:rgba(12,29,21,.45);margin-top:.15rem}
.centres{margin-top:1.6rem;border:1px solid rgba(12,29,21,.15);background:var(--forest);color:var(--latex);padding:1.9rem}
.centres h3{font-family:var(--display);font-weight:700;font-size:1.2rem}
.centres ul{margin-top:1.1rem;display:grid;gap:.8rem}
.centres li{display:flex;justify-content:space-between;gap:1rem;padding-block:.55rem;border-bottom:1px dashed rgba(244,239,225,.2);font-size:.9rem}
.centres li:last-child{border-bottom:none}
.centres b{font-weight:600}
.centres span{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;color:rgba(244,239,225,.55)}

/* ---------- footer ---------- */
.site-foot{background:var(--ink);color:var(--latex);position:relative;overflow:hidden}
.foot-marquee{overflow:hidden;padding-top:4rem}
.foot-track{display:flex;width:max-content;animation:marquee 75s linear infinite}
.foot-word{white-space:nowrap;padding-inline:1rem;font-family:var(--display);font-weight:800;font-size:8vw;text-transform:uppercase;line-height:1;letter-spacing:-.01em;color:transparent;-webkit-text-stroke:1.5px rgba(244,239,225,.22)}
.foot-grid{display:grid;gap:3rem;padding-block:4rem 2.5rem}
@media (min-width:1024px){.foot-grid{grid-template-columns:4fr 2fr 3fr 3fr}}
.foot-brand p{margin-top:1.4rem;max-width:24rem;color:rgba(244,239,225,.65);font-size:.92rem}
.foot-rccm{margin-top:1.5rem;display:flex;align-items:center;gap:.6rem;font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.14em;color:rgba(244,239,225,.45)}
.foot-rccm svg{width:1rem;height:1rem;color:var(--amber)}
.site-foot h4{font-family:var(--mono);font-size:.64rem;text-transform:uppercase;letter-spacing:.22em;color:var(--amber);margin-bottom:1.3rem}
.foot-grid nav ul,.foot-prods ul{display:grid;gap:.75rem}
.foot-grid nav a,.foot-prods a{font-size:.9rem;color:rgba(244,239,225,.75);display:inline-flex;align-items:baseline;gap:.7rem}
.foot-grid nav a:hover,.foot-prods a:hover{color:var(--latex)}
.foot-prods li::before{content:"";width:.3rem;height:.3rem;border-radius:50%;background:var(--amber);align-self:center}
.foot-prods .via{font-family:var(--mono);font-size:.58rem;text-transform:uppercase;color:rgba(244,239,225,.4)}
.foot-contact ul{display:grid;gap:1rem;font-size:.88rem;color:rgba(244,239,225,.75)}
.foot-contact li{display:flex;gap:.75rem}
.foot-contact svg{width:1.05rem;height:1.05rem;flex-shrink:0;margin-top:.15rem;color:var(--moss)}
.foot-contact .sub{display:block;color:rgba(244,239,225,.5);font-size:.8rem}
.foot-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;border-top:1px solid rgba(244,239,225,.1);padding-block:1.6rem;font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.14em;color:rgba(244,239,225,.45)}
.foot-bottom a{color:var(--amber)}
.to-top{position:fixed;right:1.4rem;bottom:1.4rem;z-index:85;width:3rem;height:3rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--leaf);color:var(--paper);box-shadow:0 12px 26px -10px rgba(12,29,21,.5);transition:all .3s var(--ease);opacity:0;pointer-events:none;transform:translateY(10px)}
.to-top.show{opacity:1;pointer-events:auto;transform:translateY(0)}
.to-top:hover{background:var(--forest);transform:translateY(-4px)}
.to-top svg{width:1.2rem;height:1.2rem;transform:rotate(-45deg)}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  .mask-line > span{transform:none;animation:none}
  .hero-anim{opacity:1;animation:none}
  .ticker-track,.foot-track{animation:none}
  .ticker-view,.foot-marquee{overflow-x:auto}
  .kenburns,.rotor svg,.float-card,.drip-hero .fall,.rail i::after{animation:none}
}