/* ==========================================================================
   SaT PaK — Cinematic layer
   Loaded after style.css. Scroll-led, editorial treatment for the main pages.
   Colours and typefaces come from the tokens in style.css.
   Motion is driven by assets/js/motion.js through --p (scene progress) and
   --py (parallax offset). Without JavaScript every block renders in its
   final, readable state.
   ========================================================================== */

:root{
  --cine-ease:cubic-bezier(.19,1,.22,1);
  --cine-ease-soft:cubic-bezier(.25,.8,.25,1);
  --ink-on-dark:rgba(250,247,241,0.78);
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* --------------------------------------------------------------------------
   Reveal primitives (active only when motion.js is running)
   -------------------------------------------------------------------------- */
.js-motion [data-in]{transition:opacity 1s var(--cine-ease),transform 1.1s var(--cine-ease),clip-path 1.3s var(--cine-ease);}
.js-motion [data-in="up"]{opacity:0;transform:translateY(40px);}
.js-motion [data-in="fade"]{opacity:0;}
.js-motion [data-in="scale"]{opacity:0;transform:scale(.94);}
.js-motion [data-in].is-in{opacity:1;transform:none;}
/* The observed element stays unclipped (IntersectionObserver ignores targets
   clipped to nothing); the wipe runs on its children instead. */
.js-motion [data-in="clip"] > *{clip-path:inset(100% 0 0 0);transition:clip-path 1.3s var(--cine-ease);}
.js-motion [data-in="clip"].is-in > *{clip-path:inset(0 0 0 0);}

.js-motion [data-stagger] > *{opacity:0;transform:translateY(30px);transition:opacity .9s var(--cine-ease),transform 1s var(--cine-ease);transition-delay:calc(var(--i,0) * 90ms);}
.js-motion [data-stagger].is-in > *{opacity:1;transform:none;}

.reduce-motion *,.reduce-motion *::before,.reduce-motion *::after{animation:none !important;transition:none !important;}

/* line-mask headline */
.cine-line{display:block;overflow:hidden;padding-bottom:0.06em;margin-bottom:-0.06em;}
.cine-line > span{display:block;}
.js-motion .cine-line > span{transform:translateY(105%);transition:transform 1.4s var(--cine-ease);}
.js-motion .cine-line:nth-child(2) > span{transition-delay:.12s;}
.js-motion .cine-line:nth-child(3) > span{transition-delay:.24s;}
.js-motion .cine-line:nth-child(4) > span{transition-delay:.36s;}
.js-motion .is-ready .cine-line > span{transform:none;}
.js-motion [data-after-lines]{opacity:0;transform:translateY(18px);transition:opacity 1s var(--cine-ease) .7s,transform 1s var(--cine-ease) .7s;}
.js-motion .is-ready [data-after-lines]{opacity:1;transform:none;}

/* shared display type */
.display{
  font-family:var(--font-display);font-weight:340;letter-spacing:-0.03em;line-height:0.96;
  font-size:clamp(3rem,8.4vw,8.2rem);color:#fff;font-optical-sizing:auto;
}
.display em,.h-xl em,.statement em{font-style:italic;font-weight:330;color:var(--brass-light);}
.h-xl{
  font-family:var(--font-display);font-weight:360;letter-spacing:-0.025em;line-height:1;
  font-size:clamp(2.4rem,5.6vw,5rem);color:var(--teal);
}
.section--dark .h-xl,.on-dark .h-xl{color:#fff;}
.kicker{
  display:inline-flex;align-items:center;gap:14px;font-size:11.5px;font-weight:600;
  letter-spacing:0.24em;text-transform:uppercase;color:var(--brass);
}
.kicker::before{content:"";width:40px;height:1px;background:currentColor;opacity:.7;}
.on-dark .kicker,.section--dark .kicker{color:var(--brass-light);}

.grain::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:2;
  background-image:var(--grain);background-size:160px;opacity:.07;mix-blend-mode:overlay;
}

/* --------------------------------------------------------------------------
   Film hero (home): full-bleed footage that settles into a framed window
   as you scroll — the "scroll behaviour" moment
   -------------------------------------------------------------------------- */
.film-scene{position:relative;height:175vh;background:var(--ivory);}
.film-sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;}
.film-frame{
  position:absolute;inset:0;overflow:hidden;background:var(--heritage-dark);
  clip-path:inset(calc(var(--p,0) * 9%) calc(var(--p,0) * 6%) calc(var(--p,0) * 12%) calc(var(--p,0) * 6%) round calc(var(--p,0) * 30px));
}
.film-frame video,.film-frame .film-poster{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transform:scale(calc(1.12 - var(--p,0) * 0.12));
}
.film-frame::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(180deg,rgba(8,26,24,0.55) 0%,rgba(8,26,24,0.12) 32%,rgba(8,26,24,0.30) 58%,rgba(8,26,24,0.88) 100%),
    radial-gradient(120% 90% at 85% 10%,rgba(154,123,63,0.25),transparent 55%);
}
.film-copy{
  position:absolute;left:0;right:0;bottom:0;z-index:3;color:#fff;
  padding-bottom:clamp(36px,8vh,96px);
  opacity:calc(1 - var(--p,0) * 1.8);transform:translateY(calc(var(--p,0) * -90px));
}
.film-copy .lede{color:rgba(255,255,255,0.84);margin-top:26px;max-width:520px;font-size:clamp(1rem,1.3vw,1.15rem);}
.film-copy .btn-row{margin-top:34px;}
.film-meta{
  display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;
  border-top:1px solid rgba(255,255,255,0.22);margin-top:46px;padding-top:18px;
  font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:rgba(255,255,255,0.66);
}
.film-meta b{font-weight:600;color:#fff;}

/* the line that appears once the frame closes in */
.film-after{
  position:absolute;left:0;right:0;bottom:3.6vh;z-index:3;text-align:center;
  font-family:var(--font-display);font-style:italic;font-size:clamp(1rem,1.6vw,1.35rem);color:var(--teal);
  opacity:calc((var(--p,0) - 0.6) * 3);
}

/* rotating heritage seal */
.seal{
  position:absolute;z-index:3;right:clamp(20px,5vw,72px);top:clamp(96px,16vh,150px);
  width:clamp(108px,11vw,148px);aspect-ratio:1;color:rgba(255,255,255,0.86);
  opacity:calc(1 - var(--p,0) * 2);
}
.seal svg{width:100%;height:100%;animation:sealSpin 26s linear infinite;}
.seal text{font-family:var(--font-sans);font-size:9.6px;letter-spacing:0.32em;fill:currentColor;text-transform:uppercase;}
.seal .seal-core{
  position:absolute;inset:30%;border-radius:50%;background:rgba(255,255,255,0.1);backdrop-filter:blur(6px);
  display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,0.25);
}
.seal .seal-core img{width:70%;height:auto;}
@keyframes sealSpin{to{transform:rotate(360deg);}}

