/* The copper circuit is drawn in page coordinates; only a small spark is luminous. */
body{position:relative}
.energy-trail{position:absolute;inset:0 auto auto 0;z-index:42;max-width:100%;overflow:hidden;pointer-events:none;contain:layout style;user-select:none}
.energy-trail-wire{stroke:#ad5c23;stroke-width:1;opacity:.16}
.energy-trail-halo{stroke:#ef7d24;stroke-width:7;stroke-linejoin:round;stroke-linecap:round;opacity:.14}
.energy-trail-current{stroke:#ed8c37;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
.energy-tip-halo{fill:#f77b1c;opacity:.18}
.energy-tip-bolt{fill:#fff0c2;stroke:#ef801e;stroke-width:1;filter:drop-shadow(0 0 4px #ffab35)}
.energy-junction-branch{stroke:#e68b3e;stroke-width:1;opacity:.12;transition:opacity .8s}
.energy-junction-dot{fill:#b97749;opacity:.25;transition:fill .7s,opacity .7s}
.energy-junction.is-charged .energy-junction-branch{opacity:.65}
.energy-junction.is-charged .energy-junction-dot{fill:#ffae52;opacity:1}
.energy-progress{position:fixed;z-index:650;left:0;top:0;width:100%;height:2px;background:linear-gradient(90deg,#bb4b05,#ef831e,#ffe3a0);transform-origin:0 50%;transform:scaleX(0);pointer-events:none}
.energy-section{scroll-margin-top:90px}
.reveal{opacity:1;transform:none}
.energy-reveal{position:relative}
/* Scrubbed reveals: stop scrolling and the block stops with the ray. */
.energy-ready .energy-reveal{--block-energy:0;opacity:var(--block-energy);transform:translate3d(0,calc((1 - var(--block-energy))*24px),0);clip-path:inset(0 0 calc((1 - var(--block-energy))*12%) 0);transition:none}
.energy-ready .energy-reveal.energy-revealed{opacity:1;transform:none;clip-path:none}
.energy-scan{display:none}
.journey-is-active .energy-trail-tip{opacity:0}
.journey-is-active .energy-guide-bubble{opacity:0;visibility:hidden;pointer-events:none}
.energy-section-active .eyebrow::before{box-shadow:0 0 16px #f58b3545;transition:box-shadow .6s}

/* Allow narrow grid tracks to shrink before clipping the text. */
.about-grid>*,.contact-grid>*,.region-box>*,.cascais-head>*,.steps>*,.data-grid>*,.footer-main>*,.projects-top>*,.check>span,.service-grid>*,.quality-grid>*{min-width:0}
.control{width:100%;min-width:0}
.data span,.contact-row span,.footer-col p{overflow-wrap:anywhere}
.section-head h2,.region-copy h3,.cascais-head h3{overflow-wrap:break-word}
@media(max-width:760px){
  .energy-trail-current{stroke-width:1.35}
  .energy-trail-halo{stroke-width:4;opacity:.1}
  .energy-trail-tip{opacity:.85}
  .energy-junction-branch{display:none}
  .about-grid,.contact-grid,.region-box,.cascais-head,.steps,.regions,.data-grid,.footer-main,.form-grid,.service-grid,.quality-grid{grid-template-columns:minmax(0,1fr)}
  .section-head h2{font-size:clamp(1.9rem,8.2vw,2.65rem);line-height:1.1;max-width:100%}
  .section-head p,.region-copy p,.cascais-head p{max-width:100%;overflow-wrap:break-word}
  .place{white-space:normal;max-width:100%;justify-self:start;font-size:.8rem;padding:9px 15px}
  .region-copy h3{font-size:clamp(1.8rem,8vw,2.5rem);line-height:1.12}
  .cascais-head h3{font-size:clamp(1.65rem,7.5vw,2.2rem);line-height:1.13}
  .about-grid{gap:30px}
  .container{max-width:100%}
}
@media(prefers-reduced-motion:reduce){
  .energy-ready .energy-reveal{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}
  .energy-scan,.energy-trail-tip,.energy-trail-halo{display:none!important}
  .energy-trail-current{opacity:.5}
  .energy-junction *{transition:none!important}
}
html.energy-reduced .energy-reveal{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}
