{"id":132,"date":"2026-08-24T05:52:49","date_gmt":"2026-08-24T05:52:49","guid":{"rendered":"https:\/\/staging3.gmportal.net\/?page_id=132"},"modified":"2026-08-25T02:24:44","modified_gmt":"2026-08-25T07:24:44","slug":"hot-tub-spa-electrical","status":"publish","type":"page","link":"https:\/\/electricalexpert520.com\/index.php\/hot-tub-spa-electrical\/","title":{"rendered":"Hot Tub &#038; Spa Electrical"},"content":{"rendered":"\n<section data-consonant-block-name=\"core\/html\" data-consonant-block-path=\"0\" data-consonant-block=\"post-132-core-html-0\" data-consonant-page=\"132\" data-consonant-source=\"post-content\" class=\"ee-spa-hero\" aria-labelledby=\"ee-spa-hero-title\">\n  <div class=\"ee-spa-hero__grid\" aria-hidden=\"true\"><\/div>\n\n  <div class=\"ee-spa-hero__shell\">\n    <div class=\"ee-spa-hero__copy\">\n      <div class=\"ee-spa-hero__areas\">\n        <span>Tucson<\/span>\n        <span>Marana<\/span>\n        <span>Oro Valley<\/span>\n        <span>SaddleBrooke<\/span>\n      <\/div>\n\n      <span class=\"ee-spa-hero__eyebrow\">\n        HOT TUB \/ SPA \/ JACUZZI ELECTRICAL\n      <\/span>\n\n      <h1 id=\"ee-spa-hero-title\">\n        Hot Tub &amp; Spa Electrical\n        <span>Planned Before the Water Goes In.<\/span>\n      <\/h1>\n\n      <p class=\"ee-spa-hero__lead\">\n        Hot tubs, spas, and Jacuzzi-style equipment add a substantial\n        electrical load to a property and require dedicated electrical planning.\n      <\/p>\n\n      <div class=\"ee-spa-hero__actions\">\n        <a class=\"ee-spa-hero__primary\" href=\"\/contact\/\">\n          Request Spa Electrical Service\n          <span aria-hidden=\"true\">\u2197<\/span>\n        <\/a>\n\n        <a class=\"ee-spa-hero__phone\" href=\"tel:+15204058755\">\n          (520) 405-8755\n        <\/a>\n      <\/div>\n    <\/div>\n\n    <div class=\"ee-spa-hero__visual\">\n      <div class=\"ee-spa-hero__image-frame\">\n        <svg width=\"100%\" height=\"100%\" viewBox=\"0 0 900 700\" preserveAspectRatio=\"xMidYMid slice\" role=\"img\" aria-label=\"Technical visualization of a dedicated electrical route for spa equipment\">\n          <defs>\n            <linearGradient id=\"eeSpaHeroField\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\">\n              <stop offset=\"0\" stop-color=\"#071426\"><\/stop>\n              <stop offset=\"1\" stop-color=\"#020817\"><\/stop>\n            <\/linearGradient>\n            <radialGradient id=\"eeSpaHeroGlow\" cx=\"72%\" cy=\"35%\" r=\"55%\">\n              <stop offset=\"0\" stop-color=\"#1494ff\" stop-opacity=\".34\"><\/stop>\n              <stop offset=\"1\" stop-color=\"#1494ff\" stop-opacity=\"0\"><\/stop>\n            <\/radialGradient>\n          <\/defs>\n          <rect width=\"900\" height=\"700\" fill=\"url(#eeSpaHeroField)\"><\/rect>\n          <rect width=\"900\" height=\"700\" fill=\"url(#eeSpaHeroGlow)\"><\/rect>\n          <g fill=\"none\" stroke=\"#1494ff\" stroke-opacity=\".24\" stroke-width=\"2\">\n            <path d=\"M-60 555 C130 525 145 382 322 397 S535 540 664 299 S815 150 980 113\"><\/path>\n            <path d=\"M-90 605 C154 570 165 420 348 438 S558 577 700 332 S840 192 1010 144\"><\/path>\n          <\/g>\n          <g fill=\"none\" stroke=\"#57def4\" stroke-width=\"3\">\n            <path d=\"M36 540 C210 515 212 365 374 385 S554 494 680 273 S820 150 875 128\"><\/path>\n          <\/g>\n          <g fill=\"#f9b000\">\n            <circle cx=\"36\" cy=\"540\" r=\"8\"><\/circle>\n            <circle cx=\"374\" cy=\"385\" r=\"8\"><\/circle>\n            <circle cx=\"680\" cy=\"273\" r=\"8\"><\/circle>\n            <circle cx=\"875\" cy=\"128\" r=\"8\"><\/circle>\n          <\/g>\n          <g fill=\"none\" stroke=\"#ffffff\" stroke-opacity=\".09\" stroke-width=\"1\">\n            <path d=\"M0 110 H900\"><\/path><path d=\"M0 220 H900\"><\/path><path d=\"M0 330 H900\"><\/path><path d=\"M0 440 H900\"><\/path><path d=\"M0 550 H900\"><\/path>\n            <path d=\"M120 0 V700\"><\/path><path d=\"M240 0 V700\"><\/path><path d=\"M360 0 V700\"><\/path><path d=\"M480 0 V700\"><\/path><path d=\"M600 0 V700\"><\/path><path d=\"M720 0 V700\"><\/path><path d=\"M840 0 V700\"><\/path>\n          <\/g>\n          <g fill=\"none\" stroke=\"#f9b000\" stroke-opacity=\".45\" stroke-width=\"2\">\n            <path d=\"M605 108 h158 l38 38 v104\"><\/path>\n            <path d=\"M132 478 h116 v90 h-116 z\"><\/path>\n          <\/g>\n        <\/svg>\n\n        <div class=\"ee-spa-hero__image-label\">\n          <span>PLANNED LOAD \/ 01<\/span>\n          <strong>Outdoor equipment starts with the electrical system.<\/strong>\n        <\/div>\n      <\/div>\n\n      <div class=\"ee-spa-hero__technical\" aria-hidden=\"true\">\n        <span class=\"ee-spa-hero__technical-label\">POWER PATH<\/span>\n\n        <svg viewBox=\"0 0 420 220\" preserveAspectRatio=\"none\">\n          <path\n            class=\"ee-spa-hero__trace\"\n            d=\"M10 184 C72 172 96 116 158 120 S250 170 302 86 S364 44 410 28\"\n          ><\/path>\n          <circle cx=\"10\" cy=\"184\" r=\"4\"><\/circle>\n          <circle cx=\"158\" cy=\"120\" r=\"4\"><\/circle>\n          <circle cx=\"302\" cy=\"86\" r=\"4\"><\/circle>\n          <circle cx=\"410\" cy=\"28\" r=\"4\"><\/circle>\n        <\/svg>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"ee-spa-hero__statement\">\n    <span>LOCAL ELECTRICAL SERVICE \u2022 FAMILY-OWNED SINCE 2004<\/span>\n    <p>\n      Electrical Expert LLC provides the electrical work needed to support hot\n      tub and spa equipment for homeowners in Tucson, Marana, Oro Valley, and\n      SaddleBrooke.\n    <\/p>\n  <\/div>\n\n  <div class=\"ee-spa-hero__handoff\" aria-hidden=\"true\">\n    <svg viewBox=\"0 0 100 100\" preserveAspectRatio=\"none\">\n      <path class=\"ee-spa-divider__field\" d=\"M0 74 L55 54 L100 26 L100 100 L0 100 Z\"><\/path>\n      <path class=\"ee-spa-divider__cyan\" d=\"M0 24 L0 35 L56 49 Z\"><\/path>\n      <path class=\"ee-spa-divider__blue\" d=\"M0 38 L0 68 L74 52 Z\"><\/path>\n      <path class=\"ee-spa-divider__yellow\" d=\"M0 67 L0 80 L43 65 Z\"><\/path>\n    <\/svg>\n  <\/div>\n<\/section>\n\n<style data-wp-block-html=\"css\">\n.ee-spa-hero,\n.ee-spa-hero * {\n  box-sizing: border-box;\n}\n\n.ee-spa-hero {\n  position: relative;\n  isolation: isolate;\n  min-height: clamp(720px, 88svh, 940px);\n  overflow: hidden;\n  padding: clamp(74px, 8vw, 118px) 20px 150px;\n  background:\n    radial-gradient(circle at 72% 34%, rgba(20, 148, 255, .16), transparent 32rem),\n    #020817;\n  color: #fff;\n  font-family: Arial, Helvetica, sans-serif;\n}\n\n.ee-spa-hero__grid {\n  position: absolute;\n  inset: 0;\n  z-index: -2;\n  opacity: .18;\n  background-image:\n    linear-gradient(rgba(20, 148, 255, .14) 1px, transparent 1px),\n    linear-gradient(90deg, rgba(20, 148, 255, .10) 1px, transparent 1px);\n  background-size: 68px 68px;\n  mask-image: linear-gradient(90deg, #000, transparent 46%, transparent 68%, #000);\n}\n\n.ee-spa-hero__shell {\n  position: relative;\n  z-index: 2;\n  display: grid;\n  grid-template-columns: minmax(0, .82fr) minmax(480px, 1.18fr);\n  gap: clamp(42px, 6vw, 94px);\n  align-items: center;\n  width: min(1320px, 100%);\n  margin: 0 auto;\n}\n\n.ee-spa-hero__copy {\n  position: relative;\n  z-index: 3;\n}\n\n.ee-spa-hero__areas {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 7px 13px;\n  margin-bottom: 24px;\n  color: #f9b000;\n  font-size: 9px;\n  font-weight: 900;\n  letter-spacing: .15em;\n  text-transform: uppercase;\n}\n\n.ee-spa-hero__areas span {\n  display: flex;\n  align-items: center;\n}\n\n.ee-spa-hero__areas span:not(:last-child)::after {\n  content: \"\";\n  width: 4px;\n  height: 4px;\n  margin-left: 13px;\n  border-radius: 50%;\n  background: #1494ff;\n  box-shadow: 0 0 12px rgba(20, 148, 255, .65);\n}\n\n.ee-spa-hero__eyebrow {\n  display: block;\n  margin-bottom: 15px;\n  color: #57def4;\n  font-size: 10px;\n  font-weight: 900;\n  letter-spacing: .17em;\n}\n\n.ee-spa-hero h1 {\n  max-width: 720px;\n  margin: 0;\n  color: #fff;\n  font-size: clamp(48px, 6vw, 90px);\n  font-weight: 900;\n  line-height: .87;\n  letter-spacing: -.06em;\n  text-transform: uppercase;\n}\n\n.ee-spa-hero h1 span {\n  display: block;\n  margin-top: .09em;\n  color: #1494ff;\n}\n\n.ee-spa-hero__lead {\n  max-width: 600px;\n  margin: 29px 0 0;\n  padding-left: 18px;\n  border-left: 3px solid #f9b000;\n  color: rgba(235, 243, 255, .74);\n  font-size: clamp(16px, 1.22vw, 19px);\n  font-weight: 600;\n  line-height: 1.65;\n}\n\n.ee-spa-hero__actions {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: 18px 26px;\n  margin-top: 30px;\n}\n\n.ee-spa-hero__primary {\n  display: inline-flex;\n  align-items: center;\n  gap: 9px;\n  min-height: 50px;\n  padding: 0 20px;\n  background: #f9b000;\n  color: #071426 !important;\n  font-size: 12px;\n  font-weight: 900;\n  text-decoration: none !important;\n  clip-path: polygon(0 0, 89% 0, 100% 34%, 100% 100%, 8% 100%, 0 72%);\n  filter:\n    drop-shadow(8px 8px 0 rgba(20, 148, 255, .48))\n    drop-shadow(0 18px 32px rgba(0, 0, 0, .24));\n  transition: transform .22s ease, filter .22s ease;\n}\n\n.ee-spa-hero__primary:hover {\n  transform: translateY(-2px);\n  filter:\n    drop-shadow(11px 10px 0 rgba(20, 148, 255, .62))\n    drop-shadow(0 22px 36px rgba(0, 0, 0, .3));\n}\n\n.ee-spa-hero__phone {\n  position: relative;\n  color: #fff !important;\n  font-size: 15px;\n  font-weight: 900;\n  text-decoration: none !important;\n}\n\n.ee-spa-hero__phone::after {\n  content: \"\";\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: -7px;\n  height: 2px;\n  background: #1494ff;\n}\n\n.ee-spa-hero__visual {\n  position: relative;\n  min-height: clamp(500px, 55vw, 680px);\n}\n\n.ee-spa-hero__image-frame {\n  position: absolute;\n  inset: 0 0 7% 8%;\n  overflow: hidden;\n  background: #071426;\n  clip-path: polygon(\n    10% 0,\n    100% 0,\n    100% 83%,\n    91% 100%,\n    0 100%,\n    0 12%\n  );\n  filter:\n    drop-shadow(-13px 14px 0 rgba(20, 148, 255, .58))\n    drop-shadow(12px -9px 0 rgba(249, 176, 0, .38))\n    drop-shadow(0 30px 55px rgba(0, 0, 0, .45));\n}\n\n.ee-spa-hero__image-frame::after {\n  content: \"\";\n  position: absolute;\n  inset: 0;\n  background:\n    linear-gradient(90deg, rgba(2, 8, 23, .48), transparent 45%),\n    linear-gradient(0deg, rgba(2, 8, 23, .46), transparent 42%);\n  pointer-events: none;\n}\n\n.ee-spa-hero__image-frame img {\n  width: 100%;\n  height: 100%;\n  display: block;\n  object-fit: cover;\n  transform: scale(1.035);\n}\n\n.ee-spa-hero__image-label {\n  position: absolute;\n  z-index: 3;\n  right: 23px;\n  bottom: 25px;\n  width: min(330px, 68%);\n  padding: 15px 18px 17px;\n  background: rgba(7, 20, 38, .95);\n  color: #fff;\n  clip-path: polygon(0 0, 92% 0, 100% 29%, 100% 100%, 8% 100%, 0 74%);\n  filter:\n    drop-shadow(-7px 7px 0 #1494ff)\n    drop-shadow(7px -5px 0 rgba(249, 176, 0, .75));\n}\n\n.ee-spa-hero__image-label span,\n.ee-spa-hero__image-label strong {\n  display: block;\n}\n\n.ee-spa-hero__image-label span {\n  margin-bottom: 6px;\n  color: #f9b000;\n  font-size: 8px;\n  font-weight: 900;\n  letter-spacing: .14em;\n}\n\n.ee-spa-hero__image-label strong {\n  font-size: 13px;\n  line-height: 1.35;\n}\n\n.ee-spa-hero__technical {\n  position: absolute;\n  z-index: 5;\n  left: -13%;\n  bottom: 0;\n  width: 58%;\n  padding: 14px 14px 8px;\n  background: rgba(2, 8, 23, .9);\n  border-top: 1px solid rgba(87, 222, 244, .5);\n  border-left: 3px solid #1494ff;\n  backdrop-filter: blur(8px);\n}\n\n.ee-spa-hero__technical-label {\n  display: block;\n  color: #57def4;\n  font-size: 8px;\n  font-weight: 900;\n  letter-spacing: .16em;\n}\n\n.ee-spa-hero__technical svg {\n  width: 100%;\n  height: 130px;\n}\n\n.ee-spa-hero__technical path {\n  fill: none;\n  stroke: #1494ff;\n  stroke-width: 2;\n  vector-effect: non-scaling-stroke;\n}\n\n.ee-spa-hero__technical circle {\n  fill: #f9b000;\n  filter: drop-shadow(0 0 5px rgba(249, 176, 0, .7));\n}\n\n.ee-spa-hero__statement {\n  position: relative;\n  z-index: 4;\n  display: grid;\n  grid-template-columns: 230px minmax(0, 560px);\n  gap: 28px;\n  align-items: start;\n  width: min(1180px, 100%);\n  margin: 68px auto 0;\n  padding-top: 18px;\n  border-top: 1px solid rgba(255, 255, 255, .13);\n}\n\n.ee-spa-hero__statement > span {\n  color: #f9b000;\n  font-size: 8px;\n  font-weight: 900;\n  letter-spacing: .14em;\n}\n\n.ee-spa-hero__statement p {\n  margin: 0;\n  color: rgba(235, 243, 255, .68);\n  font-size: 14px;\n  font-weight: 600;\n  line-height: 1.7;\n}\n\n.ee-spa-hero__handoff {\n  position: absolute;\n  z-index: 8;\n  left: 0;\n  right: 0;\n  bottom: -1px;\n  height: clamp(85px, 9vw, 140px);\n  background: #f5f9ff;\n  clip-path: polygon(0 71%, 33% 43%, 62% 7%, 76% 22%, 100% 40%, 100% 100%, 0 100%);\n}\n\n.ee-spa-hero__handoff::before {\n  content: \"\";\n  position: absolute;\n  left: 0;\n  top: 32%;\n  width: 66%;\n  height: 12px;\n  background: #1494ff;\n  transform: rotate(-3.1deg);\n  transform-origin: left center;\n}\n\n.ee-spa-hero__handoff::after {\n  content: \"\";\n  position: absolute;\n  right: -3%;\n  top: 31%;\n  width: 48%;\n  height: 6px;\n  background: #f9b000;\n  transform: rotate(4deg);\n}\n\n@media (max-width: 900px) {\n  .ee-spa-hero {\n    padding: 64px 16px 125px;\n  }\n\n  .ee-spa-hero__shell {\n    grid-template-columns: 1fr;\n  }\n\n  .ee-spa-hero__visual {\n    min-height: 560px;\n  }\n\n  .ee-spa-hero__statement {\n    grid-template-columns: 1fr;\n    gap: 12px;\n  }\n}\n\n@media (max-width: 560px) {\n  .ee-spa-hero {\n    padding: 52px 13px 105px;\n  }\n\n  .ee-spa-hero h1 {\n    font-size: clamp(40px, 12vw, 55px);\n  }\n\n  .ee-spa-hero__visual {\n    min-height: 410px;\n  }\n\n  .ee-spa-hero__image-frame {\n    left: 0;\n  }\n\n  .ee-spa-hero__technical {\n    left: 0;\n    width: 70%;\n  }\n\n  .ee-spa-hero__actions {\n    display: grid;\n  }\n\n  .ee-spa-hero__primary {\n    justify-content: center;\n  }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .ee-spa-hero *,\n  .ee-spa-hero *::before,\n  .ee-spa-hero *::after {\n    animation: none !important;\n    transition: none !important;\n  }\n}\n\n.ee-spa-hero--media-missing .ee-spa-hero__image-frame{background:radial-gradient(circle at 72% 35%,rgba(20,148,255,.28),transparent 28%),linear-gradient(145deg,#071426,#020817)}\n.ee-spa-hero--media-missing .ee-spa-hero__image-frame::before{content:\"SPA \/ MEDIA PENDING\";position:absolute;left:50%;top:50%;z-index:2;transform:translate(-50%,-50%);color:rgba(255,255,255,.18);font-size:clamp(28px,4vw,58px);font-weight:900;letter-spacing:-.04em;white-space:nowrap}\n\/* Spa divider 01 \u2014 rising fill layers *\/\n.ee-spa-hero{padding-bottom:clamp(190px,16vw,240px)}\n.ee-spa-hero__handoff{left:-3%;right:-3%;bottom:-1px;height:clamp(178px,15vw,226px);overflow:hidden;pointer-events:none;background:transparent;clip-path:none}\n.ee-spa-hero__handoff::before,.ee-spa-hero__handoff::after{content:none}\n.ee-spa-hero__handoff svg{display:block;width:100%;height:100%;overflow:hidden}\n.ee-spa-hero__handoff .ee-spa-divider__field{fill:#f5f9ff}\n.ee-spa-hero__handoff .ee-spa-divider__blue{fill:#1494ff;filter:drop-shadow(0 8px 13px rgba(20,148,255,.17))}\n.ee-spa-hero__handoff .ee-spa-divider__yellow{fill:#f9b000;filter:drop-shadow(0 5px 9px rgba(249,176,0,.14))}\n.ee-spa-hero__handoff .ee-spa-divider__cyan{fill:#57def4}\n.ee-spa-hero__handoff .ee-spa-divider__cyan{opacity:.25}\n.ee-spa-hero__handoff .ee-spa-divider__blue{opacity:.82}\n.ee-spa-hero__handoff .ee-spa-divider__yellow{opacity:.88}\n@media(max-width:560px){.ee-spa-hero__handoff{height:98px}}\n<\/style>\n\n<script data-wp-block-html=\"js\">\n(() => {\n  const root = document.querySelector(\".ee-spa-hero\");\n  if (!root || root.dataset.ready === \"true\") return;\n\n  root.dataset.ready = \"true\";\n\n  const reduce = matchMedia(\"(prefers-reduced-motion: reduce)\");\n  const copy = root.querySelector(\".ee-spa-hero__copy\");\n  const visual = root.querySelector(\".ee-spa-hero__visual\");\n  const trace = root.querySelector(\".ee-spa-hero__trace\");\n  const media = root.querySelector(\".ee-spa-hero__image-frame img\");\n  if (media) media.addEventListener(\"error\", () => { media.style.display = \"none\"; root.classList.add(\"ee-spa-hero--media-missing\"); }, { once: true });\n\n  if (trace) {\n    const length = trace.getTotalLength();\n\n    trace.style.strokeDasharray = length;\n    trace.style.strokeDashoffset = reduce.matches ? 0 : length;\n\n    requestAnimationFrame(() => {\n      trace.style.transition = reduce.matches\n        ? \"none\"\n        : \"stroke-dashoffset 1.5s cubic-bezier(.2,.75,.25,1) .55s\";\n\n      trace.style.strokeDashoffset = 0;\n    });\n  }\n\n  if (reduce.matches) return;\n\n  [copy, visual].forEach((element, index) => {\n    if (!element) return;\n\n    element.animate(\n      [\n        {\n          opacity: 0,\n          transform: `translate3d(${index ? 34 : -34}px,20px,0)`,\n          filter: \"blur(7px)\"\n        },\n        {\n          opacity: 1,\n          transform: \"none\",\n          filter: \"blur(0)\"\n        }\n      ],\n      {\n        duration: 850,\n        delay: 120 + index * 150,\n        easing: \"cubic-bezier(.2,.75,.25,1)\",\n        fill: \"both\"\n      }\n    );\n  });\n})();\n<\/script>\n\n\n\n<section data-consonant-block-name=\"core\/html\" data-consonant-block-path=\"1\" data-consonant-block=\"post-132-core-html-1\" data-consonant-page=\"132\" data-consonant-source=\"post-content\" class=\"ee-spa-infra\" aria-labelledby=\"ee-spa-infra-title\">\n  <div class=\"ee-spa-infra__shell\">\n    <header class=\"ee-spa-infra__head\">\n      <div class=\"ee-spa-infra__index\">\n        <span>02<\/span>\n        <span>INFRASTRUCTURE<\/span>\n      <\/div>\n\n      <div>\n        <span class=\"ee-spa-infra__eyebrow\">\n          Dedicated electrical planning\n        <\/span>\n\n        <h2 id=\"ee-spa-infra-title\">\n          Dedicated Electrical\n          <span>Infrastructure.<\/span>\n        <\/h2>\n      <\/div>\n\n      <p>\n        A hot tub or spa should not be treated like another convenience\n        receptacle on the patio.\n      <\/p>\n    <\/header>\n\n    <div class=\"ee-spa-infra__system\" data-spa-infra>\n      <div class=\"ee-spa-infra__line\" aria-hidden=\"true\">\n        <span><\/span>\n      <\/div>\n\n      <article class=\"ee-spa-infra__node\">\n        <span class=\"ee-spa-infra__number\">01<\/span>\n        <strong>Panel<\/strong>\n        <p>Available space and electrical capacity are evaluated first.<\/p>\n      <\/article>\n\n      <article class=\"ee-spa-infra__node\">\n        <span class=\"ee-spa-infra__number\">02<\/span>\n        <strong>Dedicated Circuit<\/strong>\n        <p>The equipment may require a dedicated electrical circuit.<\/p>\n      <\/article>\n\n      <article class=\"ee-spa-infra__node\">\n        <span class=\"ee-spa-infra__number\">03<\/span>\n        <strong>Disconnect<\/strong>\n        <p>Disconnecting means are considered as part of the installation.<\/p>\n      <\/article>\n\n      <article class=\"ee-spa-infra__node\">\n        <span class=\"ee-spa-infra__number\">04<\/span>\n        <strong>Spa Equipment<\/strong>\n        <p>The final connection is planned around the selected equipment.<\/p>\n      <\/article>\n    <\/div>\n\n    <div class=\"ee-spa-infra__statement\">\n      <span>PLAN \/ LOAD \/ EQUIPMENT<\/span>\n      <p>\n        The equipment may require a dedicated circuit, specific wiring,\n        disconnecting means, and sufficient panel capacity for the load being\n        added.\n      <\/p>\n\n      <strong>\n        We evaluate the electrical requirements of the equipment and how those\n        requirements fit the existing system.\n      <\/strong>\n    <\/div>\n  <\/div>\n\n  <div class=\"ee-spa-infra__handoff\" aria-hidden=\"true\">\n    <svg viewBox=\"0 0 100 100\" preserveAspectRatio=\"none\">\n      <path class=\"ee-spa-divider__field\" d=\"M0 23 L100 72 L100 100 L0 100 Z\"><\/path>\n      <path class=\"ee-spa-divider__blue\" d=\"M100 30 L100 61 L30 47 Z\"><\/path>\n      <path class=\"ee-spa-divider__yellow\" d=\"M100 68 L100 81 L65 67 Z\"><\/path>\n    <\/svg>\n  <\/div>\n<\/section>\n\n<style data-wp-block-html=\"css\">\n.ee-spa-infra,\n.ee-spa-infra * {\n  box-sizing: border-box;\n}\n\n.ee-spa-infra {\n  position: relative;\n  overflow: hidden;\n  padding: clamp(78px, 8vw, 118px) 20px 160px;\n  background:\n    radial-gradient(circle at 88% 12%, rgba(20, 148, 255, .09), transparent 28rem),\n    linear-gradient(#f5f9ff, #e2eaf1);\n  color: #071426;\n  font-family: Arial, Helvetica, sans-serif;\n}\n\n.ee-spa-infra__shell {\n  width: min(1260px, 100%);\n  margin: 0 auto;\n}\n\n.ee-spa-infra__head {\n  display: grid;\n  grid-template-columns: 110px minmax(0, 1fr) minmax(290px, .48fr);\n  gap: clamp(24px, 4vw, 58px);\n  align-items: end;\n}\n\n.ee-spa-infra__index {\n  display: grid;\n  gap: 7px;\n  align-self: start;\n  padding-top: 8px;\n  border-top: 3px solid #1494ff;\n}\n\n.ee-spa-infra__index span:first-child {\n  font-size: 31px;\n  font-weight: 900;\n}\n\n.ee-spa-infra__index span:last-child {\n  color: #61758a;\n  font-size: 8px;\n  font-weight: 900;\n  letter-spacing: .14em;\n}\n\n.ee-spa-infra__eyebrow {\n  display: block;\n  margin-bottom: 13px;\n  color: #0b6fb7;\n  font-size: 10px;\n  font-weight: 900;\n  letter-spacing: .15em;\n  text-transform: uppercase;\n}\n\n.ee-spa-infra h2 {\n  max-width: 790px;\n  margin: 0;\n  font-size: clamp(45px, 5.5vw, 76px);\n  font-weight: 900;\n  line-height: .92;\n  letter-spacing: -.055em;\n  text-transform: uppercase;\n}\n\n.ee-spa-infra h2 span {\n  display: block;\n  color: #1494ff;\n}\n\n.ee-spa-infra__head > p {\n  margin: 0;\n  padding: 23px 24px;\n  background: #071426;\n  color: #fff;\n  font-size: 16px;\n  font-weight: 700;\n  line-height: 1.6;\n  clip-path: polygon(0 0, 91% 0, 100% 28%, 100% 100%, 8% 100%, 0 74%);\n  filter:\n    drop-shadow(9px 9px 0 rgba(249, 176, 0, .52))\n    drop-shadow(-7px -6px 0 rgba(20, 148, 255, .45));\n}\n\n.ee-spa-infra__system {\n  position: relative;\n  display: grid;\n  grid-template-columns: repeat(4, minmax(0, 1fr));\n  gap: 0;\n  margin-top: clamp(70px, 8vw, 110px);\n  padding-top: 48px;\n}\n\n.ee-spa-infra__line {\n  position: absolute;\n  left: 6%;\n  right: 6%;\n  top: 17px;\n  height: 3px;\n  background: rgba(7, 20, 38, .14);\n}\n\n.ee-spa-infra__line span {\n  display: block;\n  width: calc(var(--spa-trace, 0) * 100%);\n  height: 100%;\n  background: linear-gradient(90deg, #1494ff 0 70%, #f9b000 70%);\n  box-shadow: 0 0 16px rgba(20, 148, 255, .26);\n}\n\n.ee-spa-infra__node {\n  position: relative;\n  min-height: 255px;\n  padding: 30px 25px 25px;\n  border-left: 1px solid rgba(7, 20, 38, .15);\n}\n\n.ee-spa-infra__node:last-child {\n  border-right: 1px solid rgba(7, 20, 38, .15);\n}\n\n.ee-spa-infra__node::before {\n  content: \"\";\n  position: absolute;\n  top: -38px;\n  left: 21px;\n  width: 16px;\n  height: 16px;\n  border: 3px solid #f5f9ff;\n  background: #1494ff;\n  transform: rotate(45deg);\n  box-shadow: 0 0 0 2px #071426;\n}\n\n.ee-spa-infra__node:nth-of-type(even)::before {\n  background: #f9b000;\n}\n\n.ee-spa-infra__number {\n  display: block;\n  margin-bottom: 31px;\n  color: #1494ff;\n  font-size: 10px;\n  font-weight: 900;\n  letter-spacing: .12em;\n}\n\n.ee-spa-infra__node:nth-of-type(even) .ee-spa-infra__number {\n  color: #b47d00;\n}\n\n.ee-spa-infra__node strong {\n  display: block;\n  max-width: 240px;\n  font-size: clamp(23px, 2vw, 31px);\n  font-weight: 900;\n  line-height: 1;\n  letter-spacing: -.035em;\n}\n\n.ee-spa-infra__node p {\n  max-width: 245px;\n  margin: 15px 0 0;\n  color: #526a80;\n  font-size: 13px;\n  font-weight: 600;\n  line-height: 1.65;\n}\n\n.ee-spa-infra__statement {\n  display: grid;\n  grid-template-columns: 180px minmax(0, 1fr) minmax(300px, .72fr);\n  gap: clamp(24px, 4vw, 54px);\n  align-items: start;\n  margin-top: 57px;\n  padding-top: 24px;\n  border-top: 1px solid rgba(7, 20, 38, .16);\n}\n\n.ee-spa-infra__statement > span {\n  color: #0b6fb7;\n  font-size: 8px;\n  font-weight: 900;\n  letter-spacing: .14em;\n}\n\n.ee-spa-infra__statement p {\n  margin: 0;\n  color: #415a72;\n  font-size: 15px;\n  font-weight: 600;\n  line-height: 1.7;\n}\n\n.ee-spa-infra__statement strong {\n  display: block;\n  padding-left: 18px;\n  border-left: 3px solid #f9b000;\n  font-size: 17px;\n  line-height: 1.55;\n}\n\n.ee-spa-infra__handoff {\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: -1px;\n  height: 108px;\n  background: #071426;\n  clip-path: polygon(0 72%, 31% 46%, 65% 58%, 100% 7%, 100% 100%, 0 100%);\n}\n\n.ee-spa-infra__handoff::before {\n  content: \"\";\n  position: absolute;\n  top: 39%;\n  left: -5%;\n  width: 78%;\n  height: 7px;\n  background: #1494ff;\n  transform: rotate(2.9deg);\n}\n\n.ee-spa-infra__handoff::after {\n  content: \"\";\n  position: absolute;\n  right: -3%;\n  top: 24%;\n  width: 52%;\n  height: 5px;\n  background: #f9b000;\n  transform: rotate(-5deg);\n}\n\n@media (max-width: 900px) {\n  .ee-spa-infra {\n    padding: 64px 16px 125px;\n  }\n\n  .ee-spa-infra__head,\n  .ee-spa-infra__statement {\n    grid-template-columns: 1fr;\n  }\n\n  .ee-spa-infra__index {\n    width: 110px;\n  }\n\n  .ee-spa-infra__system {\n    grid-template-columns: 1fr 1fr;\n  }\n\n  .ee-spa-infra__line {\n    display: none;\n  }\n\n  .ee-spa-infra__node {\n    border-top: 1px solid rgba(7, 20, 38, .15);\n  }\n\n  .ee-spa-infra__node::before {\n    display: none;\n  }\n}\n\n@media (max-width: 560px) {\n  .ee-spa-infra__system {\n    grid-template-columns: 1fr;\n    padding-top: 0;\n  }\n\n  .ee-spa-infra__node {\n    min-height: 0;\n    padding: 25px 8px 27px 20px;\n  }\n\n  .ee-spa-infra__number {\n    margin-bottom: 12px;\n  }\n}\n\/* Spa divider 02 \u2014 grounded containment scan *\/\n\n.ee-spa-infra__handoff{left:-3%;right:-3%;bottom:-1px;height:clamp(116px,9.5vw,160px);overflow:hidden;pointer-events:none;background:transparent;clip-path:none}\n.ee-spa-infra__handoff::before,.ee-spa-infra__handoff::after{content:none}\n.ee-spa-infra__handoff svg{display:block;width:100%;height:100%;overflow:hidden}\n.ee-spa-infra__handoff .ee-spa-divider__field{fill:#071426}\n.ee-spa-infra__handoff .ee-spa-divider__blue{fill:#1494ff;filter:drop-shadow(0 8px 13px rgba(20,148,255,.17))}\n.ee-spa-infra__handoff .ee-spa-divider__yellow{fill:#f9b000;filter:drop-shadow(0 5px 9px rgba(249,176,0,.14))}\n.ee-spa-infra__handoff .ee-spa-divider__cyan{fill:#57def4}\n.ee-spa-infra__handoff .ee-spa-divider__blue{opacity:.72}\n.ee-spa-infra__handoff .ee-spa-divider__yellow{opacity:.93}\n@media(max-width:560px){.ee-spa-infra__handoff{height:74px}}\n\n\/* Service-page atmosphere: hot-tub-spa-electrical\/1. Organic light, one diagonal datum, and view-linked copy motion. *\/\n.ee-spa-infra{\n background:\n  linear-gradient(117deg,transparent 0 48.9%,rgba(7,20,38,.055) 49%,transparent 49.18% 100%),\n  radial-gradient(ellipse 68% 46% at 88% 22%,rgba(20,148,255,.105),transparent 72%),\n  radial-gradient(ellipse 58% 50% at 10% 74%,rgba(249,176,0,.09),transparent 74%),\n  linear-gradient(154deg,#f8fafc 0%,#eaf0f4 54%,#f8f3e8 118%);\n background-size:100% 100%,128% 128%,132% 132%,100% 100%;\n animation:ee-spa-infra-ambient-drift 28s ease-in-out infinite alternate;\n box-shadow:inset 0 72px 110px -115px rgba(7,20,38,.28),inset 0 -82px 110px -118px rgba(7,20,38,.22);\n}\n@keyframes ee-spa-infra-ambient-drift{\n 0%{background-position:0 0,0% 14%,100% 78%,0 0;}\n 100%{background-position:0 0,13% 27%,86% 59%,0 0;}\n}\n@supports(animation-timeline:view()){\n .ee-spa-infra h2,.ee-spa-infra h3,.ee-spa-infra p{\n  animation:ee-spa-infra-copy-arrive linear both;\n  animation-timeline:view();\n  animation-range:entry 5% cover 27%;\n }\n @keyframes ee-spa-infra-copy-arrive{\n  from{opacity:.18;translate:0 22px;filter:blur(3px);}\n  to{opacity:1;translate:0 0;filter:blur(0);}\n }\n}\n\n@media(prefers-reduced-motion:reduce){\n .ee-spa-infra{animation:none;}\n .ee-spa-infra h2,.ee-spa-infra h3,.ee-spa-infra p{animation:none;translate:none;filter:none;}\n}\n<\/style>\n\n<script data-wp-block-html=\"js\">\n(() => {\n  const stage = document.querySelector(\"[data-spa-infra]\");\n  if (!stage || stage.dataset.ready === \"true\") return;\n\n  stage.dataset.ready = \"true\";\n\n  const reduce = matchMedia(\"(prefers-reduced-motion: reduce)\");\n  let ticking = false;\n\n  const clamp = (value, min, max) =>\n    Math.min(Math.max(value, min), max);\n\n  const render = () => {\n    ticking = false;\n\n    if (reduce.matches) {\n      stage.style.setProperty(\"--spa-trace\", 1);\n      return;\n    }\n\n    const rect = stage.getBoundingClientRect();\n    const start = innerHeight * .86;\n    const end = innerHeight * .30;\n\n    const progress = clamp(\n      (start - rect.top) \/ (start - end),\n      0,\n      1\n    );\n\n    stage.style.setProperty(\"--spa-trace\", progress.toFixed(4));\n  };\n\n  const request = () => {\n    if (ticking) return;\n    ticking = true;\n    requestAnimationFrame(render);\n  };\n\n  addEventListener(\"scroll\", request, { passive: true });\n  addEventListener(\"resize\", request);\n\n  render();\n})();\n<\/script>\n\n\n\n<section data-consonant-block-name=\"core\/html\" data-consonant-block-path=\"2\" data-consonant-block=\"post-132-core-html-2\" data-consonant-page=\"132\" data-consonant-source=\"post-content\" class=\"ee-spa-capacity\" aria-labelledby=\"ee-spa-capacity-title\">\n  <div class=\"ee-spa-capacity__grid\" aria-hidden=\"true\"><\/div>\n\n  <div class=\"ee-spa-capacity__shell\">\n    <div class=\"ee-spa-capacity__visual\" data-spa-capacity-visual>\n      <figure class=\"ee-spa-capacity__main\">\n        <img decoding=\"async\"\n          src=\"https:\/\/electricalexpert520.com\/wp-content\/uploads\/2026\/08\/resized_IMG_0470_resized.webp\"\n          alt=\"Hot tub and spa electrical panel with dedicated breakers and equipment wiring\"\n          loading=\"lazy\"\n        >\n\n        <figcaption>\n          <span>SPA PANEL \/ DEDICATED LOAD<\/span>\n          <strong>Dedicated spa equipment starts with the right panel and circuit planning.<\/strong>\n        <\/figcaption>\n      <\/figure>\n\n      <div class=\"ee-spa-capacity__marker\" aria-hidden=\"true\">\n        <span>LOAD<\/span>\n        <b>03<\/b>\n      <\/div>\n    <\/div>\n\n    <article class=\"ee-spa-capacity__copy\" data-spa-capacity-copy>\n      <span class=\"ee-spa-capacity__eyebrow\">03 \/ CAPACITY FIRST<\/span>\n\n      <h2 id=\"ee-spa-capacity-title\">\n        Panel Capacity\n        <span>Comes First.<\/span>\n      <\/h2>\n\n      <p>\n        The spa may be outside, but the electrical question begins at the panel.\n      <\/p>\n\n      <p>\n        Before new equipment is connected, we look at whether the existing\n        electrical system has the appropriate space and capacity for the added\n        load.\n      <\/p>\n\n      <div class=\"ee-spa-capacity__callout\">\n        If the panel or service is part of the problem, that needs to be\n        addressed as part of the project rather than discovered after the\n        equipment arrives.\n      <\/div>\n\n      <a href=\"\/panel-upgrades\/\">\n        Learn About Panel Upgrades\n        <span aria-hidden=\"true\">\u2197<\/span>\n      <\/a>\n    <\/article>\n  <\/div>\n\n  <div class=\"ee-spa-capacity__handoff\" aria-hidden=\"true\">\n    <svg viewBox=\"0 0 100 100\" preserveAspectRatio=\"none\">\n      <path class=\"ee-spa-divider__field\" d=\"M0 68 L42 18 L100 72 L100 100 L0 100 Z\"><\/path>\n      <path class=\"ee-spa-divider__blue\" d=\"M0 40 L0 70 L55 48 Z\"><\/path>\n      <path class=\"ee-spa-divider__yellow\" d=\"M100 49 L100 68 L63 56 Z\"><\/path>\n    <\/svg>\n  <\/div>\n<\/section>\n\n<style data-wp-block-html=\"css\">\n.ee-spa-capacity,\n.ee-spa-capacity * {\n  box-sizing: border-box;\n}\n\n.ee-spa-capacity {\n  position: relative;\n  isolation: isolate;\n  overflow: hidden;\n  padding: clamp(88px, 9vw, 132px) 20px 165px;\n  background:\n    radial-gradient(circle at 13% 20%, rgba(20, 148, 255, .2), transparent 30rem),\n    linear-gradient(#071426, #020817);\n  color: #fff;\n  font-family: Arial, Helvetica, sans-serif;\n}\n\n.ee-spa-capacity__grid {\n  position: absolute;\n  inset: 0;\n  z-index: -1;\n  opacity: .14;\n  background-image:\n    linear-gradient(rgba(20, 148, 255, .16) 1px, transparent 1px),\n    linear-gradient(90deg, rgba(20, 148, 255, .11) 1px, transparent 1px);\n  background-size: 72px 72px;\n  mask-image: linear-gradient(90deg, #000, transparent 62%);\n}\n\n.ee-spa-capacity__shell {\n  display: grid;\n  grid-template-columns: minmax(0, 1.16fr) minmax(390px, .84fr);\n  gap: clamp(48px, 8vw, 112px);\n  align-items: center;\n  width: min(1240px, 100%);\n  margin: 0 auto;\n}\n\n.ee-spa-capacity__visual {\n  position: relative;\n  min-height: clamp(520px, 48vw, 650px);\n}\n\n.ee-spa-capacity__main {\n  position: absolute;\n  inset: 0 8% 4% 0;\n  margin: 0;\n  overflow: hidden;\n  background: #020817;\n  clip-path: polygon(0 0, 93% 0, 100% 11%, 100% 100%, 9% 100%, 0 88%);\n  filter:\n    drop-shadow(12px 13px 0 rgba(20, 148, 255, .55))\n    drop-shadow(-10px -8px 0 rgba(249, 176, 0, .33))\n    drop-shadow(0 30px 50px rgba(0, 0, 0, .4));\n}\n\n.ee-spa-capacity__main img {\n  width: 100%;\n  height: 100%;\n  display: block;\n  object-fit: cover;\n}\n\n.ee-spa-capacity__main figcaption {\n  position: absolute;\n  left: 21px;\n  right: 15%;\n  bottom: 22px;\n  padding: 16px 18px;\n  background: rgba(2, 8, 23, .96);\n  color: #fff;\n  clip-path: polygon(0 0, 92% 0, 100% 28%, 100% 100%, 7% 100%, 0 73%);\n  filter:\n    drop-shadow(-8px 8px 0 #1494ff)\n    drop-shadow(7px -5px 0 rgba(249, 176, 0, .75));\n}\n\n.ee-spa-capacity__main figcaption span,\n.ee-spa-capacity__main figcaption strong {\n  display: block;\n}\n\n.ee-spa-capacity__main figcaption span {\n  margin-bottom: 5px;\n  color: #f9b000;\n  font-size: 8px;\n  font-weight: 900;\n  letter-spacing: .14em;\n}\n\n.ee-spa-capacity__main figcaption strong {\n  font-size: 14px;\n  font-weight: 900;\n  line-height: 1.35;\n}\n\n.ee-spa-capacity__marker {\n  position: absolute;\n  z-index: 4;\n  top: 17px;\n  right: 0;\n  display: grid;\n  justify-items: end;\n}\n\n.ee-spa-capacity__marker span {\n  color: rgba(255, 255, 255, .55);\n  font-size: 8px;\n  font-weight: 900;\n  letter-spacing: .16em;\n}\n\n.ee-spa-capacity__marker b {\n  color: #f9b000;\n  font-size: 48px;\n  font-weight: 900;\n  line-height: .8;\n}\n\n.ee-spa-capacity__copy {\n  position: relative;\n}\n\n.ee-spa-capacity__eyebrow {\n  display: block;\n  margin-bottom: 14px;\n  color: #f9b000;\n  font-size: 9px;\n  font-weight: 900;\n  letter-spacing: .16em;\n}\n\n.ee-spa-capacity h2 {\n  margin: 0;\n  color: #fff;\n  font-size: clamp(46px, 5.4vw, 76px);\n  font-weight: 900;\n  line-height: .91;\n  letter-spacing: -.055em;\n  text-transform: uppercase;\n}\n\n.ee-spa-capacity h2 span {\n  display: block;\n  color: #1494ff;\n}\n\n.ee-spa-capacity__copy > p {\n  margin: 23px 0 0;\n  color: rgba(235, 243, 255, .72);\n  font-size: 15px;\n  font-weight: 600;\n  line-height: 1.72;\n}\n\n.ee-spa-capacity__callout {\n  margin-top: 28px;\n  padding: 21px 23px;\n  background: #edf5fb;\n  color: #071426;\n  font-size: 15px;\n  font-weight: 800;\n  line-height: 1.6;\n  clip-path: polygon(7% 0, 100% 0, 100% 80%, 92% 100%, 0 100%, 0 20%);\n  filter:\n    drop-shadow(-8px 8px 0 rgba(20, 148, 255, .7))\n    drop-shadow(8px -6px 0 rgba(249, 176, 0, .48));\n}\n\n.ee-spa-capacity__copy > a {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n  margin-top: 29px;\n  min-height: 46px;\n  padding: 0 17px;\n  border: 1px solid rgba(249, 176, 0, .65);\n  color: #fff !important;\n  font-size: 11px;\n  font-weight: 900;\n  text-decoration: none !important;\n}\n\n.ee-spa-capacity__copy > a span {\n  color: #f9b000;\n}\n\n.ee-spa-capacity__handoff {\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: -1px;\n  height: 120px;\n  background: #dbe4ec;\n  clip-path: polygon(0 58%, 28% 72%, 57% 18%, 74% 34%, 100% 8%, 100% 100%, 0 100%);\n}\n\n.ee-spa-capacity__handoff::after {\n  content: \"\";\n  position: absolute;\n  left: 27%;\n  top: 45%;\n  width: 77%;\n  height: 7px;\n  background: #1494ff;\n  transform: rotate(-3.8deg);\n}\n\n@media (max-width: 900px) {\n  .ee-spa-capacity__shell {\n    grid-template-columns: 1fr;\n  }\n\n  .ee-spa-capacity__visual {\n    min-height: 500px;\n  }\n}\n\n@media (max-width: 560px) {\n  .ee-spa-capacity {\n    padding: 65px 13px 118px;\n  }\n\n  .ee-spa-capacity__visual {\n    min-height: 350px;\n  }\n\n  .ee-spa-capacity h2 {\n    font-size: clamp(39px, 11vw, 52px);\n  }\n}\n\/* Spa divider 03 \u2014 asymmetric capacity surge *\/\n.ee-spa-capacity{padding-bottom:clamp(180px,15vw,220px)}\n.ee-spa-capacity__handoff{left:-3%;right:-3%;bottom:-1px;height:clamp(154px,13vw,202px);overflow:hidden;pointer-events:none;background:transparent;clip-path:none}\n.ee-spa-capacity__handoff::before,.ee-spa-capacity__handoff::after{content:none}\n.ee-spa-capacity__handoff svg{display:block;width:100%;height:100%;overflow:hidden}\n.ee-spa-capacity__handoff .ee-spa-divider__field{fill:#dbe4ec}\n.ee-spa-capacity__handoff .ee-spa-divider__blue{fill:#1494ff;filter:drop-shadow(0 8px 13px rgba(20,148,255,.17))}\n.ee-spa-capacity__handoff .ee-spa-divider__yellow{fill:#f9b000;filter:drop-shadow(0 5px 9px rgba(249,176,0,.14))}\n.ee-spa-capacity__handoff .ee-spa-divider__cyan{fill:#57def4}\n.ee-spa-capacity__handoff .ee-spa-divider__blue{opacity:.79}\n.ee-spa-capacity__handoff .ee-spa-divider__yellow{opacity:.94}\n@media(max-width:560px){.ee-spa-capacity__handoff{height:88px}}\n<\/style>\n\n<script data-wp-block-html=\"js\">\n(() => {\n  const visual = document.querySelector(\"[data-spa-capacity-visual]\");\n  const copy = document.querySelector(\"[data-spa-capacity-copy]\");\n\n  if (!visual || !copy) return;\n\n  const reduce = matchMedia(\"(prefers-reduced-motion: reduce)\");\n\n  if (reduce.matches) return;\n\n  const observer = new IntersectionObserver(\n    entries => {\n      entries.forEach(entry => {\n        if (!entry.isIntersecting) return;\n\n        const element = entry.target;\n        const visualSide = element === visual;\n\n        element.animate(\n          [\n            {\n              opacity: 0,\n              transform: `translate3d(${visualSide ? -42 : 42}px,26px,0) scale(.98)`,\n              filter: \"blur(6px)\"\n            },\n            {\n              opacity: 1,\n              transform: \"none\",\n              filter: \"blur(0)\"\n            }\n          ],\n          {\n            duration: 850,\n            easing: \"cubic-bezier(.2,.75,.25,1)\",\n            fill: \"both\"\n          }\n        );\n\n        observer.unobserve(element);\n      });\n    },\n    { threshold: .18 }\n  );\n\n  observer.observe(visual);\n  observer.observe(copy);\n})();\n<\/script>\n\n\n\n<section data-consonant-block-name=\"core\/html\" data-consonant-block-path=\"3\" data-consonant-block=\"post-132-core-html-3\" data-consonant-page=\"132\" data-consonant-source=\"post-content\" class=\"ee-spa-route\" aria-labelledby=\"ee-spa-route-title\">\n  <div class=\"ee-spa-route__shell\">\n    <header class=\"ee-spa-route__head\">\n      <div class=\"ee-spa-route__index\">\n        <span>04<\/span>\n        <span>OUTDOOR ROUTING<\/span>\n      <\/div>\n\n      <div>\n        <span class=\"ee-spa-route__eyebrow\">\n          Property-specific electrical planning\n        <\/span>\n\n        <h2 id=\"ee-spa-route-title\">\n          Wiring for\n          <span>Outdoor Equipment.<\/span>\n        <\/h2>\n      <\/div>\n    <\/header>\n\n    <div class=\"ee-spa-route__composition\">\n      <div class=\"ee-spa-route__diagram\" data-spa-route>\n        <div class=\"ee-spa-route__diagram-grid\" aria-hidden=\"true\"><\/div>\n\n        <svg\n          class=\"ee-spa-route__svg\"\n          viewBox=\"0 0 900 470\"\n          preserveAspectRatio=\"none\"\n          aria-hidden=\"true\"\n        >\n          <path\n            class=\"ee-spa-route__base\"\n            d=\"M70 355 C190 345 178 225 310 230 S480 332 584 184 S746 120 835 80\"\n          ><\/path>\n\n          <path\n            class=\"ee-spa-route__active\"\n            d=\"M70 355 C190 345 178 225 310 230 S480 332 584 184 S746 120 835 80\"\n          ><\/path>\n        <\/svg>\n\n        <div class=\"ee-spa-route__point ee-spa-route__point--one\">\n          <span>01<\/span>\n          <strong>Electrical Source<\/strong>\n        <\/div>\n\n        <div class=\"ee-spa-route__point ee-spa-route__point--two\">\n          <span>02<\/span>\n          <strong>Property Route<\/strong>\n        <\/div>\n\n        <div class=\"ee-spa-route__point ee-spa-route__point--three\">\n          <span>03<\/span>\n          <strong>Finished Installation<\/strong>\n        <\/div>\n\n        <div class=\"ee-spa-route__caption\">\n          SOURCE \u2192 PROPERTY \u2192 EQUIPMENT\n        <\/div>\n      <\/div>\n\n      <article class=\"ee-spa-route__copy\">\n        <p>\n          Outdoor electrical work has to account for the equipment, its\n          location, and the path between the electrical source and the finished\n          installation.\n        <\/p>\n\n        <strong>\n          We plan the electrical side around the actual property rather than\n          assuming every yard, patio, or spa location presents the same\n          conditions.\n        <\/strong>\n      <\/article>\n    <\/div>\n  <\/div>\n\n  <div class=\"ee-spa-route__handoff\" aria-hidden=\"true\">\n    <svg viewBox=\"0 0 100 100\" preserveAspectRatio=\"none\">\n      <path class=\"ee-spa-divider__field\" d=\"M0 76 L57 50 L72 18 L100 34 L100 100 L0 100 Z\"><\/path>\n      <path class=\"ee-spa-divider__cyan\" d=\"M0 27 L0 37 L54 45 Z\"><\/path>\n      <path class=\"ee-spa-divider__blue\" d=\"M0 41 L0 72 L73 49 Z\"><\/path>\n      <path class=\"ee-spa-divider__yellow\" d=\"M0 65 L0 79 L47 63 Z\"><\/path>\n    <\/svg>\n  <\/div>\n<\/section>\n\n<style data-wp-block-html=\"css\">\n.ee-spa-route,\n.ee-spa-route * {\n  box-sizing: border-box;\n}\n\n.ee-spa-route {\n  position: relative;\n  overflow: hidden;\n  padding: clamp(82px, 8vw, 118px) 20px 155px;\n  background: linear-gradient(#dbe4ec, #b9c8d3);\n  color: #071426;\n  font-family: Arial, Helvetica, sans-serif;\n}\n\n.ee-spa-route__shell {\n  width: min(1220px, 100%);\n  margin: 0 auto;\n}\n\n.ee-spa-route__head {\n  display: grid;\n  grid-template-columns: 115px minmax(0, 1fr);\n  gap: clamp(27px, 5vw, 64px);\n  align-items: start;\n}\n\n.ee-spa-route__index {\n  display: grid;\n  gap: 7px;\n  padding-top: 8px;\n  border-top: 3px solid #1494ff;\n}\n\n.ee-spa-route__index span:first-child {\n  font-size: 31px;\n  font-weight: 900;\n}\n\n.ee-spa-route__index span:last-child {\n  color: #5e7285;\n  font-size: 8px;\n  font-weight: 900;\n  letter-spacing: .14em;\n}\n\n.ee-spa-route__eyebrow {\n  display: block;\n  margin-bottom: 13px;\n  color: #4f6579;\n  font-size: 10px;\n  font-weight: 900;\n  letter-spacing: .15em;\n  text-transform: uppercase;\n}\n\n.ee-spa-route h2 {\n  max-width: 880px;\n  margin: 0;\n  font-size: clamp(48px, 6vw, 82px);\n  font-weight: 900;\n  line-height: .91;\n  letter-spacing: -.055em;\n  text-transform: uppercase;\n}\n\n.ee-spa-route h2 span {\n  display: block;\n  color: #0b6fb7;\n}\n\n.ee-spa-route__composition {\n  display: grid;\n  grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);\n  gap: clamp(34px, 5vw, 70px);\n  align-items: center;\n  margin-top: 64px;\n}\n\n.ee-spa-route__diagram {\n  position: relative;\n  min-height: 500px;\n  overflow: hidden;\n  background: #071426;\n  clip-path: polygon(0 0, 93% 0, 100% 12%, 100% 100%, 8% 100%, 0 88%);\n  filter:\n    drop-shadow(12px 13px 0 rgba(20, 148, 255, .52))\n    drop-shadow(-9px -8px 0 rgba(249, 176, 0, .38))\n    drop-shadow(0 24px 42px rgba(7, 20, 38, .23));\n}\n\n.ee-spa-route__diagram-grid {\n  position: absolute;\n  inset: 0;\n  opacity: .23;\n  background-image:\n    linear-gradient(rgba(20, 148, 255, .16) 1px, transparent 1px),\n    linear-gradient(90deg, rgba(20, 148, 255, .12) 1px, transparent 1px);\n  background-size: 54px 54px;\n}\n\n.ee-spa-route__svg {\n  position: absolute;\n  inset: 0;\n  width: 100%;\n  height: 100%;\n}\n\n.ee-spa-route__svg path {\n  fill: none;\n  stroke-width: 3;\n  vector-effect: non-scaling-stroke;\n}\n\n.ee-spa-route__base {\n  stroke: rgba(255, 255, 255, .12);\n}\n\n.ee-spa-route__active {\n  stroke: #1494ff;\n  filter: drop-shadow(0 0 7px rgba(20, 148, 255, .62));\n}\n\n.ee-spa-route__point {\n  position: absolute;\n  z-index: 3;\n  display: grid;\n  gap: 4px;\n  min-width: 150px;\n  padding: 12px 14px;\n  background: #020817;\n  color: #fff;\n  clip-path: polygon(0 0, 90% 0, 100% 30%, 100% 100%, 7% 100%, 0 72%);\n}\n\n.ee-spa-route__point span {\n  color: #f9b000;\n  font-size: 8px;\n  font-weight: 900;\n  letter-spacing: .12em;\n}\n\n.ee-spa-route__point strong {\n  font-size: 11px;\n  font-weight: 900;\n}\n\n.ee-spa-route__point--one {\n  left: 5%;\n  bottom: 14%;\n}\n\n.ee-spa-route__point--two {\n  left: 39%;\n  top: 42%;\n}\n\n.ee-spa-route__point--three {\n  right: 5%;\n  top: 10%;\n}\n\n.ee-spa-route__caption {\n  position: absolute;\n  right: 24px;\n  bottom: 21px;\n  color: rgba(255, 255, 255, .44);\n  font-size: 8px;\n  font-weight: 900;\n  letter-spacing: .17em;\n}\n\n.ee-spa-route__copy {\n  padding: 34px 31px;\n  background: #eff5fa;\n  color: #071426;\n  clip-path: polygon(8% 0, 100% 0, 100% 81%, 92% 100%, 0 100%, 0 15%);\n  filter:\n    drop-shadow(-9px 10px 0 rgba(20, 148, 255, .65))\n    drop-shadow(9px -7px 0 rgba(249, 176, 0, .45));\n}\n\n.ee-spa-route__copy p {\n  margin: 0;\n  color: #425e75;\n  font-size: 15px;\n  font-weight: 600;\n  line-height: 1.72;\n}\n\n.ee-spa-route__copy strong {\n  display: block;\n  margin-top: 28px;\n  padding-top: 22px;\n  border-top: 1px solid rgba(7, 20, 38, .17);\n  font-size: 20px;\n  line-height: 1.45;\n}\n\n.ee-spa-route__handoff {\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: -1px;\n  height: 105px;\n  background: #020817;\n  clip-path: polygon(0 16%, 29% 52%, 52% 35%, 77% 67%, 100% 38%, 100% 100%, 0 100%);\n}\n\n.ee-spa-route__handoff::before {\n  content: \"\";\n  position: absolute;\n  left: 0;\n  top: 24%;\n  width: 55%;\n  height: 8px;\n  background: #f9b000;\n  transform: rotate(4deg);\n}\n\n.ee-spa-route__handoff::after {\n  content: \"\";\n  position: absolute;\n  right: 0;\n  top: 36%;\n  width: 62%;\n  height: 6px;\n  background: #1494ff;\n  transform: rotate(-3deg);\n}\n\n@media (max-width: 900px) {\n  .ee-spa-route__composition {\n    grid-template-columns: 1fr;\n  }\n\n  .ee-spa-route__diagram {\n    min-height: 470px;\n  }\n}\n\n@media (max-width: 560px) {\n  .ee-spa-route {\n    padding: 62px 13px 115px;\n  }\n\n  .ee-spa-route__head {\n    grid-template-columns: 1fr;\n  }\n\n  .ee-spa-route__index {\n    width: 115px;\n  }\n\n  .ee-spa-route__diagram {\n    min-height: 390px;\n  }\n\n  .ee-spa-route__point {\n    min-width: 110px;\n    padding: 9px 10px;\n  }\n\n  .ee-spa-route__point strong {\n    font-size: 9px;\n  }\n}\n\/* Spa divider 04 \u2014 layered buried route *\/\n.ee-spa-route{padding-bottom:clamp(165px,14vw,195px)}\n.ee-spa-route__handoff{left:-3%;right:-3%;bottom:-1px;height:clamp(134px,11vw,180px);overflow:hidden;pointer-events:none;background:transparent;clip-path:none}\n.ee-spa-route__handoff::before,.ee-spa-route__handoff::after{content:none}\n.ee-spa-route__handoff svg{display:block;width:100%;height:100%;overflow:hidden}\n.ee-spa-route__handoff .ee-spa-divider__field{fill:#020817}\n.ee-spa-route__handoff .ee-spa-divider__blue{fill:#1494ff;filter:drop-shadow(0 8px 13px rgba(20,148,255,.17))}\n.ee-spa-route__handoff .ee-spa-divider__yellow{fill:#f9b000;filter:drop-shadow(0 5px 9px rgba(249,176,0,.14))}\n.ee-spa-route__handoff .ee-spa-divider__cyan{fill:#57def4}\n.ee-spa-route__handoff .ee-spa-divider__cyan{opacity:.24}\n.ee-spa-route__handoff .ee-spa-divider__blue{opacity:.84}\n.ee-spa-route__handoff .ee-spa-divider__yellow{opacity:.86}\n@media(max-width:560px){.ee-spa-route__handoff{height:80px}}\n\n\/* Service-page atmosphere: hot-tub-spa-electrical\/3. Organic light, one diagonal datum, and view-linked copy motion. *\/\n.ee-spa-route{\n background:\n  linear-gradient(117deg,transparent 0 48.9%,rgba(7,20,38,.055) 49%,transparent 49.18% 100%),\n  radial-gradient(ellipse 68% 46% at 12% 18%,rgba(249,176,0,.105),transparent 72%),\n  radial-gradient(ellipse 58% 50% at 88% 76%,rgba(20,148,255,.085),transparent 74%),\n  linear-gradient(128deg,#f8fafc 0%,#eaf0f4 54%,#f8f3e8 118%);\n background-size:100% 100%,128% 128%,132% 132%,100% 100%;\n animation:ee-spa-route-ambient-drift 20s ease-in-out infinite alternate;\n box-shadow:inset 0 72px 110px -115px rgba(7,20,38,.28),inset 0 -82px 110px -118px rgba(7,20,38,.22);\n}\n@keyframes ee-spa-route-ambient-drift{\n 0%{background-position:0 0,0% 14%,100% 78%,0 0;}\n 100%{background-position:0 0,13% 27%,86% 59%,0 0;}\n}\n@supports(animation-timeline:view()){\n .ee-spa-route h2,.ee-spa-route h3,.ee-spa-route p{\n  animation:ee-spa-route-copy-arrive linear both;\n  animation-timeline:view();\n  animation-range:entry 5% cover 27%;\n }\n @keyframes ee-spa-route-copy-arrive{\n  from{opacity:.18;translate:0 22px;filter:blur(3px);}\n  to{opacity:1;translate:0 0;filter:blur(0);}\n }\n}\n\n@media(min-width:900px){.ee-spa-route article{position:sticky;top:clamp(92px,12vh,142px);align-self:start;}}\n@media(prefers-reduced-motion:reduce){\n .ee-spa-route{animation:none;}\n .ee-spa-route h2,.ee-spa-route h3,.ee-spa-route p{animation:none;translate:none;filter:none;}\n}\n<\/style>\n\n<script data-wp-block-html=\"js\">\n(() => {\n  const root = document.querySelector(\"[data-spa-route]\");\n  if (!root || root.dataset.ready === \"true\") return;\n\n  root.dataset.ready = \"true\";\n\n  const path = root.querySelector(\".ee-spa-route__active\");\n  if (!path) return;\n\n  const length = path.getTotalLength();\n  const reduce = matchMedia(\"(prefers-reduced-motion: reduce)\");\n\n  path.style.strokeDasharray = length;\n  path.style.strokeDashoffset = reduce.matches ? 0 : length;\n\n  let ticking = false;\n\n  const clamp = (value, min, max) =>\n    Math.min(Math.max(value, min), max);\n\n  const render = () => {\n    ticking = false;\n\n    if (reduce.matches) {\n      path.style.strokeDashoffset = 0;\n      return;\n    }\n\n    const rect = root.getBoundingClientRect();\n    const start = innerHeight * .88;\n    const end = innerHeight * .24;\n\n    const progress = clamp(\n      (start - rect.top) \/ (start - end),\n      0,\n      1\n    );\n\n    path.style.strokeDashoffset = length * (1 - progress);\n  };\n\n  const request = () => {\n    if (ticking) return;\n    ticking = true;\n    requestAnimationFrame(render);\n  };\n\n  addEventListener(\"scroll\", request, { passive: true });\n  addEventListener(\"resize\", request);\n\n  render();\n})();\n<\/script>\n\n\n\n<section data-consonant-block-name=\"core\/html\" data-consonant-block-path=\"4\" data-consonant-block=\"post-132-core-html-4\" data-consonant-page=\"132\" data-consonant-source=\"post-content\" class=\"ee-spa-living\" aria-labelledby=\"ee-spa-living-title\">\n  <div class=\"ee-spa-living__grid\" aria-hidden=\"true\"><\/div>\n\n  <div class=\"ee-spa-living__shell\">\n    <div class=\"ee-spa-living__copy\">\n      <span class=\"ee-spa-living__eyebrow\">\n        05 \/ OUTDOOR-LIVING PROJECTS\n      <\/span>\n\n      <h2 id=\"ee-spa-living-title\">\n        Remodels &amp;\n        <span>Outdoor-Living Projects.<\/span>\n      <\/h2>\n\n      <p>\n        Hot tubs and spas are often added as part of a larger backyard, patio,\n        or remodeling project.\n      <\/p>\n\n      <p>\n        When that is the case, electrical planning may also involve lighting,\n        receptacles, controls, other outdoor equipment, or future loads in the\n        same area.\n      <\/p>\n\n      <strong class=\"ee-spa-living__conclusion\">\n        Planning those needs together can produce a cleaner result than adding\n        each electrical feature separately.\n      <\/strong>\n    <\/div>\n\n    <div class=\"ee-spa-living__visual\">\n      <figure class=\"ee-spa-living__image\">\n        <svg width=\"100%\" height=\"100%\" viewBox=\"0 0 900 700\" preserveAspectRatio=\"xMidYMid slice\" role=\"img\" aria-label=\"Technical outdoor-living plan showing coordinated electrical features around spa equipment\">\n          <defs>\n            <linearGradient id=\"eeSpaLivingField\" x1=\"0\" y1=\"1\" x2=\"1\" y2=\"0\">\n              <stop offset=\"0\" stop-color=\"#020817\"><\/stop>\n              <stop offset=\".58\" stop-color=\"#0b3154\"><\/stop>\n              <stop offset=\"1\" stop-color=\"#071426\"><\/stop>\n            <\/linearGradient>\n            <radialGradient id=\"eeSpaLivingGlow\" cx=\"66%\" cy=\"32%\" r=\"62%\">\n              <stop offset=\"0\" stop-color=\"#1494ff\" stop-opacity=\".3\"><\/stop>\n              <stop offset=\"1\" stop-color=\"#1494ff\" stop-opacity=\"0\"><\/stop>\n            <\/radialGradient>\n          <\/defs>\n          <rect width=\"900\" height=\"700\" fill=\"url(#eeSpaLivingField)\"><\/rect>\n          <rect width=\"900\" height=\"700\" fill=\"url(#eeSpaLivingGlow)\"><\/rect>\n          <g fill=\"none\" stroke=\"#ffffff\" stroke-opacity=\".1\" stroke-width=\"2\">\n            <path d=\"M95 105 H805 V595 H95 Z\"><\/path>\n            <path d=\"M95 255 H805\"><\/path>\n            <path d=\"M320 105 V595\"><\/path>\n          <\/g>\n          <g fill=\"none\" stroke=\"#1494ff\" stroke-width=\"4\">\n            <rect x=\"405\" y=\"295\" width=\"295\" height=\"205\" rx=\"52\"><\/rect>\n            <path d=\"M552 295 V500\"><\/path>\n            <path d=\"M405 397 H700\"><\/path>\n          <\/g>\n          <g fill=\"none\" stroke=\"#57def4\" stroke-width=\"3\" stroke-opacity=\".8\">\n            <path d=\"M145 518 C240 518 245 405 344 405 H405\"><\/path>\n            <path d=\"M700 397 H778 V205\"><\/path>\n          <\/g>\n          <g fill=\"#f9b000\">\n            <circle cx=\"145\" cy=\"518\" r=\"8\"><\/circle>\n            <circle cx=\"344\" cy=\"405\" r=\"8\"><\/circle>\n            <circle cx=\"405\" cy=\"405\" r=\"8\"><\/circle>\n            <circle cx=\"778\" cy=\"205\" r=\"8\"><\/circle>\n          <\/g>\n          <g fill=\"none\" stroke=\"#f9b000\" stroke-width=\"2\" stroke-opacity=\".46\">\n            <path d=\"M150 145 h105 v68 h-105 z\"><\/path>\n            <path d=\"M715 120 h95 v62 h-95 z\"><\/path>\n            <path d=\"M130 305 h125\"><\/path>\n            <path d=\"M130 345 h92\"><\/path>\n          <\/g>\n        <\/svg>\n      <\/figure>\n\n      <div class=\"ee-spa-living__ledger\" data-spa-ledger>\n        <div class=\"ee-spa-living__row\">\n          <span>01<\/span>\n          <strong>Lighting<\/strong>\n          <i><\/i>\n        <\/div>\n\n        <div class=\"ee-spa-living__row\">\n          <span>02<\/span>\n          <strong>Receptacles<\/strong>\n          <i><\/i>\n        <\/div>\n\n        <div class=\"ee-spa-living__row\">\n          <span>03<\/span>\n          <strong>Controls<\/strong>\n          <i><\/i>\n        <\/div>\n\n        <div class=\"ee-spa-living__row\">\n          <span>04<\/span>\n          <strong>Future Loads<\/strong>\n          <i><\/i>\n        <\/div>\n      <\/div>\n\n      <div class=\"ee-spa-living__mark\" aria-hidden=\"true\">\n        ONE AREA\n        <strong>ONE PLAN<\/strong>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"ee-spa-living__handoff\" aria-hidden=\"true\">\n    <svg viewBox=\"0 0 100 100\" preserveAspectRatio=\"none\">\n      <path class=\"ee-spa-divider__field\" d=\"M0 62 L36 62 L51 22 L100 62 L100 100 L0 100 Z\"><\/path>\n      <path class=\"ee-spa-divider__blue\" d=\"M100 27 L100 55 L41 45 Z\"><\/path>\n      <path class=\"ee-spa-divider__yellow\" d=\"M0 54 L0 72 L65 58 Z\"><\/path>\n    <\/svg>\n  <\/div>\n<\/section>\n\n<style data-wp-block-html=\"css\">\n.ee-spa-living,\n.ee-spa-living * {\n  box-sizing: border-box;\n}\n\n.ee-spa-living {\n  position: relative;\n  isolation: isolate;\n  overflow: hidden;\n  padding: clamp(88px, 9vw, 128px) 20px 165px;\n  background:\n    radial-gradient(circle at 84% 20%, rgba(20, 148, 255, .16), transparent 28rem),\n    #020817;\n  color: #fff;\n  font-family: Arial, Helvetica, sans-serif;\n}\n\n.ee-spa-living__grid {\n  position: absolute;\n  inset: 0;\n  z-index: -1;\n  opacity: .15;\n  background-image:\n    linear-gradient(rgba(20, 148, 255, .13) 1px, transparent 1px),\n    linear-gradient(90deg, rgba(20, 148, 255, .09) 1px, transparent 1px);\n  background-size: 68px 68px;\n  mask-image: linear-gradient(90deg, #000, transparent 50%);\n}\n\n.ee-spa-living__shell {\n  display: grid;\n  grid-template-columns: minmax(390px, .78fr) minmax(0, 1.22fr);\n  gap: clamp(50px, 7vw, 105px);\n  align-items: center;\n  width: min(1240px, 100%);\n  margin: 0 auto;\n}\n\n.ee-spa-living__eyebrow {\n  display: block;\n  margin-bottom: 15px;\n  color: #f9b000;\n  font-size: 9px;\n  font-weight: 900;\n  letter-spacing: .16em;\n}\n\n.ee-spa-living h2 {\n  margin: 0;\n  font-size: clamp(46px, 5.7vw, 80px);\n  font-weight: 900;\n  line-height: .91;\n  letter-spacing: -.055em;\n  text-transform: uppercase;\n}\n\n.ee-spa-living h2 span {\n  display: block;\n  color: #1494ff;\n}\n\n.ee-spa-living__copy p {\n  margin: 24px 0 0;\n  color: rgba(235, 243, 255, .7);\n  font-size: 15px;\n  font-weight: 600;\n  line-height: 1.72;\n}\n\n.ee-spa-living__conclusion {\n  display: block;\n  margin-top: 31px;\n  padding: 22px 23px;\n  background: #eef5fa;\n  color: #071426;\n  font-size: 16px;\n  line-height: 1.6;\n  clip-path: polygon(0 0, 92% 0, 100% 28%, 100% 100%, 8% 100%, 0 74%);\n  filter:\n    drop-shadow(9px 9px 0 rgba(20, 148, 255, .6))\n    drop-shadow(-7px -6px 0 rgba(249, 176, 0, .42));\n}\n\n.ee-spa-living__visual {\n  position: relative;\n  min-height: 650px;\n}\n\n.ee-spa-living__image {\n  position: absolute;\n  inset: 0 0 12% 12%;\n  margin: 0;\n  overflow: hidden;\n  clip-path: polygon(9% 0, 100% 0, 100% 86%, 91% 100%, 0 100%, 0 12%);\n  filter:\n    drop-shadow(-12px 14px 0 rgba(20, 148, 255, .52))\n    drop-shadow(11px -8px 0 rgba(249, 176, 0, .34))\n    drop-shadow(0 28px 48px rgba(0, 0, 0, .42));\n}\n\n.ee-spa-living__image::after {\n  content: \"\";\n  position: absolute;\n  inset: 0;\n  background: linear-gradient(0deg, rgba(2, 8, 23, .55), transparent 48%);\n}\n\n.ee-spa-living__image img {\n  width: 100%;\n  height: 100%;\n  display: block;\n  object-fit: cover;\n}\n\n.ee-spa-living__ledger {\n  position: absolute;\n  z-index: 5;\n  left: 0;\n  bottom: 0;\n  width: min(440px, 74%);\n  background: rgba(7, 20, 38, .96);\n  clip-path: polygon(0 0, 92% 0, 100% 13%, 100% 100%, 8% 100%, 0 89%);\n  filter:\n    drop-shadow(10px 11px 0 rgba(20, 148, 255, .52))\n    drop-shadow(-7px -6px 0 rgba(249, 176, 0, .42));\n}\n\n.ee-spa-living__row {\n  display: grid;\n  grid-template-columns: 38px 1fr 70px;\n  gap: 11px;\n  align-items: center;\n  min-height: 58px;\n  padding: 0 20px;\n  border-bottom: 1px solid rgba(255, 255, 255, .1);\n  opacity: .36;\n  transform: translateX(-16px);\n}\n\n.ee-spa-living__row:last-child {\n  border-bottom: 0;\n}\n\n.ee-spa-living__row span {\n  color: #f9b000;\n  font-size: 8px;\n  font-weight: 900;\n}\n\n.ee-spa-living__row strong {\n  font-size: 13px;\n  font-weight: 900;\n  text-transform: uppercase;\n}\n\n.ee-spa-living__row i {\n  display: block;\n  height: 2px;\n  background: linear-gradient(90deg, #1494ff, transparent);\n}\n\n.ee-spa-living__mark {\n  position: absolute;\n  z-index: 4;\n  top: 18px;\n  left: 0;\n  display: grid;\n  color: rgba(255, 255, 255, .48);\n  font-size: 8px;\n  font-weight: 900;\n  letter-spacing: .16em;\n}\n\n.ee-spa-living__mark strong {\n  margin-top: 2px;\n  color: #f9b000;\n  font-size: 22px;\n  letter-spacing: -.02em;\n}\n\n.ee-spa-living__handoff {\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: -1px;\n  height: 118px;\n  background: #f5f9ff;\n  clip-path: polygon(0 30%, 28% 58%, 51% 35%, 72% 65%, 100% 25%, 100% 100%, 0 100%);\n}\n\n.ee-spa-living__handoff::before {\n  content: \"\";\n  position: absolute;\n  top: 37%;\n  left: -3%;\n  width: 63%;\n  height: 7px;\n  background: #1494ff;\n  transform: rotate(3.4deg);\n}\n\n.ee-spa-living__handoff::after {\n  content: \"\";\n  position: absolute;\n  top: 33%;\n  right: -5%;\n  width: 51%;\n  height: 6px;\n  background: #f9b000;\n  transform: rotate(-4deg);\n}\n\n@media (max-width: 900px) {\n  .ee-spa-living__shell {\n    grid-template-columns: 1fr;\n  }\n\n  .ee-spa-living__visual {\n    min-height: 570px;\n  }\n}\n\n@media (max-width: 560px) {\n  .ee-spa-living {\n    padding: 63px 13px 118px;\n  }\n\n  .ee-spa-living__visual {\n    min-height: 430px;\n  }\n\n  .ee-spa-living__ledger {\n    width: 88%;\n  }\n\n  .ee-spa-living h2 {\n    font-size: clamp(38px, 11vw, 52px);\n  }\n}\n\n.ee-spa-living--media-missing .ee-spa-living__image{background:radial-gradient(circle at 68% 28%,rgba(20,148,255,.24),transparent 30%),linear-gradient(145deg,#0b3154,#020817)}\n.ee-spa-living--media-missing .ee-spa-living__image::before{content:\"OUTDOOR LIVING \/ MEDIA PENDING\";position:absolute;left:50%;top:50%;z-index:2;transform:translate(-50%,-50%);color:rgba(255,255,255,.16);font-size:clamp(22px,3.2vw,46px);font-weight:900;letter-spacing:-.04em;white-space:nowrap}\n\/* Spa divider 05 \u2014 crossed outdoor integration *\/\n.ee-spa-living{padding-bottom:clamp(180px,15vw,215px)}\n.ee-spa-living__handoff{left:-3%;right:-3%;bottom:-1px;height:clamp(160px,13.5vw,208px);overflow:hidden;pointer-events:none;background:transparent;clip-path:none}\n.ee-spa-living__handoff::before,.ee-spa-living__handoff::after{content:none}\n.ee-spa-living__handoff svg{display:block;width:100%;height:100%;overflow:hidden}\n.ee-spa-living__handoff .ee-spa-divider__field{fill:#f5f9ff}\n.ee-spa-living__handoff .ee-spa-divider__blue{fill:#1494ff;filter:drop-shadow(0 8px 13px rgba(20,148,255,.17))}\n.ee-spa-living__handoff .ee-spa-divider__yellow{fill:#f9b000;filter:drop-shadow(0 5px 9px rgba(249,176,0,.14))}\n.ee-spa-living__handoff .ee-spa-divider__cyan{fill:#57def4}\n.ee-spa-living__handoff .ee-spa-divider__blue{opacity:.74}\n.ee-spa-living__handoff .ee-spa-divider__yellow{opacity:.95}\n@media(max-width:560px){.ee-spa-living__handoff{height:92px}}\n<\/style>\n\n<script data-wp-block-html=\"js\">\n(() => {\n  const ledger = document.querySelector(\"[data-spa-ledger]\");\n  if (!ledger || ledger.dataset.ready === \"true\") return;\n\n  ledger.dataset.ready = \"true\";\n\n  const rows = [...ledger.querySelectorAll(\".ee-spa-living__row\")];\n  const visual = ledger.closest(\".ee-spa-living__visual\");\n  const image = visual?.querySelector(\".ee-spa-living__image img\");\n  if (image) image.addEventListener(\"error\", () => { image.style.display = \"none\"; ledger.closest(\".ee-spa-living\")?.classList.add(\"ee-spa-living--media-missing\"); }, { once: true });\n  const reduce = matchMedia(\"(prefers-reduced-motion: reduce)\");\n\n  if (reduce.matches) {\n    rows.forEach(row => {\n      row.style.opacity = \"1\";\n      row.style.transform = \"none\";\n    });\n\n    return;\n  }\n\n  const observer = new IntersectionObserver(\n    entries => {\n      entries.forEach(entry => {\n        if (!entry.isIntersecting) return;\n\n        rows.forEach((row, index) => {\n          row.animate(\n            [\n              { opacity: .36, transform: \"translateX(-16px)\" },\n              { opacity: 1, transform: \"none\" }\n            ],\n            {\n              duration: 520,\n              delay: index * 105,\n              easing: \"cubic-bezier(.2,.75,.25,1)\",\n              fill: \"both\"\n            }\n          );\n        });\n\n        observer.disconnect();\n      });\n    },\n    { threshold: .25 }\n  );\n\n  observer.observe(ledger);\n})();\n<\/script>\n\n\n\n<section data-consonant-block-name=\"core\/html\" data-consonant-block-path=\"5\" data-consonant-block=\"post-132-core-html-5\" data-consonant-page=\"132\" data-consonant-source=\"post-content\" class=\"ee-spa-final\" aria-labelledby=\"ee-spa-final-title\">\n  <div class=\"ee-spa-final__grid\" aria-hidden=\"true\"><\/div>\n  <div class=\"ee-spa-final__ghost\" aria-hidden=\"true\">TUCSON<\/div>\n\n  <div class=\"ee-spa-final__shell\">\n    <div class=\"ee-spa-final__index\">\n      <span>06<\/span>\n      <span>START HERE<\/span>\n    <\/div>\n\n    <div class=\"ee-spa-final__content\">\n      <span class=\"ee-spa-final__eyebrow\">\n        TUCSON-AREA HOT TUB &amp; SPA ELECTRICAL\n      <\/span>\n\n      <h2 id=\"ee-spa-final-title\">\n        Plan the Electrical Side\n        <span>Before Installation Day.<\/span>\n      <\/h2>\n\n      <p>\n        Electrical Expert LLC serves Tucson, Marana, Oro Valley, and\n        SaddleBrooke.\n      <\/p>\n\n      <div class=\"ee-spa-final__equipment\">\n        <span>HELP US SEE THE EQUIPMENT<\/span>\n\n        <strong>\n          Already selected your spa?\n        <\/strong>\n\n        <p>\n          If you already have the spa or equipment selected, include the\n          manufacturer and model information when requesting a quote if\n          possible.\n        <\/p>\n      <\/div>\n\n      <div class=\"ee-spa-final__actions\">\n        <a class=\"ee-spa-final__primary\" href=\"\/contact\/\">\n          Request Hot Tub \/ Spa Electrical Service\n          <span aria-hidden=\"true\">\u2197<\/span>\n        <\/a>\n\n        <a class=\"ee-spa-final__phone\" href=\"tel:+15204058755\">\n          Call (520) 405-8755\n        <\/a>\n      <\/div>\n    <\/div>\n\n    <aside class=\"ee-spa-final__areas\">\n      <span class=\"ee-spa-final__areas-label\">SERVING<\/span>\n\n      <ol>\n        <li>\n          <b>01<\/b>\n          <strong>Tucson<\/strong>\n        <\/li>\n\n        <li>\n          <b>02<\/b>\n          <strong>Marana<\/strong>\n        <\/li>\n\n        <li>\n          <b>03<\/b>\n          <strong>Oro Valley<\/strong>\n        <\/li>\n\n        <li>\n          <b>04<\/b>\n          <strong>SaddleBrooke<\/strong>\n        <\/li>\n      <\/ol>\n    <\/aside>\n  <\/div>\n\n  <div class=\"ee-spa-final__rule\" aria-hidden=\"true\">\n    <span><\/span>\n    <span><\/span>\n    <span><\/span>\n  <\/div>\n<\/section>\n\n<style data-wp-block-html=\"css\">\n.ee-spa-final,\n.ee-spa-final * {\n  box-sizing: border-box;\n}\n\n.ee-spa-final {\n  position: relative;\n  isolation: isolate;\n  overflow: hidden;\n  padding: clamp(88px, 9vw, 132px) 20px clamp(100px, 10vw, 150px);\n  background:\n    radial-gradient(circle at 77% 13%, rgba(20, 148, 255, .12), transparent 29rem),\n    linear-gradient(#f5f9ff, #e8eef3);\n  color: #071426;\n  font-family: Arial, Helvetica, sans-serif;\n}\n\n.ee-spa-final__grid {\n  position: absolute;\n  inset: 0;\n  z-index: -2;\n  opacity: .14;\n  background-image:\n    linear-gradient(rgba(20, 148, 255, .12) 1px, transparent 1px),\n    linear-gradient(90deg, rgba(20, 148, 255, .08) 1px, transparent 1px);\n  background-size: 70px 70px;\n  mask-image: linear-gradient(90deg, transparent, #000 22%, #000 77%, transparent);\n}\n\n.ee-spa-final__ghost {\n  position: absolute;\n  z-index: -1;\n  left: 50%;\n  bottom: -.13em;\n  transform: translateX(-50%);\n  color: transparent;\n  -webkit-text-stroke: 1px rgba(7, 20, 38, .065);\n  font-size: clamp(130px, 25vw, 430px);\n  font-weight: 900;\n  line-height: .72;\n  letter-spacing: -.09em;\n  white-space: nowrap;\n  user-select: none;\n}\n\n.ee-spa-final__shell {\n  position: relative;\n  z-index: 2;\n  display: grid;\n  grid-template-columns: 105px minmax(0, 1fr) minmax(240px, .4fr);\n  gap: clamp(24px, 4vw, 58px);\n  width: min(1180px, 100%);\n  margin: 0 auto;\n}\n\n.ee-spa-final__index {\n  display: grid;\n  gap: 8px;\n  align-self: start;\n  padding-top: 8px;\n  border-top: 3px solid #1494ff;\n}\n\n.ee-spa-final__index span:first-child {\n  color: #071426;\n  font-size: 30px;\n  font-weight: 900;\n}\n\n.ee-spa-final__index span:last-child {\n  color: #607487;\n  font-size: 8px;\n  font-weight: 900;\n  letter-spacing: .15em;\n}\n\n.ee-spa-final__eyebrow {\n  display: block;\n  margin-bottom: 14px;\n  color: #0b6fb7;\n  font-size: 9px;\n  font-weight: 900;\n  letter-spacing: .16em;\n}\n\n.ee-spa-final h2 {\n  max-width: 850px;\n  margin: 0;\n  font-size: clamp(48px, 6vw, 84px);\n  font-weight: 900;\n  line-height: .9;\n  letter-spacing: -.055em;\n  text-transform: uppercase;\n}\n\n.ee-spa-final h2 span {\n  display: block;\n  color: #1494ff;\n}\n\n.ee-spa-final__content > p {\n  max-width: 670px;\n  margin: 25px 0 0;\n  color: #536b80;\n  font-size: clamp(16px, 1.25vw, 19px);\n  font-weight: 600;\n  line-height: 1.68;\n}\n\n.ee-spa-final__equipment {\n  max-width: 650px;\n  margin-top: 32px;\n  padding: 23px 25px;\n  background: #071426;\n  color: #fff;\n  clip-path: polygon(0 0, 93% 0, 100% 24%, 100% 100%, 8% 100%, 0 76%);\n  filter:\n    drop-shadow(10px 10px 0 rgba(20, 148, 255, .6))\n    drop-shadow(-8px -7px 0 rgba(249, 176, 0, .45));\n}\n\n.ee-spa-final__equipment > span,\n.ee-spa-final__equipment > strong {\n  display: block;\n}\n\n.ee-spa-final__equipment > span {\n  margin-bottom: 8px;\n  color: #f9b000;\n  font-size: 8px;\n  font-weight: 900;\n  letter-spacing: .14em;\n}\n\n.ee-spa-final__equipment > strong {\n  font-size: 21px;\n  font-weight: 900;\n}\n\n.ee-spa-final__equipment p {\n  margin: 10px 0 0;\n  color: rgba(255, 255, 255, .7);\n  font-size: 13px;\n  font-weight: 600;\n  line-height: 1.6;\n}\n\n.ee-spa-final__actions {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: 17px 25px;\n  margin-top: 32px;\n}\n\n.ee-spa-final__primary {\n  display: inline-flex;\n  align-items: center;\n  gap: 9px;\n  min-height: 50px;\n  padding: 0 20px;\n  background: #f9b000;\n  color: #071426 !important;\n  font-size: 12px;\n  font-weight: 900;\n  text-decoration: none !important;\n  clip-path: polygon(0 0, 90% 0, 100% 34%, 100% 100%, 7% 100%, 0 72%);\n  filter: drop-shadow(8px 8px 0 rgba(20, 148, 255, .5));\n}\n\n.ee-spa-final__phone {\n  position: relative;\n  color: #071426 !important;\n  font-size: 15px;\n  font-weight: 900;\n  text-decoration: none !important;\n}\n\n.ee-spa-final__phone::after {\n  content: \"\";\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: -6px;\n  height: 2px;\n  background: #1494ff;\n}\n\n.ee-spa-final__areas {\n  margin-top: clamp(53px, 7vw, 98px);\n  padding: 19px 0 0 18px;\n  border-top: 1px solid rgba(7, 20, 38, .17);\n  border-left: 3px solid #f9b000;\n}\n\n.ee-spa-final__areas-label {\n  display: block;\n  margin-bottom: 16px;\n  color: #0b6fb7;\n  font-size: 8px;\n  font-weight: 900;\n  letter-spacing: .15em;\n}\n\n.ee-spa-final__areas ol {\n  display: grid;\n  gap: 0;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n\n.ee-spa-final__areas li {\n  display: grid;\n  grid-template-columns: 30px 1fr;\n  gap: 7px;\n  align-items: center;\n  min-height: 47px;\n  border-bottom: 1px solid rgba(7, 20, 38, .12);\n}\n\n.ee-spa-final__areas b {\n  color: #1494ff;\n  font-size: 8px;\n  letter-spacing: .1em;\n}\n\n.ee-spa-final__areas strong {\n  font-size: 13px;\n  font-weight: 900;\n}\n\n.ee-spa-final__rule {\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: 23px;\n  display: grid;\n  grid-template-columns: 29% 31% 40%;\n  height: 3px;\n}\n\n.ee-spa-final__rule span:nth-child(1) {\n  background: #f9b000;\n}\n\n.ee-spa-final__rule span:nth-child(2) {\n  background: #1494ff;\n}\n\n.ee-spa-final__rule span:nth-child(3) {\n  background: rgba(7, 20, 38, .12);\n}\n\n@media (max-width: 900px) {\n  .ee-spa-final__shell {\n    grid-template-columns: 1fr;\n  }\n\n  .ee-spa-final__index {\n    width: 105px;\n  }\n\n  .ee-spa-final__areas {\n    max-width: 520px;\n    margin-top: 10px;\n  }\n\n  .ee-spa-final__ghost {\n    font-size: 35vw;\n  }\n}\n\n@media (max-width: 560px) {\n  .ee-spa-final {\n    padding: 66px 13px 100px;\n  }\n\n  .ee-spa-final h2 {\n    font-size: clamp(39px, 11vw, 54px);\n  }\n\n  .ee-spa-final__actions {\n    display: grid;\n  }\n\n  .ee-spa-final__primary {\n    justify-content: center;\n  }\n\n  .ee-spa-final__ghost {\n    font-size: 43vw;\n  }\n}\n\n\/* Service-page atmosphere: hot-tub-spa-electrical\/5. Organic light, one diagonal datum, and view-linked copy motion. *\/\n.ee-spa-final{\n background:\n  linear-gradient(117deg,transparent 0 48.9%,rgba(7,20,38,.055) 49%,transparent 49.18% 100%),\n  radial-gradient(ellipse 68% 46% at 88% 22%,rgba(20,148,255,.105),transparent 72%),\n  radial-gradient(ellipse 58% 50% at 10% 74%,rgba(249,176,0,.09),transparent 74%),\n  linear-gradient(154deg,#f8fafc 0%,#eaf0f4 54%,#f8f3e8 118%);\n background-size:100% 100%,128% 128%,132% 132%,100% 100%;\n animation:ee-spa-final-ambient-drift 22s ease-in-out infinite alternate;\n box-shadow:inset 0 72px 110px -115px rgba(7,20,38,.28),inset 0 -82px 110px -118px rgba(7,20,38,.22);\n}\n@keyframes ee-spa-final-ambient-drift{\n 0%{background-position:0 0,0% 14%,100% 78%,0 0;}\n 100%{background-position:0 0,13% 27%,86% 59%,0 0;}\n}\n@supports(animation-timeline:view()){\n .ee-spa-final h2,.ee-spa-final h3,.ee-spa-final p{\n  animation:ee-spa-final-copy-arrive linear both;\n  animation-timeline:view();\n  animation-range:entry 5% cover 27%;\n }\n @keyframes ee-spa-final-copy-arrive{\n  from{opacity:.18;translate:0 22px;filter:blur(3px);}\n  to{opacity:1;translate:0 0;filter:blur(0);}\n }\n}\n\n@media(prefers-reduced-motion:reduce){\n .ee-spa-final{animation:none;}\n .ee-spa-final h2,.ee-spa-final h3,.ee-spa-final p{animation:none;translate:none;filter:none;}\n}\n<\/style>\n\n<script data-wp-block-html=\"js\">\n(() => {\n  const root = document.querySelector(\".ee-spa-final\");\n  if (!root || root.dataset.ready === \"true\") return;\n\n  root.dataset.ready = \"true\";\n\n  const reduce = matchMedia(\"(prefers-reduced-motion: reduce)\");\n  if (reduce.matches) return;\n\n  const targets = [\n    root.querySelector(\".ee-spa-final__index\"),\n    root.querySelector(\".ee-spa-final__content\"),\n    root.querySelector(\".ee-spa-final__areas\")\n  ].filter(Boolean);\n\n  const observer = new IntersectionObserver(\n    entries => {\n      entries.forEach(entry => {\n        if (!entry.isIntersecting) return;\n\n        targets.forEach((element, index) => {\n          element.animate(\n            [\n              {\n                opacity: 0,\n                transform: \"translateY(26px)\",\n                filter: \"blur(5px)\"\n              },\n              {\n                opacity: 1,\n                transform: \"none\",\n                filter: \"blur(0)\"\n              }\n            ],\n            {\n              duration: 700,\n              delay: index * 100,\n              easing: \"cubic-bezier(.2,.75,.25,1)\",\n              fill: \"both\"\n            }\n          );\n        });\n\n        observer.disconnect();\n      });\n    },\n    { threshold: .16 }\n  );\n\n  observer.observe(root);\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Tucson Marana Oro Valley SaddleBrooke HOT TUB \/ SPA \/ JACUZZI ELECTRICAL Hot Tub &amp; Spa Electrical Planned Before the Water Goes In. Hot tubs, spas, and Jacuzzi-style equipment add a substantial electrical load to a property and require dedicated electrical planning. Request Spa Electrical Service \u2197 (520) 405-8755 PLANNED LOAD \/ 01 Outdoor equipment [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-132","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/electricalexpert520.com\/index.php\/wp-json\/wp\/v2\/pages\/132","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/electricalexpert520.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/electricalexpert520.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/electricalexpert520.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/electricalexpert520.com\/index.php\/wp-json\/wp\/v2\/comments?post=132"}],"version-history":[{"count":0,"href":"https:\/\/electricalexpert520.com\/index.php\/wp-json\/wp\/v2\/pages\/132\/revisions"}],"wp:attachment":[{"href":"https:\/\/electricalexpert520.com\/index.php\/wp-json\/wp\/v2\/media?parent=132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}