.coords{
  position:absolute;z-index:3;left:clamp(14px,2vw,26px);top:50%;transform:translateY(-50%) rotate(180deg);
  writing-mode:vertical-rl;font-size:10.5px;letter-spacing:0.28em;text-transform:uppercase;color:rgba(255,255,255,0.5);
  opacity:calc(1 - var(--p,0) * 2);
}

/* --------------------------------------------------------------------------
   Page film hero (inner pages)
   -------------------------------------------------------------------------- */
.page-film{
  position:relative;min-height:92vh;min-height:92svh;display:flex;align-items:flex-end;
  color:#fff;overflow:hidden;background:var(--heritage-dark);padding:140px 0 clamp(44px,8vh,90px);
}
.page-film video,.page-film .film-poster{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transform:translateY(var(--py,0)) scale(1.12);
}
.page-film::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(8,26,24,0.62) 0%,rgba(8,26,24,0.2) 38%,rgba(8,26,24,0.9) 100%);
}
.page-film .container{position:relative;z-index:3;width:100%;}
.page-film .display{font-size:clamp(2.8rem,7vw,6.6rem);max-width:14ch;}
.page-film .lede{color:rgba(255,255,255,0.84);margin-top:24px;max-width:560px;}
.page-film .btn-row{margin-top:32px;}
.page-film .film-meta{margin-top:40px;}

/* --------------------------------------------------------------------------
   Numbers strip
   -------------------------------------------------------------------------- */
.numbers{background:var(--ivory);padding:clamp(56px,9vh,96px) 0;}
.numbers-grid{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);}
.numbers-grid > div{padding:28px 22px 0;border-left:1px solid var(--line);}
.numbers-grid > div:first-child{border-left:0;padding-left:0;}
.numbers-grid .n{
  display:block;font-family:var(--font-display);font-weight:330;letter-spacing:-0.03em;line-height:1;
  font-size:clamp(2.6rem,5vw,4.6rem);color:var(--teal);font-variant-numeric:tabular-nums;
}
.numbers-grid .n.word{font-style:italic;color:var(--brass);}
.numbers-grid .l{display:block;margin-top:12px;font-size:0.84rem;color:rgba(30,30,30,0.6);letter-spacing:0.02em;}

/* --------------------------------------------------------------------------
   Department rows
   -------------------------------------------------------------------------- */
.dept-list{border-top:1px solid var(--line);margin-top:56px;}
.dept-row{
  position:relative;display:grid;grid-template-columns:80px 1fr auto;align-items:center;gap:28px;
  padding:clamp(26px,3.6vw,40px) 10px;border-bottom:1px solid var(--line);isolation:isolate;
  transition:padding-left .55s var(--cine-ease);
}
.dept-row::before{
  content:"";position:absolute;inset:0;z-index:-1;background:var(--heritage-dark);
  transform:scaleY(0);transform-origin:bottom;transition:transform .55s var(--cine-ease);
}
.dept-row .d-index{font-family:var(--font-display);font-size:1rem;color:var(--brass);letter-spacing:0.06em;}
.dept-row .d-name{
  display:block;font-family:var(--font-display);font-weight:340;letter-spacing:-0.025em;line-height:1;
  font-size:clamp(1.9rem,4.4vw,3.6rem);color:var(--teal);transition:color .45s var(--cine-ease);
}
.dept-row .d-desc{display:block;font-size:0.94rem;color:rgba(30,30,30,0.6);margin-top:10px;max-width:440px;transition:color .45s;}
.dept-row .d-go{
  width:56px;height:56px;border-radius:50%;border:1.3px solid var(--line);color:var(--teal);
  display:flex;align-items:center;justify-content:center;transition:transform .55s var(--cine-ease),background .4s,border-color .4s,color .4s;
}
.dept-row .d-go svg{width:20px;height:20px;}
.dept-row .d-thumb{display:none;}
@media (hover:hover){
  .dept-row:hover{padding-left:30px;}
  .dept-row:hover::before{transform:scaleY(1);}
  .dept-row:hover .d-name{color:#fff;}
  .dept-row:hover .d-desc{color:rgba(255,255,255,0.68);}
  .dept-row:hover .d-index{color:var(--brass-light);}
  .dept-row:hover .d-go{background:var(--brass);border-color:var(--brass);color:#fff;transform:rotate(-45deg);}
}

.dept-preview{
  position:fixed;left:0;top:0;z-index:80;pointer-events:none;width:320px;height:220px;
  margin:-110px 0 0 -160px;
}
.dept-preview .pane-wrap{
  position:absolute;inset:0;border-radius:16px;overflow:hidden;box-shadow:var(--shadow-lg);
  opacity:0;transform:scale(.7) rotate(-4deg);transition:opacity .35s var(--cine-ease),transform .5s var(--cine-ease);
}
.dept-preview.is-live .pane-wrap{opacity:1;transform:scale(1) rotate(-2deg);}
.dept-preview .pane{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity .3s;}
.dept-preview .pane.is-shown{opacity:1;}
.dept-preview .pane.tone{background:linear-gradient(140deg,var(--teal),var(--heritage-dark));}
.dept-preview .pane.tone-brass{background:linear-gradient(140deg,#7c6435,var(--brass) 60%,#c2a06a);}
.dept-preview .pane span{
  position:absolute;left:16px;bottom:14px;font-size:10.5px;letter-spacing:0.16em;text-transform:uppercase;color:#fff;
  text-shadow:0 1px 8px rgba(0,0,0,0.4);
}

/* --------------------------------------------------------------------------
   Statement — words light up as you scroll past
   -------------------------------------------------------------------------- */
.statement-scene{position:relative;}
.statement{
  font-family:var(--font-display);font-weight:340;letter-spacing:-0.02em;line-height:1.12;
  font-size:clamp(1.9rem,4.2vw,3.7rem);color:var(--teal);max-width:22ch;
}
.on-dark .statement{color:#fff;}
.js-motion .statement .w{opacity:.16;transition:opacity .45s var(--cine-ease-soft);}
.js-motion .statement .w.is-lit{opacity:1;}

/* --------------------------------------------------------------------------
   Plant photography
   -------------------------------------------------------------------------- */
.shot{position:relative;overflow:hidden;border-radius:var(--radius-lg);background:var(--heritage-dark);}
.shot img{width:100%;height:100%;object-fit:cover;transform:translateY(var(--py,0)) scale(1.16);}
.shot figcaption{
  position:absolute;left:18px;bottom:16px;right:18px;z-index:2;color:#fff;font-size:11px;
  letter-spacing:0.16em;text-transform:uppercase;text-shadow:0 1px 10px rgba(0,0,0,0.45);
}
.shot::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(8,26,24,0.6));}

.plant-mosaic{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:auto auto;gap:22px;margin-top:64px;}
.plant-mosaic .shot:nth-child(1){grid-row:span 2;aspect-ratio:4/5;}
.plant-mosaic .shot:nth-child(2),.plant-mosaic .shot:nth-child(3){aspect-ratio:4/3;}

.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,96px);align-items:center;}
.split.flip > :first-child{order:2;}
.split .shot{aspect-ratio:4/5;}
.split .shot.wide{aspect-ratio:4/3;}

/* horizontal film strip (pinned on desktop) */
.strip-scene{position:relative;height:260vh;background:var(--heritage-dark);}
.strip-sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;}
.strip-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:40px;}
.strip-track{display:flex;gap:26px;padding:0 max(28px,calc((100vw - var(--container)) / 2 + 28px));will-change:transform;}
.strip-track .shot{flex:none;width:clamp(300px,34vw,520px);aspect-ratio:4/5;}
.strip-track .shot img{transform:scale(1.04);}

