/* The vertical scroll feeds a horizontal copper circuit. Content remains a
   regular, readable grid until the controller enables the pinned journey. */
html,body{overflow-x:clip}
.energy-journey{
  --journey-card-width:clamp(290px,34vw,420px);
  --journey-gap:86px;
  --journey-copper:#f26d16;
  --journey-line-y:50%;
  --journey-photo-height:clamp(132px,22vh,190px);
  position:relative;
}
.energy-journey:not(.journey-enabled) .journey-sticky,
.energy-journey:not(.journey-enabled) .journey-viewport,
.energy-journey:not(.journey-enabled) .journey-node{display:contents}
.energy-journey:not(.journey-enabled) .journey-rail,
.energy-journey:not(.journey-enabled) .journey-stem,
.energy-journey:not(.journey-enabled) .journey-dot,
.energy-journey:not(.journey-enabled) .journey-hint{display:none}
.energy-journey:not(.journey-enabled) .journey-track{transform:none!important}
.energy-journey:not(.journey-enabled) .journey-node>.card,
.energy-journey:not(.journey-enabled) .journey-node>.step,
.energy-journey:not(.journey-enabled) .journey-node>.quality{
  opacity:1!important;transform:none!important;
}
.energy-journey.journey-enabled{
  height:var(--journey-height);padding:0;overflow:visible;
  isolation:isolate;
}
.journey-enabled .journey-sticky{
  position:sticky;top:var(--journey-top,82px);
  height:var(--journey-viewport-height,calc(100svh - 82px));
  padding:28px 0 26px;overflow:clip;box-sizing:border-box;
}
.journey-enabled .journey-sticky>.container{
  display:flex;flex-direction:column;height:100%;min-height:0;
}
.journey-enabled .section-head,
.journey-enabled .section-head.center{
  flex:0 0 auto;max-width:820px;margin:0 auto 22px;text-align:center;
  opacity:1!important;transform:none!important;transition:none!important;
}
.journey-enabled .section-head>.energy-scan{display:none}
.journey-enabled .section-head .eyebrow{font-size:.71rem;letter-spacing:.17em}
.journey-enabled .section-head h2{
  font-size:clamp(1.8rem,3.2vw,2.8rem);line-height:1.08;
  margin:.55rem 0 .65rem;letter-spacing:-.035em;
}
.journey-enabled .section-head p{
  max-width:640px;margin-inline:auto;font-size:.91rem;line-height:1.5;
}
.journey-hint{
  display:flex;align-items:center;justify-content:center;gap:8px;
  flex:0 0 auto;
  margin:10px 0 0;color:#a65018;font-size:.65rem;line-height:1.4;
  letter-spacing:.07em;text-transform:uppercase;font-weight:700;
}
.dark .journey-hint{color:#ffb17a}
.journey-enabled .journey-viewport{
  position:relative;flex:1 1 auto;min-height:0;overflow:visible;
  outline:none;
}
.journey-enabled .journey-viewport:focus-visible{
  outline:2px solid var(--journey-copper);outline-offset:7px;border-radius:12px;
}
.journey-enabled .journey-track{
  display:flex;position:relative;align-items:stretch;gap:var(--journey-gap);
  width:max-content;min-width:100%;height:100%;margin:0;padding:0;
  will-change:transform;transition:none;overflow:visible;
}
.journey-enabled .journey-node{
  position:relative;flex:0 0 var(--journey-card-width);
  width:var(--journey-card-width);height:100%;min-width:0;
  --node-reveal:0;--stem-reveal:0;--copy-reveal:0;
}
.journey-enabled .journey-rail{
  position:absolute;top:var(--journey-line-y);left:0;right:0;height:1px;
  background:rgba(174,105,58,.18);pointer-events:none;z-index:2;
}
.journey-enabled .journey-current{
  position:absolute;inset:0;height:2px;top:-.5px;
  background:linear-gradient(90deg,#c65410,#f26d16 72%,#ffbd60);
  transform:scaleX(0);transform-origin:left center;
  box-shadow:0 0 9px #f26d1630;
}
.journey-enabled .journey-spark{
  display:grid;place-items:center;position:absolute;left:0;top:0;
  width:36px;height:36px;margin-left:-18px;z-index:4;
  border-radius:50%;background:radial-gradient(circle,#fff2cd 0%,#ffb14f24 43%,transparent 70%);
  color:var(--journey-copper);filter:drop-shadow(0 0 4px #fda65460);
  pointer-events:none;
}
.journey-enabled .journey-spark svg{width:24px;height:28px;display:block;fill:currentColor}
.journey-enabled .journey-dot{
  position:absolute;left:24px;top:var(--journey-line-y);
  width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;z-index:3;
  background:var(--journey-copper);
  opacity:var(--stem-reveal);transform:scale(var(--stem-reveal));
  box-shadow:0 0 0 5px #f26d1610;
}
.journey-enabled .journey-stem{
  position:absolute;left:24px;top:var(--journey-line-y);width:1px;height:30px;
  background:var(--journey-copper);transform:scaleY(var(--stem-reveal));
  transform-origin:top center;z-index:1;
}
.journey-enabled .journey-node:nth-child(2n)>.journey-stem{
  top:calc(var(--journey-line-y) - 30px);transform-origin:bottom center;
}
.journey-enabled .journey-node>.step,
.journey-enabled .journey-node>.quality{
  position:absolute;left:24px;top:calc(var(--journey-line-y) + 30px);
  width:calc(100% - 24px);padding:22px 24px;
  opacity:var(--node-reveal)!important;
  transform:translate3d(0,calc((1 - var(--node-reveal))*20px),0)!important;
  transition:none!important;box-sizing:border-box;
  border-radius:18px;border-color:#e4e7ea;
}
.journey-enabled .journey-node:nth-child(2n)>.step,
.journey-enabled .journey-node:nth-child(2n)>.quality{
  top:auto;bottom:calc(100% - var(--journey-line-y) + 30px);
  transform:translate3d(0,calc((var(--node-reveal) - 1)*20px),0)!important;
}
.journey-enabled .journey-node>.step h3,
.journey-enabled .journey-node>.step p,
.journey-enabled .journey-node>.quality strong,
.journey-enabled .journey-node>.quality p{
  opacity:var(--copy-reveal);
  transform:translateY(calc((1 - var(--copy-reveal))*12px));
}
.journey-enabled .step-num{
  width:38px;height:38px;margin-bottom:12px;border-radius:11px;
  background:#fff1e6;color:#bd4e0c;font-size:.93rem;
}
.journey-enabled .step h3{font-size:1.25rem;line-height:1.2;margin-bottom:8px}
.journey-enabled .step p{font-size:.9rem;line-height:1.5}
.journey-enabled .quality{
  border-color:#ffffff1a!important;background:#ffffff07;
}
.journey-enabled .quality strong{font-size:1.2rem;line-height:1.25;margin-bottom:10px}
.journey-enabled .quality p{font-size:.91rem;line-height:1.5}
.journey-enabled .journey-node>.step>.energy-scan,
.journey-enabled .journey-node>.quality>.energy-scan,
.journey-enabled .journey-node>.card>.energy-scan{display:none}

/* Service photography is part of each milestone, never replaced or clipped
   out of the content. The wire runs between the photo and its description. */
.journey-enabled[data-journey="services"]{
  --journey-line-y:calc(var(--journey-photo-height) + 24px);
}
.journey-enabled[data-journey="services"] .journey-node>.card{
  display:block;position:relative;margin:0;padding:0;overflow:visible;
  border:0;border-radius:0;background:transparent;box-shadow:none;
  opacity:1!important;transform:none!important;transition:none!important;
}
.journey-enabled[data-journey="services"] .card-media{
  height:var(--journey-photo-height);border-radius:18px;overflow:hidden;
  opacity:var(--node-reveal);
  transform:translateY(calc((1 - var(--node-reveal))*18px));
}
.journey-enabled[data-journey="services"] .card-media img{transform:none;transition:none}
.journey-enabled[data-journey="services"] .chip{
  left:13px;bottom:12px;padding:6px 10px;font-size:.67rem;
}
.journey-enabled[data-journey="services"] .card-body{
  margin-top:48px;padding:0 8px 8px 24px;
  opacity:var(--copy-reveal);
  transform:translateY(calc((1 - var(--copy-reveal))*20px));
}
.journey-enabled[data-journey="services"] .card-body h3{
  font-size:1.24rem;line-height:1.2;margin-bottom:7px;
}
.journey-enabled[data-journey="services"] .card-body p{font-size:.89rem;line-height:1.4}
.journey-enabled[data-journey="services"] .card-body ul{margin:10px 0 0;padding-left:17px}
.journey-enabled[data-journey="services"] .card-body li{font-size:.81rem;line-height:1.4;margin:4px 0}
.journey-enabled[data-journey="services"] .journey-node>.journey-stem{
  top:var(--journey-line-y);height:24px;transform-origin:top center;
}

@media(max-width:760px){
  .energy-journey{
    --journey-card-width:calc(100vw - 76px);--journey-gap:52px;
    --journey-photo-height:clamp(125px,20vh,164px);
  }
  .journey-enabled .journey-sticky{padding:22px 0 22px}
  .journey-enabled .section-head,
  .journey-enabled .section-head.center{margin-bottom:22px;max-width:100%}
  .journey-enabled .section-head .eyebrow{font-size:.63rem;letter-spacing:.14em}
  .journey-enabled .section-head h2{
    font-size:clamp(1.45rem,6.5vw,1.9rem);line-height:1.09;
    margin:.5rem 0 .55rem;letter-spacing:-.027em;
  }
  .journey-enabled .section-head p{font-size:.77rem;line-height:1.45;max-width:350px}
  .journey-enabled .journey-hint{font-size:.58rem;margin-top:9px}
  .journey-enabled .journey-node>.step,
  .journey-enabled .journey-node>.quality{padding:18px 19px;border-radius:16px}
  .journey-enabled .step-num{width:34px;height:34px;margin-bottom:10px}
  .journey-enabled .step h3{font-size:1.13rem}
  .journey-enabled .step p,
  .journey-enabled .quality p{font-size:15px;line-height:1.45}
  .journey-enabled .quality strong{font-size:1.12rem}
  .journey-enabled[data-journey="services"] .card-body{padding-left:24px;padding-right:3px}
  .journey-enabled[data-journey="services"] .card-body h3{font-size:1.14rem}
  .journey-enabled[data-journey="services"] .card-body p{font-size:15px}
  .journey-enabled[data-journey="services"] .card-body li{font-size:15px;line-height:1.4}
}
@media(max-height:740px) and (min-height:650px){
  .journey-enabled .journey-sticky{padding-top:15px;padding-bottom:16px}
  .journey-enabled .section-head,.journey-enabled .section-head.center{margin-bottom:15px}
  .journey-enabled .section-head h2{font-size:clamp(1.4rem,3vw,2.1rem)}
  .journey-enabled .section-head p{font-size:.75rem}
  .journey-enabled .journey-hint{margin-top:5px}
  .energy-journey{--journey-photo-height:125px}
  .journey-enabled .journey-node>.step,.journey-enabled .journey-node>.quality{padding:15px 18px}
  .journey-enabled .step-num{width:30px;height:30px;margin-bottom:8px}
}
@media(prefers-reduced-motion:reduce){
  .energy-journey.journey-enabled{height:auto!important;padding:70px 0}
  .energy-journey .journey-sticky,.energy-journey .journey-viewport,.energy-journey .journey-node{display:contents!important}
  .energy-journey .journey-track{display:grid!important;height:auto!important;width:auto!important;transform:none!important;gap:22px}
  .energy-journey .journey-rail,.energy-journey .journey-stem,.energy-journey .journey-dot,.energy-journey .journey-hint{display:none!important}
  .energy-journey .journey-node>.card,.energy-journey .journey-node>.step,.energy-journey .journey-node>.quality{
    position:static!important;width:auto!important;opacity:1!important;transform:none!important;
  }
  .energy-journey .journey-node .card-media,.energy-journey .journey-node .card-body,
  .energy-journey .journey-node h3,.energy-journey .journey-node strong,.energy-journey .journey-node p{
    opacity:1!important;transform:none!important;
  }
}
@media print{
  .energy-journey.journey-enabled{height:auto!important;padding:24px 0}
  .energy-journey .journey-sticky,.energy-journey .journey-viewport,.energy-journey .journey-node{display:contents!important}
  .energy-journey .journey-track{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;height:auto!important;width:auto!important;transform:none!important;gap:20px}
  .energy-journey .journey-rail,.energy-journey .journey-stem,.energy-journey .journey-dot,.energy-journey .journey-hint{display:none!important}
  .energy-journey .journey-node>.card,.energy-journey .journey-node>.step,.energy-journey .journey-node>.quality{
    position:static!important;width:auto!important;opacity:1!important;transform:none!important;break-inside:avoid;
  }
  .energy-journey .journey-node *{opacity:1!important;transform:none!important}
}
