/* WebPro360 Greenville landing page: hero map + rotating Google reviews (2026-10-12).
   Replaces the hero film. Two map renders share one figure: the wide Upstate map and a
   tighter phone map. The <picture> source and the overlay set switch on the SAME media
   query, so the % pin positions always match the image on screen. Keep them in sync:
   (max-width:600px), (min-width:801px) and (max-width:1199px) = phone map. */
.wp360-landing .wp360-lp-geo { margin-top:34px;border:1px solid #2a3a3f;border-radius:14px;overflow:hidden;background:#0b1518;container-type:inline-size }
.wp360-landing .wp360-lp-geo-cap { display:flex;justify-content:space-between;align-items:center;gap:6px 16px;flex-wrap:wrap;padding:13px 18px;border-bottom:1px solid #1d2c31;font-size:1rem;line-height:1.4 }
.wp360-landing .wp360-lp-geo-key { display:flex;align-items:center;gap:8px;font-size:.875rem;color:#acbec1 }

/* ---------- map ---------- */
.wp360-landing .wp360-lp-geo-map { position:relative;overflow:hidden;background:#0b1518 }
.wp360-landing .wp360-lp-geo-map img { display:block;width:100%;height:auto;max-width:none }
.wp360-landing .wp360-lp-geo-set { position:absolute;inset:0 }
.wp360-landing .wp360-lp-geo-set[data-set="phone"] { display:none }
.wp360-landing .wp360-lp-geo-ml { position:absolute;z-index:3;transform:translate(0,-50%);white-space:nowrap;font-size:13px;line-height:1;color:#b7c9cc;text-shadow:0 0 3px #070d10,0 0 6px #070d10,0 0 10px #070d10;pointer-events:none }
.wp360-landing .wp360-lp-geo-ml.is-end { transform:translate(-100%,-50%) }
.wp360-landing .wp360-lp-geo-ml.is-big { font-size:19px;font-weight:700;color:#f2f5f4 }
.wp360-landing .wp360-lp-geo-ml.is-water { font-style:italic;color:#6fc3cc }
.wp360-landing .wp360-lp-geo-ml.is-mtn { font-style:italic;color:#8fa6aa;font-size:12.5px }
.wp360-landing .wp360-lp-geo-td { position:absolute;z-index:2;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#b7c9cc;box-shadow:0 0 0 2px rgba(7,13,16,.8) }
.wp360-landing .wp360-lp-geo-office { position:absolute;z-index:6;width:0;height:0 }
.wp360-landing .wp360-lp-geo-office i { position:absolute;left:-8px;top:-8px;width:16px;height:16px;background:#f2f5f4;transform:rotate(45deg);border:2px solid #070d10 }
.wp360-landing .wp360-lp-geo-office:before { content:"";position:absolute;left:-22px;top:-22px;width:44px;height:44px;border-radius:50%;border:1.5px solid #5ce6df;opacity:0;animation:wp360-geo-ring 1.8s 1.1s ease-out 2 }
.wp360-landing .wp360-lp-geo-office>span { position:absolute;left:10px;top:8px;white-space:nowrap;font-size:14px;font-weight:700;line-height:1.15;color:#f2f5f4;text-shadow:0 0 3px #070d10,0 0 8px #070d10 }
.wp360-landing .wp360-lp-geo-office small { display:block;font-size:12px;font-weight:400;color:#9fb4b8;margin-top:2px }
.wp360-landing .wp360-lp-geo-credit { position:absolute;z-index:4;left:10px;bottom:6px;font-size:11px;line-height:1.3;color:#6f8589;text-shadow:0 0 3px #070d10 }

/* pins: 44px tap target, 28px dot */
.wp360-landing .wp360-lp-geo-pin { position:absolute;z-index:7;width:44px;height:44px;margin:-22px 0 0 -22px;padding:0;border:0;background:transparent;cursor:pointer;animation:wp360-geo-drop .55s var(--d,.5s) cubic-bezier(.2,.8,.2,1.2) both }
.wp360-landing .wp360-lp-geo-pin:focus-visible { outline:2px solid #5ce6df;outline-offset:0;border-radius:50% }
.wp360-landing .wp360-lp-geo-dot { position:absolute;left:8px;top:8px;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:700 14px/1 Arial,Helvetica,sans-serif;background:#5ce6df;color:#07191a;border:2px solid #f2f5f4;box-shadow:0 4px 12px rgba(0,0,0,.5);transition:transform .35s cubic-bezier(.2,.8,.2,1.3) }
.wp360-landing .wp360-lp-geo-pin.is-edge .wp360-lp-geo-dot:after { content:"";position:absolute;left:50%;bottom:-11px;margin-left:-5px;border:5px solid transparent;border-top-color:#5ce6df }
.wp360-landing .wp360-lp-geo-pin.is-hl .wp360-lp-geo-dot { transform:scale(1.2);outline:2px solid #5ce6df;outline-offset:3px }
.wp360-landing .wp360-lp-geo-tip { position:absolute;z-index:9;left:50%;bottom:44px;width:200px;margin-left:-100px;border-radius:10px;overflow:hidden;background:#0d1a1f;border:1px solid #36555a;box-shadow:0 18px 40px rgba(0,0,0,.55);text-align:left;opacity:0;visibility:hidden;transform:translateY(6px);pointer-events:none;transition:opacity .2s,transform .2s,visibility 0s .2s }
.wp360-landing .wp360-lp-geo-tip img { display:block;width:100%;height:110px;object-fit:cover;object-position:top;background:#13252a }
.wp360-landing .wp360-lp-geo-tip>span { display:block;padding:8px 11px 10px;font-size:13px;line-height:1.35;color:#acbec1 }
.wp360-landing .wp360-lp-geo-tip b { display:block;font-size:15px;color:#f2f5f4 }
.wp360-landing .wp360-lp-geo-pin.is-below .wp360-lp-geo-tip { bottom:auto;top:44px }
.wp360-landing .wp360-lp-geo-pin.is-tl .wp360-lp-geo-tip { left:auto;right:-6px;margin-left:0 }
.wp360-landing .wp360-lp-geo-pin.is-open,.wp360-landing .wp360-lp-geo-pin:focus-visible { z-index:12 }
.wp360-landing .wp360-lp-geo-pin.is-open .wp360-lp-geo-tip,.wp360-landing .wp360-lp-geo-pin:focus-visible .wp360-lp-geo-tip { opacity:1;visibility:visible;transform:none;transition:opacity .2s,transform .2s }
@media (hover:hover) and (pointer:fine) {
  .wp360-landing .wp360-lp-geo-pin:hover { z-index:12 }
  .wp360-landing .wp360-lp-geo-pin:hover .wp360-lp-geo-tip { opacity:1;visibility:visible;transform:none;transition:opacity .2s,transform .2s }
}
@container (max-width:640px) {
  .wp360-landing .wp360-lp-geo-ml.is-minor,.wp360-landing .wp360-lp-geo-td.is-minor { display:none }
}
@keyframes wp360-geo-drop { from { opacity:0;transform:translateY(-12px) } to { opacity:1;transform:none } }
@keyframes wp360-geo-ring { 0% { transform:scale(.3);opacity:.9 } 100% { transform:scale(1.6);opacity:0 } }

/* the tighter phone map (same query as the <picture> source in index.php) */
@media (max-width:600px), (min-width:801px) and (max-width:1199px) {
  .wp360-landing .wp360-lp-geo-set[data-set="card"] { display:none }
  .wp360-landing .wp360-lp-geo-set[data-set="phone"] { display:block }
  .wp360-landing .wp360-lp-geo-key { display:none }
  .wp360-landing .wp360-lp-geo-cap { padding:11px 14px;font-size:.9375rem }
  .wp360-landing [data-set="phone"] .wp360-lp-geo-ml { font-size:12.5px }
  .wp360-landing [data-set="phone"] .wp360-lp-geo-ml.is-big { font-size:16px }
  .wp360-landing [data-set="phone"] .wp360-lp-geo-ml.is-end.is-gl { transform:translate(calc(-100% - 12px),-50%) }
  .wp360-landing [data-set="phone"] .wp360-lp-geo-office>span { left:11px;top:9px;font-size:13px }
  .wp360-landing [data-set="phone"] .wp360-lp-geo-credit { left:8px;bottom:5px;font-size:10px }
  .wp360-landing .wp360-lp-geo-tip { width:170px;margin-left:-85px }
  .wp360-landing .wp360-lp-geo-tip img { height:92px }
}

/* ---------- Google reviews ---------- */
.wp360-landing .wp360-lp-rv { display:grid;grid-template-columns:190px minmax(0,1fr);gap:4px 24px;padding:22px 22px 20px;border-top:1px solid #1d2c31;background:#0d181c }
.wp360-landing .wp360-lp-rv-left { display:flex;flex-direction:column;gap:6px }
.wp360-landing .wp360-lp-rv-top { display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px }
.wp360-landing .wp360-lp-rv-stars { display:flex;gap:3px }
.wp360-landing .wp360-lp-rv-stars svg { animation:wp360-geo-star .4s cubic-bezier(.2,.8,.2,1.4) both }
.wp360-landing .wp360-lp-rv-stars svg:nth-child(1) { animation-delay:1s }
.wp360-landing .wp360-lp-rv-stars svg:nth-child(2) { animation-delay:1.12s }
.wp360-landing .wp360-lp-rv-stars svg:nth-child(3) { animation-delay:1.24s }
.wp360-landing .wp360-lp-rv-stars svg:nth-child(4) { animation-delay:1.36s }
.wp360-landing .wp360-lp-rv-stars svg:nth-child(5) { animation-delay:1.48s }
@keyframes wp360-geo-star { from { opacity:.18;transform:scale(.7) } to { opacity:1;transform:none } }
.wp360-landing .wp360-lp-rv-top b { font-size:26px;font-weight:700;letter-spacing:-.03em;color:#f2f5f4;line-height:1 }
.wp360-landing .wp360-lp-rv-count { font-size:.9375rem;color:#c3d3d5 }
.wp360-landing .wp360-lp-rv-count b { color:#f2f5f4 }
.wp360-landing .wp360-lp-rv-sub { font-size:.875rem;color:#8fa6aa }
.wp360-landing .wp360-lp-rv-slides { display:grid }
.wp360-landing .wp360-lp-rv-slide { grid-area:1/1;margin:0;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .3s,transform .3s,visibility 0s .3s }
.wp360-landing .wp360-lp-rv-slide.is-on { opacity:1;visibility:visible;transform:none;transition:opacity .3s .05s,transform .3s .05s }
.wp360-landing .wp360-lp-rv-slide blockquote { margin:0 }
.wp360-landing .wp360-lp-rv-slide blockquote p { font-size:1.1875rem;line-height:1.45;letter-spacing:-.01em;color:#e7efee }
.wp360-landing .wp360-lp-rv-slide blockquote p:before { content:"\201C";color:#5ce6df;font-size:30px;line-height:0;vertical-align:-.32em;margin-right:4px }
.wp360-landing .wp360-lp-rv-slide figcaption { margin-top:10px;font-size:.875rem;line-height:1.5;color:#9fb4b8 }
.wp360-landing .wp360-lp-rv-slide figcaption b { color:#e7efee;font-weight:600 }
.wp360-landing .wp360-lp-rv-pin { display:inline-block;margin-left:4px;padding:1px 8px;border-radius:20px;border:1px solid #36555a;color:#5ce6df;font-size:.8125rem;white-space:nowrap }
.wp360-landing .wp360-lp-rv-ctrl { display:flex;align-items:center;gap:4px;margin-top:10px }
.wp360-landing .wp360-lp-rv-ctrl[hidden] { display:none }
.wp360-landing .wp360-lp-rv-pp { width:32px;height:32px;flex:0 0 auto;border-radius:50%;border:1px solid #36555a;background:transparent;color:#c3d3d5;display:flex;align-items:center;justify-content:center;cursor:pointer;margin-right:4px;padding:0 }
.wp360-landing .wp360-lp-rv-dots { display:flex }
.wp360-landing .wp360-lp-rv-dots button { width:24px;height:32px;border:0;background:transparent;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center }
.wp360-landing .wp360-lp-rv-dots i { display:block;width:7px;height:7px;border-radius:50%;background:#36555a;transition:background .3s,transform .3s }
.wp360-landing .wp360-lp-rv-dots button[aria-current="true"] i { background:#5ce6df;transform:scale(1.3) }
.wp360-landing .wp360-lp-rv-src { margin-left:auto;font-size:.8125rem;color:#6f8589 }
.wp360-landing .wp360-lp-rv-topics { grid-column:1/-1;margin-top:16px;padding-top:14px;border-top:1px solid #1f3237 }
.wp360-landing .wp360-lp-rv-topics p { font-size:.875rem;color:#8fa6aa }
.wp360-landing .wp360-lp-rv-topics ul { list-style:none;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:6px }
.wp360-landing .wp360-lp-rv-topics li { font-size:.875rem;line-height:1.4;padding:5px 11px;border-radius:30px;border:1px solid #36555a;color:#d5e1e2 }
@container (max-width:560px) {
  .wp360-landing .wp360-lp-rv { grid-template-columns:minmax(0,1fr);padding:18px 16px }
  .wp360-landing .wp360-lp-rv-slide blockquote p { font-size:1.0625rem }
  .wp360-landing .wp360-lp-rv-src { display:none }
}

/* single column (tablet and phone) */
@media (max-width:800px) {
  .wp360-landing .wp360-lp-geo { max-width:680px;margin:28px auto 0 }
}
@media (max-width:480px) {
  .wp360-landing .wp360-lp-geo { margin-top:24px }
}

/* ---------- "Since 2002" under the form (2026-10-12) ----------
   Fills the right column beside the map and reviews. The outline draws itself when it
   scrolls into view, a light glints along it every few seconds, and on desktop the
   numerals light up wherever the cursor is. Two-column layouts only. */
.wp360-landing .wp360-lp-hero-side { display:flex;flex-direction:column;min-width:0;align-self:stretch }
.wp360-landing .wp360-lp-since { flex:1;display:flex;align-items:center;justify-content:center;padding:48px 4px 8px }
.wp360-landing .wp360-lp-since svg { display:block;width:100%;max-width:520px;height:auto;overflow:visible }
.wp360-landing .wp360-lp-since-sr { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap }
.wp360-landing .wp360-lp-since text { font-family:Arial,Helvetica,sans-serif;font-weight:700 }
.wp360-landing .wp360-lp-since-word { font-size:28px;fill:#9ddbd4;letter-spacing:.01em }
.wp360-landing .wp360-lp-since-line,.wp360-landing .wp360-lp-since-sweep,.wp360-landing .wp360-lp-since-fill { font-size:216px }
.wp360-landing .wp360-lp-since-line { fill:none;stroke:#2e565c;stroke-width:2;stroke-linejoin:round;stroke-dasharray:760;stroke-dashoffset:0 }
.wp360-landing .wp360-lp-since-sweep { fill:none;stroke:url(#wp360SinceSweep);stroke-width:2.6;stroke-linejoin:round;opacity:0;transition:opacity .8s }
.wp360-landing .wp360-lp-since-fill { fill:url(#wp360SinceGlow);stroke:none;opacity:0;transition:opacity .45s }
.wp360-landing .wp360-lp-since.is-armed .wp360-lp-since-line { stroke-dashoffset:760 }
.wp360-landing .wp360-lp-since.is-armed .wp360-lp-since-word { opacity:0 }
.wp360-landing .wp360-lp-since.is-on .wp360-lp-since-line { stroke-dashoffset:0;transition:stroke-dashoffset 2.6s cubic-bezier(.45,0,.2,1),stroke 1.2s }
.wp360-landing .wp360-lp-since.is-on .wp360-lp-since-word { opacity:1;transition:opacity .9s .5s }
.wp360-landing .wp360-lp-since.is-lit .wp360-lp-since-line { stroke:#3b6e74 }
.wp360-landing .wp360-lp-since.is-lit .wp360-lp-since-sweep { opacity:1 }
.wp360-landing .wp360-lp-since.is-glow .wp360-lp-since-fill { opacity:1 }
@media (max-width:800px) {
  .wp360-landing .wp360-lp-since { display:none }
}