/* --------------------------------------------------------------------------
   Heritage
   -------------------------------------------------------------------------- */
.heritage{position:relative;overflow:hidden;}
.heritage .ghost{
  position:absolute;right:-3%;bottom:-6%;z-index:0;pointer-events:none;user-select:none;
  font-family:var(--font-display);font-style:italic;font-weight:300;line-height:.8;letter-spacing:-0.05em;
  font-size:clamp(9rem,30vw,26rem);color:rgba(255,255,255,0.035);
  transform:translateX(calc((var(--p,0.5) - 0.5) * -12%));
}
.heritage .container{position:relative;z-index:1;}

/* --------------------------------------------------------------------------
   Clients
   -------------------------------------------------------------------------- */
.client-marquee{
  margin-top:56px;display:flex;flex-direction:column;gap:18px;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.marquee-row{display:flex;width:max-content;gap:18px;animation:marquee 46s linear infinite;}
.marquee-row.reverse{animation-direction:reverse;animation-duration:52s;}
.client-marquee:hover .marquee-row{animation-play-state:paused;}
@keyframes marquee{to{transform:translateX(-50%);}}
.client-tile{
  flex:none;width:200px;height:112px;background:var(--white);border:1px solid var(--line);border-radius:14px;
  display:flex;align-items:center;justify-content:center;padding:18px 24px;
}
.client-tile img{max-width:100%;max-height:72px;width:auto;height:auto;filter:grayscale(1);opacity:.72;transition:filter .35s,opacity .35s;}
.client-tile:hover img{filter:none;opacity:1;}
.client-tile.text{font-family:var(--font-display);font-size:1.12rem;color:var(--teal);text-align:center;line-height:1.2;}

/* --------------------------------------------------------------------------
   Testimonials
   -------------------------------------------------------------------------- */
.quotes{position:relative;display:grid;grid-template-columns:1fr;}
.quote-slide{
  grid-area:1/1;opacity:0;visibility:hidden;transform:translateY(16px);
  transition:opacity .7s var(--cine-ease),transform .9s var(--cine-ease),visibility .7s;
}
.quote-slide.is-active{opacity:1;visibility:visible;transform:none;}
.quote-slide blockquote{
  margin:0;font-family:var(--font-display);font-weight:340;font-style:italic;letter-spacing:-0.01em;
  font-size:clamp(1.5rem,2.9vw,2.5rem);line-height:1.25;color:var(--teal);max-width:30ch;
}
.quote-slide blockquote::before{content:"\201C";display:block;font-size:4rem;line-height:.6;color:var(--brass-light);margin-bottom:10px;font-style:normal;}
.quote-who{display:flex;align-items:center;gap:16px;margin-top:34px;}
.quote-who .mono{
  width:48px;height:48px;border-radius:50%;background:var(--teal);color:#fff;font-family:var(--font-display);
  display:flex;align-items:center;justify-content:center;font-size:1.05rem;flex:none;
}
.quote-who strong{display:block;font-size:0.98rem;color:var(--charcoal);}
.quote-who span{display:block;font-size:0.84rem;color:rgba(30,30,30,0.55);}
.quote-nav{display:flex;align-items:center;gap:22px;margin-top:48px;}
.quote-ticks{display:flex;gap:10px;flex:1;max-width:360px;}
.quote-tick{flex:1;height:3px;border:0;padding:0;background:var(--line);position:relative;overflow:hidden;border-radius:3px;}
.quote-tick::after{content:"";position:absolute;inset:0;background:var(--brass);transform:scaleX(0);transform-origin:left;}
.quote-tick.is-done::after{transform:scaleX(1);}
.quote-tick.is-running::after{animation:tickRun 7s linear forwards;}
@keyframes tickRun{to{transform:scaleX(1);}}
.quote-arrow{
  width:48px;height:48px;border-radius:50%;border:1.3px solid var(--line);background:none;color:var(--teal);
  display:flex;align-items:center;justify-content:center;transition:all .3s var(--ease);
}
.quote-arrow:hover{background:var(--teal);color:#fff;border-color:var(--teal);}
.quote-arrow svg{width:18px;height:18px;}

/* --------------------------------------------------------------------------
   The water line — seven stages along a pipe that fills as you scroll
   -------------------------------------------------------------------------- */
.pipeline-scene{position:relative;height:420vh;background:var(--heritage-dark);color:var(--ink-on-dark);}
.pipeline-sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;}
.pipeline-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;}
.pipeline-head h2{color:#fff;max-width:16ch;}
.pipeline-count{
  font-family:var(--font-display);font-weight:300;line-height:.9;color:#fff;font-variant-numeric:tabular-nums;
  font-size:clamp(3.4rem,7vw,6.4rem);white-space:nowrap;
}
.pipeline-count small{font-size:.32em;color:rgba(255,255,255,0.4);letter-spacing:0.06em;}
.pipeline-viewport{margin-top:clamp(30px,6vh,64px);}
.pipeline-track{
  position:relative;width:max(2600px,calc(7 * 380px));height:clamp(360px,52vh,470px);
  margin:0 max(28px,calc((100vw - var(--container)) / 2 + 28px));will-change:transform;
}
.pipe{position:absolute;left:0;right:0;top:50%;height:150px;transform:translateY(-50%);overflow:visible;}
.pipe svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;}
.pipe .pipe-base{fill:none;stroke:rgba(255,255,255,0.12);stroke-width:2;}
.pipe .pipe-flow{
  fill:none;stroke:var(--brass-light);stroke-width:2.4;stroke-linecap:round;
  stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--p,0));
}
.pipe-drop{
  position:absolute;left:0;top:0;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;
  background:#fff;box-shadow:0 0 0 6px rgba(194,160,106,0.25),0 0 26px 6px rgba(194,160,106,0.55);
}
.stations{position:absolute;inset:0;display:grid;grid-template-columns:repeat(7,1fr);}
.station{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 18px;}
.station .node{
  position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;
  background:var(--heritage-dark);border:1.6px solid rgba(255,255,255,0.3);transition:all .5s var(--cine-ease);
}
.station .card-body{
  position:absolute;left:18px;right:18px;transition:opacity .6s var(--cine-ease),transform .7s var(--cine-ease);
  opacity:.28;
}
.station:nth-child(odd) .card-body{bottom:calc(50% + 46px);}
.station:nth-child(even) .card-body{top:calc(50% + 46px);}
.station .num{font-family:var(--font-display);font-style:italic;font-size:1rem;color:var(--brass-light);}
.station h3{font-family:var(--font-display);font-weight:400;color:#fff;font-size:clamp(1.5rem,2.2vw,2rem);margin:8px 0 10px;}
.station p{font-size:0.92rem;line-height:1.55;color:rgba(250,247,241,0.66);}
.station.is-lit .card-body{opacity:1;}
.station.is-lit .node{background:var(--brass-light);border-color:var(--brass-light);box-shadow:0 0 0 8px rgba(194,160,106,0.16);}

/* --------------------------------------------------------------------------
   Product art (Chemicals) — drawn containers with the product's label
   -------------------------------------------------------------------------- */
.product-thumb.has-art{background:radial-gradient(90% 80% at 50% 30%,#fff 0%,var(--ivory-dim) 70%);overflow:hidden;}
.product-thumb .can{width:46%;height:auto;opacity:1;color:var(--can,var(--teal));filter:drop-shadow(0 18px 18px rgba(12,43,40,0.16));transition:transform .7s var(--cine-ease);}
.can text{font-family:var(--font-display);fill:var(--charcoal);}
.can .can-name{font-size:10.5px;font-weight:600;letter-spacing:0.02em;}
.can .can-name.sm{font-size:8.4px;}
.can .can-sub{font-family:var(--font-sans);font-size:5.2px;letter-spacing:0.08em;text-transform:uppercase;fill:rgba(30,30,30,0.55);}
.product-thumb::after{
  content:"";position:absolute;top:0;bottom:0;width:40%;left:-60%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,0.65),transparent);transform:skewX(-18deg);
}
.product-card:hover .product-thumb .can{transform:translateY(-8px) rotate(-3deg);}
.product-card:hover .product-thumb::after{left:130%;transition:left 1s var(--cine-ease);}
.product-cat-tag.exclusive{background:var(--brass);color:#fff;}

/* --------------------------------------------------------------------------
   Process line (R&D, Article how-it-works)
   -------------------------------------------------------------------------- */
.step-line{position:relative;display:grid;grid-template-columns:repeat(var(--steps,5),1fr);gap:24px;margin-top:64px;}
.step-line::before,.step-line::after{content:"";position:absolute;top:27px;left:0;right:0;height:1px;}
.step-line::before{background:var(--line);}
.step-line::after{background:var(--brass);transform-origin:left;transform:scaleX(var(--p,1));}
.on-dark .step-line::before{background:var(--line-light);}
.step-line .step{position:relative;z-index:1;}
.step-line .dot{
  width:56px;height:56px;border-radius:50%;background:var(--ivory);border:1.3px solid var(--brass);color:var(--brass);
  display:flex;align-items:center;justify-content:center;margin-bottom:20px;
}
.on-dark .step-line .dot{background:var(--heritage-dark);color:var(--brass-light);border-color:var(--brass-light);}
.step-line .dot svg{width:22px;height:22px;}
.step-line h3{font-family:var(--font-display);font-weight:400;font-size:1.35rem;color:var(--teal);margin-bottom:8px;}
.on-dark .step-line h3{color:#fff;}
.step-line p{font-size:0.9rem;color:rgba(30,30,30,0.62);}
.on-dark .step-line p{color:rgba(250,247,241,0.66);}

/* --------------------------------------------------------------------------
   Article
   -------------------------------------------------------------------------- */
.wordmark{
  font-family:var(--font-display);font-weight:300;letter-spacing:0.08em;line-height:.9;color:#fff;
  font-size:clamp(3.6rem,13vw,12rem);
}
.wordmark-by{display:block;font-family:var(--font-sans);font-size:12px;letter-spacing:0.32em;text-transform:uppercase;color:var(--brass-light);margin-bottom:18px;}
.tagline{font-family:var(--font-display);font-style:italic;font-size:clamp(1.25rem,2.4vw,2rem);color:rgba(255,255,255,0.9);margin-top:14px;}
.fact-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px;}
.fact-chips span{
  padding:9px 16px;border-radius:30px;border:1px solid rgba(255,255,255,0.3);font-size:0.84rem;
  color:#fff;backdrop-filter:blur(6px);background:rgba(255,255,255,0.06);
}

.gauge{position:relative;max-width:520px;width:100%;}
.gauge svg{width:100%;height:auto;overflow:visible;}
.gauge .g-track{fill:none;stroke:var(--line);stroke-width:14;stroke-linecap:round;}
.gauge .g-fill{
  fill:none;stroke:var(--teal);stroke-width:14;stroke-linecap:round;
  stroke-dasharray:400;stroke-dashoffset:calc(400 - 175 * var(--p,1));
}
.gauge .g-band{fill:none;stroke:var(--brass);stroke-width:26;stroke-linecap:butt;opacity:.9;}
.gauge .g-needle{transform-box:view-box;transform-origin:120px 120px;transform:rotate(calc(var(--p,1) * 78.75deg));}
.gauge .g-needle line{stroke:var(--charcoal);stroke-width:2.4;stroke-linecap:round;}
.gauge .g-label{font-family:var(--font-sans);font-size:7px;fill:rgba(30,30,30,0.45);letter-spacing:0.08em;}
.gauge-read{text-align:center;margin-top:-6px;}
.gauge-read .v{font-family:var(--font-display);font-weight:330;font-size:clamp(3rem,6vw,4.6rem);color:var(--teal);line-height:1;}
.gauge-read .u{display:block;font-size:0.8rem;letter-spacing:0.18em;text-transform:uppercase;color:rgba(30,30,30,0.5);margin-top:8px;}

.compare{margin-top:34px;display:flex;flex-direction:column;gap:18px;}
.compare-row .top{display:flex;justify-content:space-between;font-size:0.88rem;margin-bottom:8px;}
.compare-row .top b{font-weight:600;color:var(--charcoal);}
.compare-row .top span{color:rgba(30,30,30,0.5);}
.compare-row .bar{height:8px;border-radius:8px;background:var(--line);overflow:hidden;}
.compare-row .bar i{display:block;height:100%;border-radius:8px;background:rgba(30,30,30,0.28);width:var(--w);transform-origin:left;transform:scaleX(var(--p,1));}
.compare-row.is-ours .bar i{background:var(--brass);}
.compare-row.is-ours .top b{color:var(--teal);}

.elements{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:64px;}
.element{
  position:relative;background:var(--white);border:1px solid var(--line);border-radius:18px;padding:26px 24px 28px;
  transition:transform .5s var(--cine-ease),box-shadow .5s var(--cine-ease);
}
.element:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}
.element .z{position:absolute;top:18px;right:22px;font-size:0.8rem;color:rgba(30,30,30,0.4);font-variant-numeric:tabular-nums;}
.element .sym{
  font-family:var(--font-display);font-weight:340;font-size:4.2rem;line-height:1;color:var(--teal);display:block;
  animation:floatY 6s ease-in-out infinite;animation-delay:calc(var(--i,0) * -1.4s);
}
.element .name{display:block;margin-top:8px;font-weight:600;font-size:1rem;}
.element p{margin-top:10px;font-size:0.88rem;color:rgba(30,30,30,0.62);}
@keyframes floatY{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}

.lab-cert{
  position:relative;background:var(--white);border-radius:22px;padding:clamp(28px,4vw,46px);box-shadow:var(--shadow-lg);
  border:1px solid var(--line);overflow:hidden;
}
.lab-cert::before{
  content:"";position:absolute;inset:10px;border:1px solid rgba(154,123,63,0.35);border-radius:16px;pointer-events:none;
}
.lab-cert-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:22px;border-bottom:1px solid var(--line);}
.lab-cert-head .lab{font-size:0.78rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--brass);font-weight:700;}
.lab-cert-head h3{font-family:var(--font-display);font-weight:400;font-size:1.55rem;color:var(--teal);margin-top:6px;}
.lab-cert-head .date{text-align:right;font-size:0.82rem;color:rgba(30,30,30,0.55);}
.lab-cert-head .date b{display:block;font-size:1rem;color:var(--charcoal);}
.lab-rows{margin-top:10px;}
.lab-row{display:grid;grid-template-columns:1fr auto 34px;align-items:center;gap:16px;padding:14px 0;border-bottom:1px dashed var(--line);font-size:0.94rem;}
.lab-row:last-child{border-bottom:0;}
.lab-row span{color:rgba(30,30,30,0.7);}
.lab-row b{font-variant-numeric:tabular-nums;color:var(--charcoal);}
.lab-row .tick{
  width:26px;height:26px;border-radius:50%;background:#e3f1ea;color:#1c7a52;display:flex;align-items:center;justify-content:center;
  transform:scale(0);transition:transform .5s var(--cine-ease);transition-delay:calc(var(--i,0) * 120ms + .3s);
}
.lab-row .tick svg{width:14px;height:14px;}
.is-in .lab-row .tick{transform:scale(1);}
html:not(.js-motion) .lab-row .tick{transform:scale(1);}
.lab-verdict{
  margin-top:22px;padding:16px 18px;border-radius:12px;background:var(--teal);color:#fff;font-family:var(--font-display);
  font-style:italic;font-size:1.1rem;display:flex;gap:12px;align-items:center;
}
.lab-sign{margin-top:18px;display:flex;justify-content:space-between;font-size:0.8rem;color:rgba(30,30,30,0.55);}

