.egapro-home-map{--hm-yellow:#ffd000;--hm-ink:#202426;--hm-muted:#6a707a;color:var(--hm-ink);scroll-margin-top:110px}
.egapro-home-map *{box-sizing:border-box}
.hm-heading{text-align:center;margin:0 auto 36px;max-width:640px}
.hm-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:14px;color:var(--hm-muted);margin-bottom:16px}
.hm-eyebrow:before{content:'';width:24px;height:3px;background:var(--hm-yellow);border-radius:4px}
.hm-heading h2{font-size:clamp(28px,3.2vw,42px);line-height:1.15;font-weight:650;letter-spacing:-.04em;margin:0 0 20px}
.hm-heading p{font-size:16px;line-height:1.65;color:var(--hm-muted);margin:0}
.hm-scene{perspective:1600px;isolation:isolate}
.hm-plane{position:relative;transform-style:preserve-3d;transform:rotateX(var(--hm-rx,0deg)) rotateY(var(--hm-ry,0deg));transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.hm-plane[data-tracking]{transition:transform .15s ease-out;will-change:transform}
.hm-terrain{position:relative;border-radius:30px;background:#f7f5f0;overflow:hidden;box-shadow:0 20px 40px -32px #26332666}
.hm-art{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.hm-pin{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:7px;border:0;background:none;cursor:pointer;min-width:44px;min-height:44px;padding:0;color:var(--hm-ink);z-index:2}
.hm-number{display:flex;align-items:center;justify-content:center;flex:none;width:38px;height:38px;border-radius:50%;background:var(--hm-yellow);font-size:14px;font-weight:700;box-shadow:0 0 0 5px #ffffff96,0 7px 18px #27331f30;transition:transform .25s ease,background .25s ease,color .25s ease}
.hm-label{display:block;background:#fffffff2;border:1px solid #fff;border-radius:8px;padding:7px 10px;font-size:14px;line-height:1.3;font-weight:550;white-space:nowrap;box-shadow:0 3px 12px #25352912;transition:transform .3s ease,background .3s ease}
.hm-pin[aria-pressed=true] .hm-number{background:var(--hm-ink);color:var(--hm-yellow);transform:translateY(-5px) scale(1.08)}
.hm-pin[aria-pressed=true] .hm-label{background:var(--hm-yellow);transform:translateY(-3px);border-color:var(--hm-yellow)}
.hm-pin:focus-visible{outline:2px solid #961239;outline-offset:9px;border-radius:10px}
.hm-description{position:absolute;width:29%;max-width:340px;left:35%;top:27%;transform:translateZ(42px);border:1px solid #ffffffd9;border-radius:22px;background:#fffffff5;padding:25px;box-shadow:0 22px 45px -20px #253a4050;z-index:4}
.hm-description article[hidden]{display:none!important}
.hm-detail-index{display:block;color:#756c42;font-size:12px;letter-spacing:.15em;font-weight:650;margin-bottom:13px}
.hm-description h3{font-size:23px;line-height:1.2;font-weight:650;letter-spacing:-.03em;margin:0 0 13px}
.hm-description p{font-size:16px;line-height:1.6;margin:0;color:#5e666d}
.hm-description a{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14px;font-weight:650;padding:15px 0 0;margin-top:18px;border-top:1px solid #e5e8e3;min-height:44px}
.hm-description a span,.hm-footer a span{font-size:23px;line-height:1;transition:transform .25s}
.hm-description a:hover span,.hm-footer a:hover span{transform:translate(3px,-3px)}
.hm-map-note{position:absolute;bottom:20px;left:24px;font-size:12px;color:#555f58;background:#ffffffcf;padding:7px 11px;border-radius:7px}
.hm-footer{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:24px;font-size:14px;color:var(--hm-muted)}
.hm-footer a{margin-left:auto;display:flex;align-items:center;gap:25px;min-height:44px;color:var(--hm-ink);font-weight:600}
.hm-touch-choices{display:none}
@media(min-width:1101px){.hm-pin[data-hm-service=construction_monitoring],.hm-pin[data-hm-service=live_events]{align-items:flex-end}.hm-pin[data-hm-service=construction_monitoring] .hm-number,.hm-pin[data-hm-service=live_events] .hm-number{margin-right:12px}.hm-pin[data-hm-service=anti_drone]{top:53%}}
@media(max-width:1100px){.hm-heading{margin-bottom:25px}.hm-plane{transform:none!important}.hm-terrain{border-radius:22px}.hm-pin .hm-label{display:none}.hm-number{width:32px;height:32px}.hm-pin{width:44px;height:44px;justify-content:center}.hm-map-note{display:none}.hm-description{position:relative;width:100%;max-width:none;left:auto;top:auto;transform:none;border:0;border-radius:0;background:none;box-shadow:none;padding:24px 4px 0;min-height:203px}.hm-description h3{font-size:22px}.hm-description p{font-size:16px;max-width:600px}.hm-description a{width:100%;margin-top:14px}.hm-detail-index{margin-bottom:10px}.hm-touch-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:22px}.hm-choice{display:flex;align-items:center;gap:9px;text-align:left;min-height:49px;border:1px solid #e4e6e5;background:#fff;border-radius:10px;padding:10px;color:var(--hm-ink);cursor:pointer}.hm-choice .hm-number{width:auto;height:auto;background:none;box-shadow:none;font-size:12px;color:#74796f}.hm-choice .hm-label{padding:0;white-space:normal;background:none;box-shadow:none;border:0;font-size:14px}.hm-choice[aria-pressed=true]{background:#fff8ce;border-color:#e7c942}.hm-choice[aria-pressed=true] .hm-number{color:#6d5800}.hm-choice:focus-visible{outline:2px solid #961239;outline-offset:3px}.hm-footer{margin-top:18px}.hm-footer>span{display:none}.hm-footer a{margin-left:auto}}
@media(max-width:400px){.hm-choice{gap:6px;padding:9px 8px}.hm-choice .hm-label{font-size:13px}.hm-heading p br{display:none}.hm-description{min-height:232px}.hm-description p{font-size:15px}.hm-terrain{border-radius:18px}.hm-number{width:28px;height:28px;font-size:12px;box-shadow:0 0 0 3px #ffffffb0}}
@media(prefers-reduced-motion:reduce){.egapro-home-map *{animation:none!important;transition:none!important}.hm-plane{transform:none!important}}

/* One open landscape, blended into the homepage rather than framed as a card. */
.egapro-home-map{position:relative}
.hm-scene{width:100vw;max-width:1920px;left:50%;position:relative;transform:translateX(-50%)}
.hm-heading{position:absolute;top:4%;left:50%;transform:translateX(-50%) translateZ(30px);width:46%;max-width:650px;margin:0;z-index:5;pointer-events:none}
.hm-heading h2{font-size:clamp(32px,3.7vw,56px);letter-spacing:-.055em;line-height:1.06;margin-bottom:20px}
.hm-heading h2 span{color:#70796f}
.hm-heading p{max-width:420px;margin-inline:auto;line-height:1.5}
.hm-terrain{border-radius:0;background:transparent;box-shadow:none;overflow:visible}
.hm-art{mask-image:linear-gradient(to bottom,transparent,#000 22%,#000 84%,transparent),linear-gradient(to right,transparent,#000 7%,#000 93%,transparent);mask-composite:intersect}
.hm-description{left:39%;top:34%;width:26%;background:#fffffff2;border-color:#fff;box-shadow:0 20px 50px -30px #21322755}
.hm-description button{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;font-size:14px;font-weight:650;padding:15px 0 0;margin-top:18px;border:0;border-top:1px solid #e5e8e3;min-height:44px;background:none;cursor:pointer;text-align:left}
.hm-description button span{font-size:23px;line-height:1;transition:transform .25s}
.hm-description button:hover span{transform:translate(3px,-3px)}
.hm-footer{position:relative;margin-top:-25px}
@media(max-width:1100px){.hm-heading{position:relative;left:auto;top:auto;transform:none;width:auto;max-width:620px;margin:auto;padding:0 22px 20px}.hm-heading h2{font-size:36px}.hm-terrain{margin-top:-20px}.hm-art{mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 80%,transparent)}.hm-description{position:relative;left:auto;top:auto;width:auto;max-width:640px;margin:-5px auto 0;padding:0 26px;min-height:210px;background:transparent;border:0;box-shadow:none}.hm-footer{margin-top:18px}.hm-touch-choices{margin-top:12px}}
@media(max-width:600px){.hm-heading{padding:0 24px 18px}.hm-heading h2{font-size:28px!important}.hm-heading p{font-size:15px}.hm-heading p br{display:none}.hm-description{padding:0 24px;min-height:230px}.hm-description h3{font-size:21px}.hm-description button{margin-top:13px}.hm-touch-choices{margin-top:5px}}

/* The preview appears only while exploring a service, never on initial load. */
.egapro-home-map .hm-description[hidden]{display:none!important}

/* Power-line inspection is drawn on the mountain, away from the heading. */
.hm-terrain>.service-powerline-art{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}

@media(min-width:1101px){.hm-description{width:280px;max-width:calc(100% - 32px);padding:22px;z-index:8;transform:none}.hm-description h3{font-size:23px}.hm-description p{font-size:15px}}

/* Reveal the new power-line detail while preserving the rest of the landscape fade. */
@media(min-width:1101px){.hm-art{mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent),linear-gradient(to bottom,transparent,#000 22%,#000 84%,transparent),radial-gradient(ellipse 20% 18% at 15% 7%,#000 60%,transparent 100%);mask-composite:intersect,add}}
@media(max-width:1100px){.hm-art{mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 80%,transparent),radial-gradient(ellipse 20% 18% at 15% 7%,#000 60%,transparent 100%);mask-composite:add}}

/* One visual story: the anti-drone station detects the cargo over the water. */
.map-detection{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none;z-index:1;overflow:visible}
.map-scan-field{animation:map-field 7s ease-in-out infinite;transform-origin:1105px 421px}
.map-scan-link{animation:map-link 7s linear infinite}
.map-scan-waves path{opacity:0;animation:map-wave 7s ease-in-out infinite}
.map-scan-waves path:nth-child(2){animation-delay:.5s}.map-scan-waves path:nth-child(3){animation-delay:1s}
.map-scan-target{opacity:0;transform-origin:758px 440px;animation:map-target 7s ease-in-out infinite}
.map-detection[data-motion-offscreen] *{animation-play-state:paused!important}
.egapro-editorial .ed-map-stage>.map-detection{transform:perspective(1300px) rotateX(var(--map-rx,0deg)) rotateY(var(--map-ry,0deg));transition:transform .5s ease-out;transform-origin:50% 55%}
@keyframes map-field{0%,75%,100%{opacity:0;transform:scaleX(.65)}25%,55%{opacity:.10;transform:scaleX(1)}}
@keyframes map-link{0%,10%,85%,100%{opacity:0;stroke-dashoffset:0}30%,65%{opacity:.7}80%{stroke-dashoffset:136}}
@keyframes map-wave{0%,15%,70%,100%{opacity:0}25%,40%{opacity:.8}}
@keyframes map-target{0%,30%,85%,100%{opacity:0;transform:scale(.9)}43%,70%{opacity:.9;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.map-detection *{animation:none!important}.map-scan-field{opacity:.06}.map-scan-link{opacity:.35}.map-scan-target{opacity:.5}.egapro-editorial .ed-map-stage>.map-detection{transform:none;transition:none}}

/* Local contrast over the landscape, without a panel around the heading. */
.hm-heading p{position:relative;isolation:isolate;max-width:540px;color:#28352e;font-weight:600;font-size:clamp(16px,1.18vw,18px);line-height:1.65;text-shadow:0 1px 1px #fff}
@media(min-width:1101px){.hm-heading p::before{content:"";position:absolute;z-index:-1;inset:-24px -35px;background:radial-gradient(ellipse at center,#fffffff5 28%,#ffffffd6 50%,#ffffff70 66%,transparent 76%);pointer-events:none}}
@media(max-width:600px){.hm-heading p{font-size:15px;font-weight:550}}
