:root {
  --ink: #151112;
  --ivory: #f4efe6;
  --mango: #f26a2e;
  --hibiscus: #8f1636;
  --lagoon: #0b8c8f;
  --sand: #d8c4a0;
  --ease: cubic-bezier(.16, 1, .3, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body { margin: 0; color: var(--ivory); background: var(--ink); font-family: "Manrope", sans-serif; overflow-x: hidden; }
::selection { color: var(--ink); background: var(--mango); }
::-webkit-scrollbar { width: 9px; background: var(--ink); }
::-webkit-scrollbar-thumb { background: var(--mango); border: 2px solid var(--ink); border-radius: 20px; }
a { color: inherit; text-decoration: none; }
a:focus-visible { outline: 3px solid var(--mango); outline-offset: 6px; border-radius: 2px; }
.skip-link { position: fixed; z-index: 200; left: 1rem; top: 1rem; padding: .7rem 1rem; background: var(--ivory); color: var(--ink); transform: translateY(-180%); transition: transform .25s var(--ease); }
.skip-link:focus { transform: translateY(0); }

.grain { position: fixed; inset: 0; pointer-events: none; z-index: 20; opacity: .13; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E"); mix-blend-mode: soft-light; }
.loader { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; background: var(--mango); color: var(--ink); transform-origin: top; animation: leave .45s var(--ease) .35s forwards; }
.loader span { font: 400 clamp(4rem, 15vw, 13rem)/1 "Archivo Black", sans-serif; letter-spacing: -.06em; }
.loader i { position: absolute; left: 0; bottom: 0; width: 0; height: 6px; background: var(--ink); animation: load .3s var(--ease) forwards; }
@keyframes load { to { width: 100%; } }
@keyframes leave { to { transform: scaleY(0); visibility: hidden; } }

.topbar { position: fixed; z-index: 40; top: 0; left: 0; right: 0; height: 70px; padding: 0 3vw; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; color: var(--ivory); background: rgba(21,17,18,.94); backdrop-filter: blur(14px); }
.brand { font: 400 1.25rem/1 "Archivo Black", sans-serif; letter-spacing: -.05em; text-transform: uppercase; }
.topbar nav { display: flex; gap: 2rem; font-size: .78rem; }
.topbar nav a, .mini-cta { position: relative; }
.topbar nav a::after, .mini-cta::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -5px; height: 1px; background: currentColor; transition: right .45s var(--ease); }
.topbar nav a:hover::after, .mini-cta:hover::after { right: 0; }
.mini-cta { justify-self: end; font-size: .78rem; }

.hero { position: relative; min-height: 100svh; display: flex; flex-direction: column; justify-content: flex-end; padding: 14vh 3vw 5vh; overflow: hidden; background: var(--ivory); color: var(--ink); }
.sun { position: absolute; z-index:0; width: min(44vw, 620px); aspect-ratio: 1; border-radius: 50%; background: var(--mango); right: 9vw; top: 10vh; overflow: hidden; transform: translate3d(var(--mouse-x, 0), var(--mouse-y, 0), 0); transition: transform .4s var(--ease); box-shadow: inset -3vw -2vw 5vw rgba(143,22,54,.2); }
.sun::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 32% 25%, rgba(255,255,255,.2), transparent 32%), linear-gradient(145deg, transparent 38%, rgba(143,22,54,.18)); mix-blend-mode: soft-light; }
.sun img { position: absolute; inset: 7%; width: 86%; height: 86%; object-fit: cover; border-radius: 50%; opacity: .9; mix-blend-mode: multiply; filter: saturate(1.15) contrast(1.08); transform: rotate(-7deg) scale(1.08); }
.orbit { position: absolute; border: 1px solid color-mix(in srgb, var(--ink) 28%, transparent); border-radius: 50%; right: -10vw; top: -15vh; width: 70vw; aspect-ratio: 1.5; transform: rotate(-18deg); }
.orbit-b { right: -18vw; top: 10vh; transform: rotate(22deg); }
.hero-products { position:absolute; z-index:1; inset:70px 0 22vh; pointer-events:none; }
.hero-product { position:absolute; width:clamp(8rem,14vw,14rem); height:clamp(11rem,20vw,20rem); object-fit:contain; filter:drop-shadow(0 28px 20px rgba(21,17,18,.28)); }
.hero-product-spray { right:38vw; top:5vh; transform:rotate(-10deg); }
.hero-product-laundry { right:3vw; top:27vh; width:clamp(9rem,17vw,17rem); transform:rotate(8deg); }
.hero-product-table { right:29vw; top:40vh; width:clamp(11rem,20vw,20rem); transform:rotate(-8deg); }
.hero-product-cloth { right:13vw; top:1vh; width:clamp(8rem,13vw,13rem); transform:rotate(9deg); }
.hero-place { position:absolute; z-index:3; top:16vh; left:3vw; margin:0; display:grid; gap:.35rem; font-size:clamp(1.05rem,1.5vw,1.45rem); font-weight:600; line-height:1.35; text-transform:uppercase; letter-spacing:.035em; }
.hero-place span { display:block; }
.hero-place strong { color:var(--mango); font-weight:600; text-decoration-line:underline; text-decoration-thickness:3px; text-underline-offset:.28em; text-decoration-skip-ink:auto; }
.hero h1 { position: relative; margin: 0; z-index: 2; }
.hero-rimon { display: block; font: 400 clamp(7rem, 25vw, 24rem)/.72 "Archivo Black", sans-serif; letter-spacing: -.075em; text-transform: uppercase; transform: translateX(-.025em); }
.hero-line { display: block; margin: 4vh 0 0 48vw; font: 400 clamp(2rem, 4.2vw, 4.8rem)/.92 "Archivo Black", sans-serif; letter-spacing: -.045em; max-width: 8ch; }
.hero-copy { position: absolute; z-index: 3; left: 3vw; bottom: 6vh; width: min(30rem, 38vw); margin: 0; font-size: clamp(.9rem, 1.2vw, 1.1rem); line-height: 1.55; }
.hero-copy strong { display:block; margin-bottom:.4rem; font-weight:600; }
.discover { position: absolute; z-index: 2; right: 3vw; bottom: 5vh; display: flex; align-items: center; gap: 1.5rem; font-size: .8rem; }
.discover b { display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid var(--ink); border-radius: 50%; transition: transform .4s var(--ease), background .4s; }
.discover:hover b { transform: rotate(45deg); background: var(--ink); color: var(--ivory); }