.calc{
  background:var(--heritage-dark);color:var(--ink-on-dark);border-radius:24px;padding:clamp(28px,4vw,48px);
  position:relative;overflow:hidden;
}
.calc h3{font-family:var(--font-display);font-weight:400;color:#fff;font-size:1.6rem;}
.calc .row-l{display:flex;justify-content:space-between;align-items:baseline;margin-top:30px;}
.calc .row-l label{font-size:0.88rem;color:rgba(250,247,241,0.7);}
.calc .row-l output{font-family:var(--font-display);font-size:1.5rem;color:#fff;}
.calc input[type="range"]{
  -webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:6px;margin-top:16px;
  background:linear-gradient(90deg,var(--brass-light) var(--fill,20%),rgba(255,255,255,0.15) var(--fill,20%));
}
.calc input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:#fff;border:4px solid var(--brass-light);cursor:pointer;}
.calc input[type="range"]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;border:4px solid var(--brass-light);cursor:pointer;}
.calc .weeks{display:flex;gap:10px;margin-top:22px;}
.calc .weeks button{
  flex:1;padding:11px;border-radius:10px;border:1px solid rgba(255,255,255,0.22);background:none;color:#fff;font-size:0.86rem;
}
.calc .weeks button.is-active{background:var(--brass);border-color:var(--brass);}
.calc .totals{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:28px;}
.calc .totals div{background:rgba(255,255,255,0.06);border-radius:14px;padding:18px;}
.calc .totals small{display:block;font-size:0.76rem;letter-spacing:0.08em;text-transform:uppercase;color:rgba(250,247,241,0.55);}
.calc .totals strong{display:block;font-family:var(--font-display);font-weight:400;font-size:clamp(1.5rem,2.6vw,2.1rem);color:#fff;margin-top:6px;}
.calc .fine{margin-top:18px;font-size:0.8rem;color:rgba(250,247,241,0.5);}

.area-cloud{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px;}
.area-cloud span{
  padding:10px 18px;border-radius:30px;background:var(--white);border:1px solid var(--line);font-size:0.88rem;font-weight:500;
  transition:all .3s var(--ease);
}
.area-cloud span:hover{background:var(--teal);color:#fff;border-color:var(--teal);}

/* --------------------------------------------------------------------------
   Buttons with a moving arrow (cinematic CTAs)
   -------------------------------------------------------------------------- */
.btn-arrow{position:relative;overflow:hidden;}
.btn-arrow .arr{display:inline-flex;transition:transform .45s var(--cine-ease);}
.btn-arrow:hover .arr{transform:translateX(4px);}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width:1080px){
  .numbers-grid{grid-template-columns:repeat(3,1fr);}
  .numbers-grid > div:nth-child(4){border-left:0;padding-left:0;}
  .elements{grid-template-columns:repeat(2,1fr);}
}

@media (max-width:900px){
  .film-scene{height:140vh;}
  .split,.split.flip{grid-template-columns:1fr;}
  .split.flip > :first-child{order:0;}
  .plant-mosaic{grid-template-columns:1fr 1fr;}
  .plant-mosaic .shot:nth-child(1){grid-column:span 2;grid-row:auto;aspect-ratio:4/3;}

  .dept-row{grid-template-columns:34px 1fr 76px;gap:14px;padding:22px 2px;}
  .dept-row .d-go{display:none;}
  .dept-row .d-thumb{display:block;width:76px;height:76px;border-radius:12px;background-size:cover;background-position:center;}
  .dept-row .d-thumb.tone{background:linear-gradient(140deg,var(--teal),var(--heritage-dark));}
  .dept-row .d-thumb.tone-brass{background:linear-gradient(140deg,#7c6435,var(--brass) 60%,#c2a06a);}

  /* film strip becomes a swipe row */
  .strip-scene{height:auto;padding:80px 0;}
  .strip-sticky{position:static;height:auto;}
  .strip-track{overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;transform:none !important;scrollbar-width:none;}
  .strip-track::-webkit-scrollbar{display:none;}
  .strip-track .shot{width:78vw;scroll-snap-align:center;}

  /* the water line runs vertically on small screens */
  .pipeline-scene{height:auto;padding:90px 0 70px;}
  .pipeline-sticky{position:static;height:auto;overflow:visible;}
  .pipeline-head{flex-direction:column;align-items:flex-start;}
  .pipeline-count{display:none;}
  .pipeline-track{width:auto;height:auto;margin:0 20px;transform:none !important;}
  .pipe{display:none;}
  .stations{position:relative;display:flex;flex-direction:column;gap:0;padding-left:36px;}
  .stations::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:rgba(255,255,255,0.12);}
  .stations::after{content:"";position:absolute;left:7px;top:6px;width:2px;height:calc(var(--p,0) * 100%);max-height:calc(100% - 12px);background:var(--brass-light);}
  .station{align-items:flex-start;text-align:left;padding:0 0 34px;}
  .station .node{left:-36px;top:4px;margin:0;}
  .station .card-body,.station:nth-child(odd) .card-body,.station:nth-child(even) .card-body{position:static;opacity:.35;}
  .station.is-lit .card-body{opacity:1;}

  .step-line{grid-template-columns:1fr;gap:26px;padding-left:76px;}
  .step-line::before,.step-line::after{top:0;bottom:0;left:27px;right:auto;width:1px;height:auto;}
  .step-line::after{transform-origin:top;transform:scaleY(var(--p,1));}
  .step-line .dot{position:absolute;left:-76px;top:-4px;margin:0;}
}

@media (max-width:640px){
  .film-scene{height:125vh;}
  .display{font-size:clamp(2.7rem,12.4vw,4rem);}
  .seal{width:70px;top:78px;right:14px;}
  .film-copy .kicker{letter-spacing:0.16em;font-size:10px;}
  .film-copy .kicker::before{width:24px;}
  .coords{display:none;}
  .film-meta{font-size:9.5px;letter-spacing:0.14em;margin-top:30px;}
  .film-meta span:nth-child(2){display:none;}
  .page-film{min-height:88svh;padding-top:120px;}
  .numbers-grid{grid-template-columns:1fr 1fr;}
  .numbers-grid > div{padding:22px 0 0 18px;}
  .numbers-grid > div:nth-child(odd){border-left:0;padding-left:0;}
  .numbers-grid > div:nth-child(4){border-left:1px solid var(--line);padding-left:18px;}
  .numbers-grid > div:last-child{grid-column:span 2;border-left:0;padding-left:0;}
  .dept-row .d-name{font-size:1.65rem;}
  .dept-row .d-desc{font-size:0.86rem;}
  .elements{grid-template-columns:1fr 1fr;gap:12px;}
  .element{padding:20px 16px 22px;}
  .element .sym{font-size:3rem;}
  .client-tile{width:150px;height:88px;padding:14px 16px;}
  .client-tile img{max-height:56px;}
  .quote-nav{gap:14px;}
  .calc .totals{grid-template-columns:1fr;}
  .lab-cert-head{flex-direction:column;}
  .lab-cert-head .date{text-align:left;}
  .wordmark{letter-spacing:0.04em;}
}

/* --------------------------------------------------------------------------
   RO plants & services
   -------------------------------------------------------------------------- */
.visually-hidden{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}

.strip-hint{font-size:0.82rem;letter-spacing:0.14em;text-transform:uppercase;color:rgba(250,247,241,0.55);white-space:nowrap;}
.strip-hint .hint-touch{display:none;}
.strip-hint .hint-arrow{display:inline-block;color:var(--brass-light);animation:nudge 1.8s var(--cine-ease-soft) infinite;}
@keyframes nudge{50%{transform:translateX(6px);}}
.strip-track .shot figcaption{z-index:2;}
.strip-sticky{padding-top:var(--header-h-condensed,68px);}
@media (min-width:901px){.strip-track .shot{width:auto;height:min(56vh,540px);}}

/* numbered capability rows */
.spec-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.spec-list li{
  display:grid;grid-template-columns:120px minmax(0,1.1fr) minmax(0,1fr);gap:32px;align-items:baseline;
  padding:34px 0;border-bottom:1px solid var(--line);position:relative;
}
.spec-list li::before{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--teal);
  transform:scaleX(0);transform-origin:left;transition:transform .8s var(--cine-ease);
}
.spec-list li:hover::before{transform:scaleX(1);}
.spec-num{font-family:var(--font-display);font-style:italic;font-size:1.1rem;color:var(--brass);}
.spec-list h3{margin:0;font-family:var(--font-display);font-weight:360;letter-spacing:-0.02em;font-size:clamp(1.6rem,3.2vw,2.6rem);color:var(--teal);line-height:1.1;}
.spec-list p{margin:0;color:rgba(30,30,30,0.66);font-size:1rem;max-width:420px;}

/* oversized running list of components */
.word-marquee{padding:clamp(40px,7vh,72px) 0 clamp(48px,8vh,88px);overflow:hidden;background:var(--ivory);border-top:1px solid var(--line);}
.word-row{display:flex;width:max-content;animation:marquee 60s linear infinite;}
.word-row span{
  font-family:var(--font-display);font-weight:300;letter-spacing:-0.03em;line-height:1;white-space:nowrap;
  font-size:clamp(2.6rem,7vw,6rem);color:transparent;-webkit-text-stroke:1px rgba(14,77,69,0.45);padding-right:.5em;
}
.word-row span:nth-child(3n+2){color:var(--teal);-webkit-text-stroke:0;font-style:italic;}
.word-row span::after{content:"·";color:var(--brass);-webkit-text-stroke:0;padding-left:.5em;}
.word-marquee .note-flag{margin-top:36px;}

/* services + AMC */
.service-list{margin:0;}
.service-list > div{padding:24px 0;border-top:1px solid var(--line);}
.service-list dt{font-family:var(--font-display);font-size:1.35rem;color:var(--teal);font-weight:450;}
.service-list dd{margin:8px 0 0;color:rgba(30,30,30,0.66);line-height:1.65;}
.amc-card{
  position:relative;overflow:hidden;border-radius:var(--radius-lg);padding:clamp(32px,4vw,52px);
  background:var(--heritage-dark);color:var(--ink-on-dark);
}
.amc-card::after{
  content:"";position:absolute;width:420px;height:420px;right:-160px;top:-160px;border-radius:50%;
  border:1px solid rgba(194,160,106,0.22);box-shadow:0 0 0 60px rgba(194,160,106,0.04),0 0 0 120px rgba(194,160,106,0.025);
  pointer-events:none;
}
.amc-big{margin:22px 0 0;font-family:var(--font-display);font-weight:300;font-size:clamp(5rem,11vw,9rem);line-height:.9;letter-spacing:-0.05em;color:#fff;}
.amc-big-label{margin:10px 0 0;color:var(--brass-light);font-size:0.9rem;letter-spacing:0.04em;}
.amc-points{list-style:none;margin:30px 0 0;padding:0;}
.amc-points li{padding:12px 0 12px 26px;border-top:1px solid var(--line-light);position:relative;}
.amc-points li::before{content:"";position:absolute;left:0;top:20px;width:12px;height:1px;background:var(--brass-light);}

/* four-up numbers */
.numbers-grid.four{grid-template-columns:repeat(4,1fr);}
.numbers-grid.four .n{font-size:clamp(2.2rem,4.2vw,3.9rem);}

.treat-cloud{margin-top:0;}
.treat-cloud span{font-size:0.95rem;padding:12px 20px;}

@media (max-width:900px){
  .spec-list li{grid-template-columns:56px minmax(0,1fr);gap:8px 16px;padding:26px 0;}
  .spec-list p{grid-column:2;}
  .strip-head{align-items:flex-start;flex-direction:column;}
  .strip-sticky{padding-top:0;}
  .strip-hint .hint-wide{display:none;}
  .strip-hint .hint-touch{display:inline;}
  .numbers-grid.four{grid-template-columns:1fr 1fr;}
  .numbers-grid.four > div{padding:22px 0 0 18px;border-left:1px solid var(--line);}
  .numbers-grid.four > div:nth-child(odd){border-left:0;padding-left:0;}
  .numbers-grid.four > div:nth-child(n+3){margin-top:18px;}
  .numbers-grid.four > div:last-child{grid-column:auto;}
}
@media (max-width:640px){
  .numbers-grid.four .n{font-size:2.05rem;}
  .word-row span{-webkit-text-stroke-width:.7px;}
}

/* --------------------------------------------------------------------------
   Our Story
   -------------------------------------------------------------------------- */
/* milestone list with a brass line that fills as the section scrolls by */
.chronicle{list-style:none;margin:0;padding:0 0 0 0;position:relative;}
.chronicle::before,.chronicle::after{content:"";position:absolute;left:calc(28% - 1px);top:6px;bottom:6px;width:1px;background:var(--line);}
.chronicle::after{background:var(--brass);bottom:auto;height:calc(clamp(0, (var(--p, 1) - 0.18) / 0.5, 1) * (100% - 12px));}
.chronicle li{display:grid;grid-template-columns:28% minmax(0,1fr);gap:0;padding:0 0 56px;position:relative;}
.chronicle li:last-child{padding-bottom:0;}
.chronicle li::before{
  content:"";position:absolute;left:calc(28% - 6px);top:8px;width:11px;height:11px;border-radius:50%;
  background:var(--ivory);border:1.5px solid var(--brass);z-index:1;
}
.chronicle .era{font-family:var(--font-display);font-style:italic;font-size:clamp(1.05rem,1.6vw,1.35rem);color:var(--brass);padding-right:40px;line-height:1.3;}
.chronicle li > div{padding-left:48px;}
.chronicle h3{margin:0;font-family:var(--font-display);font-weight:380;font-size:clamp(1.5rem,2.6vw,2.2rem);letter-spacing:-0.02em;line-height:1.15;color:var(--teal);}
.chronicle p{margin:12px 0 0;max-width:520px;color:rgba(30,30,30,0.66);}

.numbers-grid.three{grid-template-columns:repeat(3,1fr);}

.monogram{
  aspect-ratio:1/1;border-radius:var(--radius-lg);background:var(--heritage-dark);position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:center;gap:.04em;
  font-family:var(--font-display);font-style:italic;font-weight:300;font-size:clamp(5rem,12vw,10rem);letter-spacing:-0.04em;color:var(--brass-light);
}
.monogram::before{content:"";position:absolute;inset:22px;border:1px solid rgba(194,160,106,0.28);border-radius:calc(var(--radius-lg) - 8px);}
.monogram span:nth-child(2){color:#fff;}

@media (max-width:900px){
  .chronicle::before,.chronicle::after{left:5px;}
  .chronicle li{grid-template-columns:1fr;padding:0 0 40px 34px;}
  .chronicle li::before{left:0;}
  .chronicle .era{padding-right:0;}
  .chronicle li > div{padding-left:0;margin-top:6px;}
  .numbers-grid.three{grid-template-columns:repeat(3,1fr);}
  .numbers-grid.three > div{padding:22px 0 0 14px;border-left:1px solid var(--line);grid-column:auto;}
  .numbers-grid.three > div:first-child{border-left:0;padding-left:0;}
  .monogram{aspect-ratio:16/10;}
}
@media (max-width:640px){
  .numbers-grid.three .n{font-size:2.1rem;}
}

/* page hero built on a still photograph instead of footage */
.page-film.still::before{
  background:
    linear-gradient(90deg,rgba(8,26,24,0.9) 0%,rgba(8,26,24,0.62) 52%,rgba(8,26,24,0.4) 100%),
    linear-gradient(180deg,rgba(8,26,24,0.5) 0%,rgba(8,26,24,0) 40%,rgba(8,26,24,0.85) 100%);
}
.page-film.still .film-poster{filter:saturate(.75);animation:slow-push 24s ease-out both;}
@keyframes slow-push{from{scale:1.12;}to{scale:1;}}
.chronicle::after{width:2px;left:calc(28% - 1.5px);}
@media (max-width:900px){.chronicle::after{left:4.5px;}}

/* --------------------------------------------------------------------------
   Product detail pages
   -------------------------------------------------------------------------- */
.product-stage{
  position:relative;overflow:hidden;color:#fff;
  background:radial-gradient(120% 90% at 78% 40%,#164a44 0%,var(--heritage-dark) 55%,#081c1a 100%);
  padding:clamp(130px,18vh,180px) 0 clamp(60px,10vh,110px);min-height:86vh;min-height:86svh;display:flex;align-items:center;
}
.product-stage-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:40px;align-items:center;width:100%;position:relative;z-index:2;}
.product-stage .display{font-size:clamp(3rem,8vw,7.4rem);max-width:none;}
.product-stage .lede{color:rgba(255,255,255,0.82);margin-top:24px;max-width:520px;}
.product-stage .breadcrumb{margin-bottom:28px;}
.fact-chips .chip-brass{border-color:var(--brass-light);color:var(--brass-light);}

.product-stage-art{position:relative;display:flex;justify-content:center;align-items:center;min-height:420px;}
.stage-halo{
  position:absolute;width:min(460px,90%);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(194,160,106,0.28) 0%,rgba(194,160,106,0.06) 48%,transparent 70%);
  transform:scale(calc(0.9 + var(--p,0.5) * 0.3));
}
.stage-halo::after{
  content:"";position:absolute;inset:8%;border-radius:50%;border:1px solid rgba(194,160,106,0.24);
  animation:spin-slow 40s linear infinite;border-top-color:transparent;border-bottom-color:transparent;
}
@keyframes spin-slow{to{transform:rotate(360deg);}}
.can.can-hero{
  position:relative;z-index:2;width:min(300px,62%);height:auto;color:var(--can);
  filter:drop-shadow(0 40px 40px rgba(0,0,0,0.45));
  transform:translateY(calc((var(--p,0.5) - 0.5) * -60px)) rotate(calc((var(--p,0.5) - 0.5) * -6deg));
  animation:can-float 6s ease-in-out infinite;
}
@keyframes can-float{50%{translate:0 -12px;}}
.js-motion .can.can-hero{opacity:0;scale:.9;transition:opacity 1.2s var(--cine-ease) .3s,scale 1.4s var(--cine-ease) .3s;}
.js-motion .is-ready .can.can-hero{opacity:1;scale:1;}
.stage-shadow{position:absolute;bottom:4%;width:42%;height:22px;border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,0.45),transparent);z-index:1;}

.product-intro{font-family:var(--font-display);font-weight:340;font-size:clamp(1.5rem,2.6vw,2.2rem);line-height:1.25;letter-spacing:-0.015em;color:var(--teal);margin-bottom:0;}
.buy-box{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px;}
.buy-box .product-controls{margin-top:0;}
.buy-box .btn-row{gap:10px;}
.buy-note{margin:20px 0 0;font-size:0.8rem;color:rgba(30,30,30,0.5);}
@media (min-width:901px){.product-buy{position:sticky;top:110px;}}

.spec-sheet{margin:0;border-top:1px solid var(--line);}
.spec-sheet > div{padding:28px 0;border-bottom:1px solid var(--line);}
.spec-sheet dt{display:flex;gap:18px;align-items:baseline;font-family:var(--font-display);font-size:1.4rem;color:var(--teal);font-weight:420;}
.spec-sheet dd{margin:10px 0 0 calc(1.1rem + 30px);color:rgba(30,30,30,0.7);line-height:1.7;}

.related-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;}
.related-card{color:inherit;text-decoration:none;}
.related-card .btn-text{margin-top:14px;display:inline-block;}

