/* MAP-R4: service-area target CSS extracted from samies-universal-maps-mg001-mg-final/index.html (original order) */
.samies-destination-target{

    position:
        relative;

    width:
        126px;

    height:
        126px;

    pointer-events:
        none;

    filter:
        drop-shadow(
            0 0 18px
            rgba(245,180,0,.85)
        );
}
.samies-destination-target{

    width: 154px;

    height: 154px;

    filter:
        drop-shadow(
            0 0 5px
            rgba(255,255,255,.9)
        )
        drop-shadow(
            0 0 14px
            rgba(245,180,0,1)
        )
        drop-shadow(
            0 0 34px
            rgba(245,180,0,.9)
        )
        drop-shadow(
            0 0 62px
            rgba(245,180,0,.65)
        );
}
.samies-destination-target{

    width: 132px;

    height: 132px;

    filter:
        drop-shadow(
            0 0 3px
            rgba(255,197,28,.85)
        )
        drop-shadow(
            0 0 8px
            rgba(245,180,0,.42)
        );
}
.samies-destination-target{

    width: 180px !important;

    height: 180px !important;

    pointer-events:
        none !important;

    filter:
        none !important;
}
.samies-target-svg{

    display: block;

    width: 180px;

    height: 180px;

    overflow: visible;
}
.samies-target-rings circle{

    fill:
        none;

    stroke:
        #efad00;

    stroke-width:
        1.55;

    vector-effect:
        non-scaling-stroke;

    filter:
        url(#samiesGoldGlow);

    opacity:
        .98;
}
.samies-target-spokes line{

    stroke:
        #efad00;

    stroke-width:
        1.35;

    vector-effect:
        non-scaling-stroke;

    filter:
        url(#samiesGoldGlow);

    opacity:
        .92;
}
.samies-target-core-halo{

    fill:
        rgba(246,174,0,.52);

    filter:
        url(#samiesCoreGlow);
}
.samies-target-core-gold{

    fill:
        #ffb900;

    filter:
        url(#samiesCoreGlow);
}
.samies-target-core-white{

    fill:
        #ffffff;

    filter:
        url(#samiesCoreGlow);
}
.samies-destination-target{

    position:
        relative !important;

    width:
        140px !important;

    height:
        140px !important;

    pointer-events:
        none !important;

    filter:
        none !important;
}
.samies-target-svg{

    display:
        block;

    width:
        140px !important;

    height:
        140px !important;

    overflow:
        visible;
}
.samies-target-rings circle{

    fill:
        none !important;

    stroke:
        #e9a900 !important;

    stroke-width:
        1.25 !important;

    vector-effect:
        non-scaling-stroke;

    opacity:
        .96 !important;

    filter:
        url(#samiesGoldGlow);
}
.samies-target-spokes line{

    stroke:
        #e9a900 !important;

    stroke-width:
        1.05 !important;

    vector-effect:
        non-scaling-stroke;

    opacity:
        .78 !important;

    filter:
        url(#samiesGoldGlow);
}
.samies-target-core-halo{

    fill:
        rgba(245,174,0,.42) !important;

    filter:
        url(#samiesCoreGlow);
}
.samies-target-core-gold{

    fill:
        #ffb900 !important;

    filter:
        url(#samiesCoreGlow);
}
.samies-target-core-white{

    fill:
        #ffffff !important;

    filter:
        url(#samiesCoreGlow);
}
.samies-target-city-name{

    position:
        absolute;

    left:
        50%;

    top:
        13px;

    z-index:
        20;

    width:
        max-content;

    max-width:
        430px;

    transform:
        translate(
            -50%,
            -100%
        );

    color:
        #ffffff;

    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Arial,
        sans-serif;

    font-size:
        38px;

    font-weight:
        800;

    line-height:
        1;

    letter-spacing:
        -.025em;

    white-space:
        nowrap;

    -webkit-text-stroke:
        1.8px #101010;

    paint-order:
        stroke fill;

    text-shadow:
        0 2px 2px
        rgba(0,0,0,1),

        0 0 2px
        rgba(255,255,255,.72),

        0 0 4px
        rgba(0,0,0,.85);
}
@media (max-width: 800px){
.samies-target-city-name{

        font-size:
            30px;
    }
}
.samies-target-city-name{

    opacity:
        1;

    visibility:
        visible;

    transition:
        opacity .85s ease,
        transform .85s ease;

    transform:
        translate(-50%,-100%)
        translateY(0);
}
.map-stage:has(.transition.active)
.samies-target-city-name{

    opacity:
        0 !important;

    visibility:
        hidden;

    transform:
        translate(-50%,-100%)
        translateY(8px);
}
.samies-target-local-mesh{

    position:
        absolute;

    left:
        50%;

    top:
        50%;

    z-index:
        -1;

    width:
        300px;

    height:
        300px;

    transform:
        translate(-50%,-50%);

    pointer-events:
        none;

    background-image:

        repeating-linear-gradient(
            0deg,

            rgba(237,169,0,.34) 0px,
            rgba(237,169,0,.34) 1px,

            transparent 1px,
            transparent 10px
        ),

        repeating-linear-gradient(
            90deg,

            rgba(237,169,0,.34) 0px,
            rgba(237,169,0,.34) 1px,

            transparent 1px,
            transparent 10px
        ),

        repeating-linear-gradient(
            0deg,

            rgba(255,190,18,.40) 0px,
            rgba(255,190,18,.40) 1px,

            transparent 1px,
            transparent 40px
        ),

        repeating-linear-gradient(
            90deg,

            rgba(255,190,18,.40) 0px,
            rgba(255,190,18,.40) 1px,

            transparent 1px,
            transparent 40px
        );

    

    -webkit-mask-image:
        radial-gradient(
            circle at center,

            rgba(0,0,0,1) 0%,
            rgba(0,0,0,.96) 26%,
            rgba(0,0,0,.80) 43%,
            rgba(0,0,0,.52) 58%,
            rgba(0,0,0,.25) 72%,
            rgba(0,0,0,.08) 84%,
            transparent 100%
        );

    mask-image:
        radial-gradient(
            circle at center,

            rgba(0,0,0,1) 0%,
            rgba(0,0,0,.96) 26%,
            rgba(0,0,0,.80) 43%,
            rgba(0,0,0,.52) 58%,
            rgba(0,0,0,.25) 72%,
            rgba(0,0,0,.08) 84%,
            transparent 100%
        );

    opacity:
        .80;

    filter:
        drop-shadow(
            0 0 5px
            rgba(231,165,0,.24)
        );
}
.samies-target-svg{

    position:
        relative;

    z-index:
        3;
}
.samies-target-city-name{

    z-index:
        5 !important;
}
@media (
    max-width: 800px
){
.samies-target-local-mesh{

        width:
            250px;

        height:
            250px;
    }
}
/* MAP-R4: contact-map integration */
.samies-map-r4-target{pointer-events:none;z-index:4;}
/* MAP-R5: office pin (shown 23.5x33, crisp 2x source) */
.samies-map-r5-office-pin{display:block;width:23.5px;height:33px;line-height:0;z-index:6;filter:drop-shadow(0 2px 3px rgba(0,0,0,.55));}
.samies-map-r5-office-pin img{display:block;width:23.5px;height:33px;}
/* MAP-R5c: contact-page city items — hover/focus dark green instead of theme red */
:root { --samies-map-city-hover-bg: #1b5e20; }
html body .mg-r2-county-card button.mg-r2-index-city:hover,
html body .mg-r2-county-card button.mg-r2-index-city:focus,
html body .mg-r2-county-card button.mg-r2-index-city:focus-visible,
html body .mg-r2-county-card button.mg-r2-index-city:active,
html body #mg-r2-city-list button.mg-r2-city-button:hover,
html body #mg-r2-city-list button.mg-r2-city-button:focus,
html body #mg-r2-city-list button.mg-r2-city-button:focus-visible,
html body #mg-r2-city-list button.mg-r2-city-button:active {
  background: var(--samies-map-city-hover-bg) !important;
  background-color: var(--samies-map-city-hover-bg) !important;
  border-color: var(--samies-map-city-hover-bg) !important;
}
/* MAP-R6: geo-project.css copied from the map app (project pin + card styles) */
.samies-geo-project-pin {
  position: relative;
  width: 56px;
  height: 56px;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  overflow: visible;
  z-index: 8;
}

.samies-geo-project-pin-halo {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 50px;
  height: 50px;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(255, 191, 0, 0.95);
  border-radius: 50%;
  background:
    radial-gradient(
      circle,
      rgba(255,191,0,.20) 0%,
      rgba(255,191,0,.08) 45%,
      rgba(255,191,0,0) 72%
    );
  box-shadow:
    0 0 8px rgba(255,191,0,.85),
    0 0 20px rgba(255,191,0,.42);
  animation:
    samies-project-pulse
    2.8s
    ease-in-out
    infinite;
}

.samies-geo-project-pin-core {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 36px;
  height: 36px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  border: 2px solid #ffbf00;
  background: rgba(3,15,27,.97);
  box-shadow:
    0 3px 9px rgba(0,0,0,.7),
    inset 0 0 8px rgba(255,191,0,.16);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition:
    transform .18s ease;
}

.samies-geo-project-pin-core img {
  width: 29px;
  height: 29px;
  object-fit: contain;
  display: block;
}

.samies-geo-project-pin:hover
.samies-geo-project-pin-core {
  transform:
    translate(-50%, -50%)
    scale(1.16);
}

.samies-geo-project-pin-demo::after {
  content: "DEMO";
  position: absolute;
  left: 50%;
  top: 47px;
  transform: translateX(-50%);
  padding: 2px 5px;
  border: 1px solid rgba(255,191,0,.72);
  border-radius: 4px;
  background: rgba(2,11,20,.96);
  color: #ffbf00;
  font:
    800 8px/1.2
    Arial,
    sans-serif;
  letter-spacing: .8px;
  white-space: nowrap;
}

@keyframes samies-project-pulse {
  0%,
  100% {
    opacity: .66;
    transform:
      translate(-50%, -50%)
      scale(.92);
  }

  50% {
    opacity: 1;
    transform:
      translate(-50%, -50%)
      scale(1.11);
  }
}

.maplibregl-popup-content {
  border-radius: 10px;
}

.samies-geo-project-card {
  width: 300px;
  box-sizing: border-box;
  padding: 20px;
  margin: -10px;
  border: 1px solid rgba(255,191,0,.55);
  border-radius: 10px;
  color: #f7fafc;
  background:
    linear-gradient(
      145deg,
      #071c2f,
      #020d18
    );
  box-shadow:
    0 14px 40px rgba(0,0,0,.58),
    0 0 18px rgba(255,191,0,.12);
}

.samies-project-demo-badge {
  display: inline-block;
  margin-bottom: 11px;
  padding: 4px 7px;
  border-radius: 4px;
  background: #ffbf00;
  color: #06111d;
  font:
    800 9px/1
    Arial,
    sans-serif;
  letter-spacing: 1px;
}

.samies-project-card-eyebrow {
  margin-bottom: 7px;
  color: #ffbf00;
  font:
    800 11px/1.2
    Arial,
    sans-serif;
  letter-spacing: 1.1px;
}

.samies-project-card-title {
  margin-bottom: 8px;
  color: #fff;
  font:
    800 20px/1.15
    Arial,
    sans-serif;
}

.samies-project-card-service {
  margin-bottom: 4px;
  color: #dce9f4;
  font:
    700 14px/1.35
    Arial,
    sans-serif;
}

.samies-project-card-location {
  margin-bottom: 13px;
  color: #9db3c5;
  font:
    600 12px/1.35
    Arial,
    sans-serif;
}

.samies-project-card-description {
  color: #c9d8e4;
  font:
    400 13px/1.5
    Arial,
    sans-serif;
}

.samies-project-cta {
  display: inline-block;
  margin-top: 15px;
  color: #ffbf00;
  text-decoration: none;
  font:
    800 11px/1.2
    Arial,
    sans-serif;
}

@media (prefers-reduced-motion: reduce) {
  .samies-geo-project-pin-halo {
    animation: none;
  }
}

.samies-project-proof-badge {
  display: inline-block;
  margin-bottom: 11px;
  padding: 4px 7px;
  border-radius: 4px;
  background: #ffbf00;
  color: #06111d;
  font: 800 9px/1 Arial, sans-serif;
  letter-spacing: 1px;
}

.samies-project-card-address {
  margin: -7px 0 13px;
  color: #f3c84b;
  font: 600 11px/1.4 Arial, sans-serif;
}

.samies-bip-business-proof-pin
.samies-geo-project-pin-core {
  width: 42px;
  height: 42px;
}

.samies-bip-business-proof-pin
.samies-geo-project-pin-core img {
  width: 35px;
  height: 35px;
}
/* CONTACT-R1: contact-card links (phone, email, location) bright blue on hover + keyboard focus. */
:root { --samies-contact-link-hover: #1e90ff; }
html body .mg-contact-overlay a:hover,
html body .mg-contact-overlay a:focus-visible,
html body .mg-contact-overlay a.mg-office-location-link:hover,
html body .mg-contact-overlay a.mg-office-location-link:focus-visible {
  color: var(--samies-contact-link-hover) !important;
  -webkit-text-fill-color: var(--samies-contact-link-hover) !important;
  text-decoration-color: var(--samies-contact-link-hover) !important;
}
html body .mg-contact-overlay a:hover *,
html body .mg-contact-overlay a:focus-visible * {
  color: var(--samies-contact-link-hover) !important;
  -webkit-text-fill-color: var(--samies-contact-link-hover) !important;
}
/* CONTACT-R2: brighter blue + 50% black rounded background behind each hovered contact link (no layout shift). */
:root { --samies-contact-link-hover: #38b6ff; --samies-contact-link-hover-bg: rgba(0, 0, 0, 0.5); }
html body .mg-contact-overlay a {
  padding: 2px 8px !important; margin: -2px -8px !important; border-radius: 6px !important;
  transition: background-color .15s ease, color .15s ease;
}
html body .mg-contact-overlay a:hover,
html body .mg-contact-overlay a:focus-visible {
  background: var(--samies-contact-link-hover-bg) !important;
  background-color: var(--samies-contact-link-hover-bg) !important;
}