.product-stage { position: relative; min-height: 260vh; background: var(--ink); }
.stage-copy { position: sticky; top: 0; z-index: 4; height: 100svh; padding: 15vh 3vw 8vh; display: flex; flex-direction: column; justify-content: space-between; pointer-events: none; }
.stage-copy h2 { margin: 0; font: 400 clamp(3.5rem, 8.5vw, 9rem)/.87 "Archivo Black", sans-serif; letter-spacing: -.055em; max-width: 8ch; }
.stage-copy p { margin: 0 0 0 auto; width: min(26rem, 35vw); line-height: 1.6; color: white; mix-blend-mode: difference; }
.product-world { position: sticky; top: 0; height: 100svh; margin-top: -100svh; overflow: hidden; perspective: 1000px; }
.product-world::before { content: ""; position: absolute; inset: 25% 0 5%; background: var(--hibiscus); clip-path: ellipse(43% 41% at 57% 53%); transform: scale(var(--pulse, .75)); opacity: .8; }
.product-train { position: absolute; left: 0; top: 50%; width: 138vw; will-change: transform, opacity, filter; transition: opacity .18s linear, filter .18s linear; }
.product-train img { display: block; width: 100%; height: auto; filter: drop-shadow(0 40px 35px rgba(0,0,0,.38)); }
.train-cleaning { z-index: 3; opacity: var(--clean-opacity, 1); filter: blur(var(--clean-blur, 0px)); transform: translate3d(calc(-22% + var(--clean-shift, 0vw)), -48%, 60px) rotate(var(--clean-tilt, -3deg)) scale(var(--clean-scale, 1)); }
.train-care { z-index: 2; opacity: var(--care-opacity, .08); filter: blur(var(--care-blur, 12px)); transform: translate3d(calc(-45% + var(--care-shift, 0vw)), -58%, -10px) rotate(var(--care-tilt, 5deg)) scale(var(--care-scale, .82)); }
.train-table { z-index: 1; opacity: var(--table-opacity, .06); filter: blur(var(--table-blur, 14px)); transform: translate3d(calc(-35% + var(--table-shift, 0vw)), -44%, -80px) rotate(var(--table-tilt, -5deg)) scale(var(--table-scale, .78)); }
.product-names { position: absolute; z-index: 6; left: 3vw; right: 3vw; bottom: 10vh; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, 1fr); gap: 1rem; list-style: none; border-top: 1px solid rgba(244,239,230,.25); }
.product-names li { padding-top: 1rem; display: grid; gap: .35rem; }
.product-names span { font-weight: 600; }
.product-names small { color: #aaa09b; }

.manifesto { position:relative; min-height:100svh; padding:11vh 3vw 8vh; color:var(--ink); background:var(--mango); overflow:hidden; }
.atlas-head { display:grid; grid-template-columns:1fr 2fr 1fr; gap:4vw; align-items:end; margin-bottom:7vh; }
.atlas-head > p { margin:0; max-width:22rem; font-size:.8rem; line-height:1.55; }
.atlas-head > p:last-child { justify-self:end; }
.atlas-head h2 { margin:0; font:400 clamp(3.5rem,7vw,7rem)/.86 "Archivo Black",sans-serif; letter-spacing:-.04em; }
.logistics-scene { position:relative; min-height:92svh; margin:0 -3vw 8vh; padding:8vh 3vw 5vh; display:grid; grid-template-columns:minmax(18rem,.75fr) minmax(34rem,1.25fr); align-items:center; overflow:hidden; color:var(--ivory); background:var(--ink); }
.logistics-copy { position:relative; z-index:3; align-self:stretch; display:flex; flex-direction:column; justify-content:center; }
.logistics-copy h3 { margin:0 0 4vh; max-width:8ch; font:400 clamp(3.5rem,6.3vw,7rem)/.86 "Archivo Black",sans-serif; letter-spacing:-.04em; }
.logistics-copy p { max-width:31rem; margin:0; color:rgba(244,239,230,.76); font-size:.88rem; line-height:1.65; }
.territory-link { align-self:flex-start; margin-top:2rem; padding:.8rem 0; border-bottom:1px solid var(--ivory); font-size:.78rem; font-weight:600; }
.logistics-copy .territory-link span { display:inline-block; margin:0 0 0 .8rem; padding:0; border:0; font-size:1rem; transition:transform .3s var(--ease); }
.territory-link:hover span { transform:translateX(5px); }
.logistics-copy span { margin-top:auto; padding-top:1rem; border-top:1px solid rgba(244,239,230,.25); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; }
.globe-wrap { position:relative; width:min(62vw,760px); aspect-ratio:1.08; justify-self:end; perspective:1200px; transform:rotateX(3deg) rotateY(-5deg); }
.globe-light { position:absolute; inset:9% 8% 8%; border-radius:50%; background:radial-gradient(circle at 32% 24%,#f9a15f 0 8%,var(--mango) 28%,#bb382b 66%,#5a1328 100%); box-shadow:inset -70px -38px 90px rgba(21,17,18,.72),inset 24px 18px 32px rgba(255,255,255,.12),0 55px 70px rgba(0,0,0,.45); }
.globe-light::after { content:""; position:absolute; inset:0; border-radius:inherit; background:linear-gradient(110deg,transparent 38%,rgba(21,17,18,.36) 58%,rgba(21,17,18,.72)); }
.route-map { position:absolute; z-index:2; inset:0; width:100%; height:100%; overflow:visible; filter:drop-shadow(0 18px 14px rgba(0,0,0,.3)); }
.globe-grid { fill:none; stroke:rgba(244,239,230,.22); stroke-width:1; }
.globe-land { fill:rgba(244,239,230,.26); stroke:rgba(244,239,230,.52); stroke-width:1.4; }
.route-lines { fill:none; stroke:var(--ivory); stroke-width:2; stroke-dasharray:7 8; opacity:.76; }
.route-points { fill:var(--ivory); stroke:var(--ink); stroke-width:3; }
.moving-vehicle { fill:var(--ivory); stroke:var(--ink); stroke-width:1; paint-order:stroke; }
.cargo { fill:var(--lagoon); }
.globe-label { position:absolute; z-index:4; padding:.38rem .55rem; color:var(--ink); background:var(--ivory); font-size:.62rem; font-weight:600; text-transform:uppercase; letter-spacing:.05em; }
.gl-france { left:19%; top:43%; }.gl-antilles { right:8%; top:40%; }.gl-indien { right:1%; bottom:28%; }.gl-pacifique { right:-1%; top:24%; }
.logistics-note { position:absolute; z-index:3; right:3vw; bottom:3vh; margin:0; font-size:.67rem; line-height:1.5; text-align:right; text-transform:uppercase; letter-spacing:.06em; }
.territory-atlas { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(18rem,23vw); gap:1px; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:x mandatory; scrollbar-color:var(--ink) transparent; padding-bottom:1rem; }
.home-atlas { display:none; }
.territory-card { min-height:31rem; padding:1.4rem; display:grid; grid-template-rows:1fr auto; gap:1.5rem; color:var(--ivory); background:var(--ink); scroll-snap-align:start; }
.territory-card .map { display:grid; place-items:center; min-height:18rem; }
.territory-card .map { background-position:center; background-repeat:no-repeat; background-size:contain; filter:drop-shadow(0 22px 18px rgba(0,0,0,.38)); transition:transform .55s var(--ease),filter .55s var(--ease); }
.territory-card:hover .map { transform:translateY(-8px) rotate(-2deg) scale(1.04); filter:drop-shadow(0 30px 24px rgba(0,0,0,.48)); }
.territory-card svg { width:1px; height:1px; position:absolute; overflow:hidden; opacity:0; }
.territory-card:nth-child(1) .map { background-image:url('./assets/maps/guadeloupe.png'); }
.territory-card:nth-child(2) .map { background-image:url('./assets/maps/martinique.png'); }
.territory-card:nth-child(3) .map { background-image:url('./assets/maps/guyane.png'); }
.territory-card:nth-child(4) .map { background-image:url('./assets/maps/la-reunion.png'); }
.territory-card:nth-child(5) .map { background-image:url('./assets/maps/mayotte.png'); }
.territory-card:nth-child(6) .map { background-image:url('./assets/maps/saint-martin.png'); }
.territory-card:nth-child(7) .map { background-image:url('./assets/maps/saint-barthelemy.png'); }
.territory-card:nth-child(8) .map { background-image:url('./assets/maps/saint-pierre-miquelon.png'); }
.territory-card:nth-child(9) .map { background-image:url('./assets/maps/wallis-futuna.png'); }
.territory-card:nth-child(10) .map { background-image:url('./assets/maps/polynesie.png'); }
.territory-card:nth-child(11) .map { background-image:url('./assets/maps/nouvelle-caledonie.png'); }
.territory-card:nth-child(12) .map { background-image:url('./assets/maps/taaf.png'); }
.territory-card div:last-child { padding-top:1rem; border-top:1px solid rgba(244,239,230,.24); }
.territory-card span { color:var(--mango); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; }
.territory-card h2,.territory-card h3 { margin:.45rem 0 .7rem; font:400 clamp(1.35rem,2vw,2rem)/.95 "Archivo Black",sans-serif; letter-spacing:-.03em; }
.territory-card p { margin:0; color:rgba(244,239,230,.72); font-size:.75rem; line-height:1.5; }
.territories-page { background:var(--ink); }
.territory-page-hero { padding-top:16vh; }
.territory-page-hero .atlas-head h1 { margin:0; font:400 clamp(4rem,8vw,8.5rem)/.84 "Archivo Black",sans-serif; letter-spacing:-.04em; }
.territory-page-grid { grid-auto-flow:row; grid-auto-columns:auto; grid-template-columns:repeat(3,minmax(0,1fr)); overflow:visible; scroll-snap-type:none; }
.territory-page-grid .territory-card { min-height:34rem; }

.closing { position: relative; min-height: 100svh; padding: 12vh 3vw 7vh; overflow: hidden; display: grid; grid-template-columns: minmax(0,1.15fr) minmax(24rem,.85fr); gap: 5vw; align-items: stretch; background: var(--lagoon); color: var(--ivory); }
.carousel-visual { position: relative; min-height: 76svh; display: grid; place-items: center; overflow: hidden; touch-action: pan-y; }
.carousel-visual::before { content:""; position:absolute; width:min(38vw,34rem); aspect-ratio:1; border-radius:50%; background:var(--mango); opacity:.9; transform:translate(-8%,-2%); }
.carousel-visual img { position:relative; z-index:1; width:min(88%,46rem); height:72svh; object-fit:contain; filter:drop-shadow(0 36px 30px rgba(21,17,18,.34)); will-change:transform,opacity,filter; }
.carousel-copy { display:flex; flex-direction:column; justify-content:space-between; border-top:1px solid rgba(244,239,230,.35); padding-top:1rem; }
.carousel-copy > p,.carousel-product p { margin:0; }
.carousel-copy > p { font-size:.78rem; }
.carousel-copy h2 { margin:3vh 0 auto; font:400 clamp(3.5rem,7vw,7.2rem)/.82 "Archivo Black",sans-serif; letter-spacing:-.04em; text-transform:uppercase; }
.carousel-product { display:grid; gap:.55rem; margin:4vh 0 3vh; min-height:9rem; align-content:end; }
.carousel-product span { font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--mango); }
.carousel-product h3 { margin:0; font:400 clamp(1.5rem,2.4vw,2.7rem)/1 "Archivo Black",sans-serif; letter-spacing:-.03em; }
.carousel-product p { max-width:34rem; font-size:.88rem; line-height:1.55; color:rgba(244,239,230,.78); }
.carousel-controls { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1rem; border-top:1px solid rgba(244,239,230,.35); padding-top:1rem; }
.carousel-controls > span { text-align:center; font-size:.72rem; font-variant-numeric:tabular-nums; }
.carousel-arrow { width:56px; height:56px; padding:0; display:grid; place-items:center; border:1px solid rgba(244,239,230,.6); border-radius:50%; background:transparent; color:var(--ivory); cursor:pointer; transition:background .25s var(--ease),color .25s var(--ease),transform .25s var(--ease); }
.carousel-arrow:hover { color:var(--ink); background:var(--mango); transform:scale(1.06); }
.carousel-arrow:focus-visible { outline:3px solid var(--mango); outline-offset:5px; }
.carousel-arrow svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }

.client-access { position: relative; min-height: 100svh; scroll-margin-top: 70px; padding: 14vh 3vw 8vh; overflow: hidden; display: grid; grid-template-columns: 1.25fr .75fr; gap: 8vw; align-items: center; background: var(--ivory); color: var(--ink); }
.access-orbit { position: absolute; z-index: 0; width: min(75vw, 880px); aspect-ratio: 1; left: -20vw; top: 7vh; border-radius: 50%; background: var(--hibiscus); box-shadow: 5vw 7vw 0 var(--mango); transform: rotate(-12deg); }
.access-intro, .access-form { position: relative; z-index: 1; }
.access-intro { align-self: stretch; min-height: 68vh; display: flex; flex-direction: column; justify-content: space-between; color: var(--ivory); }
.access-back { align-self: flex-start; font-size: .78rem; border-bottom: 1px solid currentColor; padding-bottom: .35rem; }
.access-intro p { margin: auto 0 1rem; font-size: .8rem; }
.access-intro h2 { margin: 0 0 8vh; font: 400 clamp(4.5rem, 9vw, 9rem)/.78 "Archivo Black", sans-serif; letter-spacing: -.06em; text-transform: uppercase; }
.access-form { width: min(100%, 31rem); justify-self: end; display: grid; }
.access-status { min-height: 1.5em; margin: 0 0 3.5rem; font-size: clamp(1.1rem, 1.8vw, 1.55rem); font-weight: 600; }
.access-status.is-error { color: var(--hibiscus); }
.access-form label { margin: 0 0 .55rem; font-size: .75rem; }
.access-form input { width: 100%; margin: 0 0 2rem; padding: .65rem 0 1rem; border: 0; border-bottom: 2px solid var(--ink); border-radius: 0; outline: none; background: transparent; color: var(--ink); font: 500 1.15rem/1.3 "Manrope", sans-serif; caret-color: var(--mango); }
.access-form input:focus { border-bottom-color: var(--mango); box-shadow: 0 3px 0 var(--mango); }
.access-form button { justify-self: start; margin-top: 1rem; padding: .95rem 1.5rem; border: 1px solid var(--ink); border-radius: 999px; background: var(--ink); color: var(--ivory); font: 600 .82rem/1 "Manrope", sans-serif; cursor: pointer; transition: color .35s var(--ease), background .35s var(--ease), transform .35s var(--ease); }
.access-form button:hover { color: var(--ink); background: var(--mango); transform: translateY(-2px); }
.access-form button:focus-visible { outline: 3px solid var(--mango); outline-offset: 5px; }
.access-form small { margin-top: 1.5rem; max-width: 31rem; color: color-mix(in srgb, var(--ink) 68%, transparent); line-height: 1.5; }
footer { min-height: 28vh; padding: 2.5rem 3vw 2rem; display: grid; grid-template-columns: 1fr 1fr 1fr; gap:2.5rem 2rem; align-items: end; font-size: .72rem; background: var(--ink); }
.footer-legal { grid-column:1 / -1; display:grid; grid-template-columns:1fr 1.35fr 1.2fr 1.75fr; gap:2rem; padding-bottom:2.5rem; border-bottom:1px solid rgba(244,239,230,.2); color:rgba(244,239,230,.72); line-height:1.55; }
.footer-legal strong { color:var(--ivory); font:400 1rem/1.2 "Archivo Black",sans-serif; text-transform:uppercase; letter-spacing:-.02em; }
footer > span:nth-of-type(2) { text-align: center; } footer > span:last-child { text-align: right; }

@media (max-width: 760px) {
  .topbar { height: 72px; padding:max(0px,env(safe-area-inset-top)) 5vw 0; grid-template-columns:auto 1fr auto; gap:.8rem; }
  .topbar nav { display:flex; justify-self:center; gap:.8rem; font-size:.62rem; }
  .topbar nav a,.brand { min-height:44px; display:flex; align-items:center; }
  .mini-cta { min-height:44px; display:flex; align-items:center; font-size:.68rem; }
  .hero { padding: 13vh 5vw max(5vh,env(safe-area-inset-bottom)); min-height: 100svh; }
  .sun { width: 74vw; right: -14vw; top: 14vh; }
  .hero-products { inset:72px 0 30vh; }
  .hero-product { width:27vw; height:29vh; }
  .hero-product-spray { right:54vw; top:13vh; }
  .hero-product-laundry { right:-1vw; top:28vh; width:30vw; }
  .hero-product-table { right:29vw; top:39vh; width:34vw; }
  .hero-product-cloth { display:none; }
  .hero-place { left:5vw; top:11vh; gap:.3rem; max-width:78vw; font-size:clamp(.86rem,3.5vw,1rem); line-height:1.45; }
  .hero-place strong { text-decoration-thickness:2px; text-underline-offset:.24em; }
  .hero h1 { position: absolute; left: 5vw; right: 5vw; bottom: 28vh; }
  .hero-rimon { font-size: 21.5vw; line-height: .84; }
  .hero-line { margin: 1.5vh 0 0 auto; font-size: 9.5vw; max-width: 7ch; }
  .hero-copy { left: 5vw; bottom: max(4vh,env(safe-area-inset-bottom)); width: 72vw; font-size: .78rem; }
  .discover span { display: none; }
  .product-stage { min-height:220vh; }
  .stage-copy { padding: 11vh 5vw 6vh; }
  .stage-copy h2 { font-size: 14vw; }
  .stage-copy p { width: 65vw; font-size: .85rem; }
  .product-world::before { clip-path: ellipse(55% 32% at 58% 52%); }
  .product-train { width: 250vw; }
  .train-cleaning { transform: translate3d(calc(-34% + var(--clean-shift, 0vw)), -46%, 60px) rotate(var(--clean-tilt, -3deg)) scale(var(--clean-scale, 1)); }
  .train-care { transform: translate3d(calc(-58% + var(--care-shift, 0vw)), -58%, -10px) rotate(var(--care-tilt, 5deg)) scale(var(--care-scale, .82)); }
  .train-table { transform: translate3d(calc(-47% + var(--table-shift, 0vw)), -42%, -80px) rotate(var(--table-tilt, -5deg)) scale(var(--table-scale, .78)); }
  .product-names { width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
  .manifesto { padding:9vh 5vw 6vh; }
  .atlas-head { grid-template-columns:1fr; gap:2vh; margin-bottom:4vh; }
  .atlas-head h2 { font-size:14vw; }
  .atlas-head > p:last-child { justify-self:start; margin-left:15%; }
  .logistics-scene { min-height:94svh; margin:0 -5vw 6vh; padding:6vh 5vw 4vh; grid-template-columns:1fr; align-content:start; }
  .logistics-copy { align-self:start; }
  .logistics-copy h3 { margin-bottom:2vh; font-size:13vw; }
  .logistics-copy p { width:82%; font-size:.78rem; }
  .territory-link { margin-top:1rem; }
  .logistics-copy span { display:none; }
  .globe-wrap { width:106vw; margin:0 -15vw -3vh 0; justify-self:end; }
  .globe-label { font-size:.52rem; }
  .logistics-note { display:none; }
  .territory-atlas { margin-inline:-5vw; padding-inline:5vw; grid-auto-columns:78vw; }
  .territory-page-hero { padding-top:14vh; }
  .territory-page-hero .atlas-head h1 { font-size:14vw; }
  .territory-page-grid { margin-inline:0; padding-inline:0; grid-template-columns:1fr; }
  .territory-page-grid .territory-card { min-height:28rem; }
  .territory-card { min-height:27rem; }
  .closing { min-height: 105svh; padding: 10vh 5vw 5vh; grid-template-columns: 1fr; gap:2vh; }
  .carousel-visual { min-height:50svh; }
  .carousel-visual::before { width:68vw; }
  .carousel-visual img { width:94%; height:50svh; }
  .carousel-copy h2 { margin:1.5vh 0 2vh; font-size:15vw; }
  .carousel-product { min-height:7rem; margin:1vh 0 2vh; }
  .carousel-arrow { width:54px; height:54px; }
  .client-access { min-height: 115svh; scroll-margin-top: 68px; padding: 11vh 5vw 7vh; grid-template-columns: 1fr; gap: 6vh; align-content: center; }
  .access-orbit { width: 120vw; left: -62vw; top: 4vh; box-shadow: 18vw 15vw 0 var(--mango); }
  .access-intro { min-height: 37vh; }
  .access-intro h2 { margin-bottom: 0; font-size: 17vw; }
  .access-form { justify-self: stretch; padding: 1.5rem; background: var(--ivory); }
  .access-status { margin-bottom: 2rem; }
  footer { padding: 2rem 5vw max(2rem,env(safe-area-inset-bottom)); grid-template-columns: 1fr 1fr; }
  .footer-legal { grid-template-columns:1fr; gap:.65rem; padding-bottom:2rem; }
  footer > span:nth-of-type(2) { display: none; }
}

@media (hover:none) and (pointer:coarse) {
  .discover,.territory-link,.carousel-arrow,.access-form button { min-height:44px; }
  .territory-card:hover .map { transform:none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .loader { display: none; }
  .product-train, .sun { transform: none !important; }
  .moving-vehicle { display:none; }
  .train-cleaning { opacity: 1 !important; filter: none !important; }
  .train-care, .train-table { opacity: 0 !important; }
}