@media (max-width:900px){
  .product-stage{min-height:auto;padding-top:120px;}
  .product-stage-grid{grid-template-columns:1fr;gap:10px;}
  .product-stage-art{min-height:300px;order:-1;margin-top:-10px;}
  .can.can-hero{width:min(210px,56%);}
  .spec-sheet dd{margin-left:0;}
}

/* --------------------------------------------------------------------------
   Type-led page hero (pages without footage)
   -------------------------------------------------------------------------- */
.type-hero{
  position:relative;overflow:hidden;color:#fff;display:flex;align-items:flex-end;
  min-height:78vh;min-height:78svh;padding:150px 0 clamp(56px,9vh,96px);
  background:radial-gradient(110% 80% at 85% 20%,#174d46 0%,var(--heritage-dark) 52%,#081c1a 100%);
}
.type-hero .container{position:relative;z-index:2;width:100%;}
.type-hero .display{font-size:clamp(2.8rem,7vw,6.4rem);max-width:16ch;}
.type-hero .lede{color:rgba(255,255,255,0.82);margin-top:24px;max-width:560px;}
.type-hero .btn-row{margin-top:32px;}
.type-hero .ghost{
  position:absolute;right:-2%;top:12%;z-index:1;pointer-events:none;user-select:none;
  font-family:var(--font-display);font-style:italic;font-weight:300;line-height:.8;letter-spacing:-0.05em;
  font-size:clamp(9rem,30vw,28rem);color:transparent;-webkit-text-stroke:1px rgba(194,160,106,0.2);
  transform:translateY(calc((var(--p,0) - 0.3) * 120px));
}

.can .can-name.xs{font-size:6.3px;letter-spacing:0.03em;}
.care-grid .product-thumb .can{width:56%;}
@media (max-width:640px){.care-grid .product-thumb{aspect-ratio:16/11;}.care-grid .product-thumb .can{width:38%;}}
.care-grid .product-body p{min-height:3.2em;}
.fine-print{font-size:0.82rem;line-height:1.7;color:rgba(30,30,30,0.55);max-width:820px;padding-top:24px;border-top:1px solid var(--line);}

.pack-steps{list-style:none;margin:0;padding:0;display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;}
.pack-steps li{
  display:flex;flex-direction:column;justify-content:flex-end;gap:6px;padding:14px 16px;
  border:1px solid var(--line-light);border-radius:14px;min-width:92px;
}
.pack-steps li:nth-child(1){height:90px;}
.pack-steps li:nth-child(2){height:112px;}
.pack-steps li:nth-child(3){height:134px;}
.pack-steps li:nth-child(4){height:156px;}
.pack-steps li:nth-child(5){height:184px;border-color:var(--brass-light);}
.pack-steps span{font-family:var(--font-display);font-size:1.6rem;color:#fff;line-height:1;}
.pack-steps small{font-size:0.72rem;letter-spacing:0.08em;text-transform:uppercase;color:rgba(250,247,241,0.55);}

@media (max-width:640px){
  .type-hero{min-height:72svh;padding-top:120px;}
  .pack-steps li{min-width:0;flex:1 1 28%;}
}
.type-hero--short{min-height:64vh;min-height:64svh;}
.type-hero .film-meta{margin-top:40px;}
