.elementor-6626 .elementor-element.elementor-element-f53392b{--display:flex;--min-height:90vh;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-6626 .elementor-element.elementor-element-f53392b:not(.elementor-motion-effects-element-type-background), .elementor-6626 .elementor-element.elementor-element-f53392b > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://abostonplumber.com/wp-content/uploads/2026/03/bg-header.png");background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-6626 .elementor-element.elementor-element-6211401{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:20px 20px;--row-gap:20px;--column-gap:20px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );line-height:var( --e-global-typography-primary-line-height );color:var( --e-global-color-primary );}.elementor-6626 .elementor-element.elementor-element-bf440dc{text-align:center;}.elementor-6626 .elementor-element.elementor-element-bf440dc .elementor-heading-title{font-family:"Inter", Sans-serif;font-size:37.5px;font-weight:800;line-height:46.25px;color:var( --e-global-color-55cd9f1 );}.elementor-6626 .elementor-element.elementor-element-29b84a9{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;}.elementor-widget-button .elementor-button{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );line-height:var( --e-global-typography-accent-line-height );background-color:var( --e-global-color-accent );}.elementor-6626 .elementor-element.elementor-element-2ce8cd3 .elementor-button{font-family:"Inter", Sans-serif;font-size:15px;font-weight:500;line-height:21.09px;fill:var( --e-global-color-primary );color:var( --e-global-color-primary );background-color:#FFFFFFA8;border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-primary );border-radius:10px 10px 10px 10px;padding:15px 20px 15px 20px;}.elementor-6626 .elementor-element.elementor-element-824b5df .elementor-button{font-family:"Inter", Sans-serif;font-size:15px;font-weight:500;line-height:21.09px;fill:var( --e-global-color-9d26bf2 );color:var( --e-global-color-9d26bf2 );background-color:var( --e-global-color-primary );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-primary );border-radius:10px 10px 10px 10px;padding:15px 20px 15px 20px;}.elementor-6626 .elementor-element.elementor-element-824b5df.elementor-element{--flex-grow:0;--flex-shrink:0;}.elementor-6626 .elementor-element.elementor-element-7f9473d{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:20px 20px;--row-gap:20px;--column-gap:20px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6626 .elementor-element.elementor-element-3558d15{text-align:center;}.elementor-6626 .elementor-element.elementor-element-3558d15 .elementor-heading-title{font-family:"Inter", Sans-serif;font-size:37.5px;font-weight:800;line-height:46.25px;color:var( --e-global-color-55cd9f1 );}.elementor-6626 .elementor-element.elementor-element-a43d4a4{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;}.elementor-6626 .elementor-element.elementor-element-0c0cc44 .elementor-button{font-family:"Inter", Sans-serif;font-size:15px;font-weight:500;line-height:21.09px;fill:#D32F2F;color:#D32F2F;background-color:#FFFFFFA8;border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-primary );border-radius:10px 10px 10px 10px;padding:15px 20px 15px 20px;}.elementor-6626 .elementor-element.elementor-element-8cd098f .elementor-button{font-family:"Inter", Sans-serif;font-size:15px;font-weight:500;line-height:21.09px;fill:var( --e-global-color-9d26bf2 );color:var( --e-global-color-9d26bf2 );background-color:var( --e-global-color-primary );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-primary );border-radius:10px 10px 10px 10px;padding:15px 20px 15px 20px;}.elementor-6626 .elementor-element.elementor-element-8cd098f.elementor-element{--flex-grow:0;--flex-shrink:0;}.elementor-6626 .elementor-element.elementor-element-be27c91{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:20px 20px;--row-gap:20px;--column-gap:20px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6626 .elementor-element.elementor-element-c9969d8{text-align:center;}.elementor-6626 .elementor-element.elementor-element-c9969d8 .elementor-heading-title{font-family:"Inter", Sans-serif;font-size:37.5px;font-weight:800;line-height:46.25px;color:var( --e-global-color-55cd9f1 );}.elementor-6626 .elementor-element.elementor-element-d9a9ffd{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;}.elementor-6626 .elementor-element.elementor-element-c69cc2a .elementor-button{font-family:"Inter", Sans-serif;font-size:15px;font-weight:500;line-height:21.09px;fill:#D32F2F;color:#D32F2F;background-color:#FFFFFFA8;border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-primary );border-radius:10px 10px 10px 10px;padding:15px 20px 15px 20px;}.elementor-6626 .elementor-element.elementor-element-dc4b3d0 .elementor-button{font-family:"Inter", Sans-serif;font-size:15px;font-weight:500;line-height:21.09px;fill:var( --e-global-color-9d26bf2 );color:var( --e-global-color-9d26bf2 );background-color:var( --e-global-color-primary );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-primary );border-radius:10px 10px 10px 10px;padding:15px 20px 15px 20px;}.elementor-6626 .elementor-element.elementor-element-dc4b3d0.elementor-element{--flex-grow:0;--flex-shrink:0;}@media(min-width:1025px){.elementor-6626 .elementor-element.elementor-element-f53392b:not(.elementor-motion-effects-element-type-background), .elementor-6626 .elementor-element.elementor-element-f53392b > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-attachment:fixed;}}@media(max-width:1024px){.elementor-6626 .elementor-element.elementor-element-f53392b{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:40px 40px;--row-gap:40px;--column-gap:40px;}.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );}.elementor-6626 .elementor-element.elementor-element-bf440dc .elementor-heading-title{font-size:35px;line-height:35px;}.elementor-widget-button .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-6626 .elementor-element.elementor-element-3558d15 .elementor-heading-title{font-size:35px;line-height:35px;}.elementor-6626 .elementor-element.elementor-element-c9969d8 .elementor-heading-title{font-size:35px;line-height:35px;}}@media(max-width:767px){.elementor-6626 .elementor-element.elementor-element-f53392b{--min-height:100vh;--padding-top:7em;--padding-bottom:05em;--padding-left:0em;--padding-right:0em;}.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );}.elementor-6626 .elementor-element.elementor-element-bf440dc .elementor-heading-title{font-size:30px;line-height:30px;}.elementor-widget-button .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-6626 .elementor-element.elementor-element-3558d15 .elementor-heading-title{font-size:30px;line-height:30px;}.elementor-6626 .elementor-element.elementor-element-c9969d8 .elementor-heading-title{font-size:30px;line-height:30px;}}/* Start custom CSS for container, class: .elementor-element-6211401 */:root {
  --brand-red: #b3231f;
  --brand-red-deep: #8f1b18;
  --glow-red: rgba(226, 60, 60, 0.6);
  --glow-white: rgba(255, 255, 255, 0.55);
}

/* =========================================
   VAR-1 BUTTONS
========================================= */

.var-1 a.elementor-button.white-btn,
.var-1 a.elementor-button.red-btn {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 8px;
  border: 1px solid transparent;
  transition:
    transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1),
    box-shadow 0.3s ease,
    color 0.35s ease 0.1s;
}

/* Keep button content above effects */
.var-1 a.elementor-button.white-btn .elementor-button-content-wrapper,
.var-1 a.elementor-button.red-btn .elementor-button-content-wrapper {
  position: relative;
  z-index: 2;
}

/* =========================================
   CONTINUOUS SWEEP / GLOW
========================================= */

.var-1 a.elementor-button.white-btn::before,
.var-1 a.elementor-button.red-btn::before {
  content: '';
  position: absolute;
  top: -30%;
  left: -35%;
  width: 35%;
  height: 160%;

  background: linear-gradient(
    90deg,
    transparent,
    var(--glow-color),
    transparent
  );

  filter: blur(9px);
  z-index: 1;
  pointer-events: none;

  animation: var1-sweep-lr 4.5s linear infinite;
}

@keyframes var1-sweep-lr {
  0% {
    left: -35%;
  }

  100% {
    left: 135%;
  }
}

/* =========================================
   HOVER FILL
========================================= */

.var-1 a.elementor-button.white-btn::after,
.var-1 a.elementor-button.red-btn::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;

  transform-origin: left center;
  transform: scaleX(0);

  transition:
    transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);

  z-index: 0;
  pointer-events: none;
}

.var-1 a.elementor-button.white-btn:hover::after,
.var-1 a.elementor-button.red-btn:hover::after {
  transform: scaleX(1);
}

/* =========================================
   WHITE BUTTON
========================================= */

.var-1 a.elementor-button.white-btn {
  --glow-color: var(--glow-red);

  background-color: #ffffff;
  color: var(--brand-red);

  border-color: rgba(179, 35, 31, 0.18);

  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.06);
}

.var-1 a.elementor-button.white-btn::after {
  background: var(--brand-red);
}

.var-1 a.elementor-button.white-btn:hover {
  color: #ffffff;

  transform: translateY(-2px);

  box-shadow:
    0 12px 28px -10px rgba(179, 35, 31, 0.5);
}

/* =========================================
   RED BUTTON
========================================= */

.var-1 a.elementor-button.red-btn {
  --glow-color: var(--glow-white);

  background-color: var(--brand-red);
  color: #ffffff;

  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.1);
}

.var-1 a.elementor-button.red-btn::after {
  background: var(--brand-red-deep);
}

.var-1 a.elementor-button.red-btn:hover {
  transform: translateY(-2px);

  box-shadow:
    0 12px 28px -10px rgba(0, 0, 0, 0.55);

  color: #ffffff !important;
}

/* Make text/icon stay above hover fill */
.var-1 a.elementor-button:hover .elementor-button-content-wrapper {
  position: relative;
  z-index: 2;
}

/* =========================================
   REDUCE MOTION
========================================= */

@media (prefers-reduced-motion: reduce) {
  .var-1 a.elementor-button.white-btn::before,
  .var-1 a.elementor-button.red-btn::before {
    animation: none;
  }

  .var-1 a.elementor-button.white-btn::after,
  .var-1 a.elementor-button.red-btn::after {
    transition: none;
  }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-7f9473d */:root {
  --brand-red: #b3231f;
  --brand-red-deep: #8f1b18;
}

/* =========================================
   VAR-2 BUTTONS
========================================= */

.var-2 a.elementor-button.white-btn,
.var-2 a.elementor-button.red-btn {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 8px;
  border: 1px solid transparent;
  transition:
    transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1),
    box-shadow 0.3s ease,
    color 0.35s ease 0.1s;
}

.var-2 a.elementor-button.white-btn .elementor-button-content-wrapper,
.var-2 a.elementor-button.red-btn .elementor-button-content-wrapper {
  position: relative;
  z-index: 1;
}

/* =========================================
   HOVER FILL — LEFT TO RIGHT
========================================= */

.var-2 a.elementor-button.white-btn::before,
.var-2 a.elementor-button.red-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: -1;
  pointer-events: none;
}

.var-2 a.elementor-button.white-btn:hover::before,
.var-2 a.elementor-button.red-btn:hover::before {
  transform: scaleX(1);
}

/* =========================================
   TRAVELING DOT
========================================= */

.var-2 a.elementor-button.white-btn::after,
.var-2 a.elementor-button.red-btn::after {
  content: '';
  position: absolute;

  width: 10px;
  height: 10px;

  border-radius: 50%;
  background-color: var(--dot-color);

  z-index: 0;
  pointer-events: none;

  left: 0%;
  top: 0%;

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

  animation: var2-glow-travel 5s linear infinite;

  transition: background-color 0.35s ease;
}

@keyframes var2-glow-travel {
  0% {
    left: 0%;
    top: 0%;
  }

  25% {
    left: 100%;
    top: 0%;
  }

  50% {
    left: 100%;
    top: 100%;
  }

  75% {
    left: 0%;
    top: 100%;
  }

  100% {
    left: 0%;
    top: 0%;
  }
}

/* =========================================
   WHITE BUTTON
========================================= */

.var-2 a.elementor-button.white-btn {
  --dot-color: var(--brand-red);

  background-color: #ffffff;
  color: var(--brand-red);

  border-color: rgba(179, 35, 31, 0.18);

  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.06);
}

.var-2 a.elementor-button.white-btn::before {
  background: var(--brand-red);
}

.var-2 a.elementor-button.white-btn:hover {
  --dot-color: #ffffff;

  color: #ffffff;

  transform: translateY(-2px);

  box-shadow:
    0 12px 28px -10px rgba(179, 35, 31, 0.5);
}

/* =========================================
   RED BUTTON
========================================= */

.var-2 a.elementor-button.red-btn {
  --dot-color: #ffffff;

  background-color: var(--brand-red);
  color: #ffffff;

  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.1);
}

.var-2 a.elementor-button.red-btn::before {
  background: #ffffff;
}

.var-2 a.elementor-button.red-btn:hover {
  --dot-color: var(--brand-red);

  color: var(--brand-red);

  transform: translateY(-2px);

  box-shadow:
    0 12px 28px -10px rgba(179, 35, 31, 0.35);
}

/* =========================================
   REDUCED MOTION
========================================= */

@media (prefers-reduced-motion: reduce) {
  .var-2 a.elementor-button.white-btn::after,
  .var-2 a.elementor-button.red-btn::after {
    animation: none;
  }

  .var-2 a.elementor-button.white-btn::before,
  .var-2 a.elementor-button.red-btn::before {
    transition: none;
  }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-be27c91 */:root {
  --brand-red: #b3231f;
  --brand-red-deep: #8f1b18;
}

/* =========================================
   VAR-3 BUTTONS
   Diagonal Double Swipe — No Glow
========================================= */

.var-3 a.elementor-button.white-btn,
.var-3 a.elementor-button.red-btn {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 8px;
  border: 1px solid transparent;

  transition:
    transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1),
    box-shadow 0.3s ease,
    color 0.35s ease;
}

/* Button content */
.var-3 a.elementor-button.white-btn .elementor-button-content-wrapper,
.var-3 a.elementor-button.red-btn .elementor-button-content-wrapper {
  position: relative;
  z-index: 5;
}

/* =========================================
   DIAGONAL SWIPES
========================================= */

.var-3 a.elementor-button.white-btn::before,
.var-3 a.elementor-button.red-btn::before {
  content: '';
  position: absolute;

  top: -100%;
  left: -80%;

  width: 45%;
  height: 300%;

  transform: rotate(25deg);

  background: var(--swipe-color);

  z-index: 1;
  pointer-events: none;

  animation: var3-diagonal-swipe 3.8s linear infinite;
}

/* Second diagonal swipe */
.var-3 a.elementor-button.white-btn::after,
.var-3 a.elementor-button.red-btn::after {
  content: '';
  position: absolute;

  top: -100%;
  left: -80%;

  width: 18%;
  height: 300%;

  transform: rotate(25deg);

  background: var(--swipe-color-2);

  z-index: 2;
  pointer-events: none;

  animation: var3-diagonal-swipe 3.8s linear infinite;

  animation-delay: 1.9s;
}

@keyframes var3-diagonal-swipe {
  0% {
    left: -80%;
  }

  100% {
    left: 180%;
  }
}

/* =========================================
   WHITE BUTTON
========================================= */

.var-3 a.elementor-button.white-btn {
  --swipe-color: rgba(179, 35, 31, 0.10);
  --swipe-color-2: rgba(179, 35, 31, 0.22);

  background-color: #ffffff;
  color: var(--brand-red);

  border-color: rgba(179, 35, 31, 0.18);

  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.06);
}

/* Hover becomes red */
.var-3 a.elementor-button.white-btn:hover {
  --swipe-color: rgba(255, 255, 255, 0.10);
  --swipe-color-2: rgba(255, 255, 255, 0.25);

  background-color: var(--brand-red);
  color: #ffffff;

  transform: translateY(-2px);

  box-shadow:
    0 12px 28px -10px rgba(179, 35, 31, 0.5);
}

/* =========================================
   RED BUTTON
========================================= */

.var-3 a.elementor-button.red-btn {
  --swipe-color: rgba(255, 255, 255, 0.10);
  --swipe-color-2: rgba(255, 255, 255, 0.25);

  background-color: var(--brand-red);
  color: #ffffff;

  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.1);
}

/* Hover becomes deep red */
.var-3 a.elementor-button.red-btn:hover {
  --swipe-color: rgba(255, 255, 255, 0.08);
  --swipe-color-2: rgba(255, 255, 255, 0.18);

  background-color: var(--brand-red-deep);
  color: #ffffff !important;

  transform: translateY(-2px);

  box-shadow:
    0 12px 28px -10px rgba(0, 0, 0, 0.45);
}

/* =========================================
   REDUCED MOTION
========================================= */

@media (prefers-reduced-motion: reduce) {
  .var-3 a.elementor-button.white-btn::before,
  .var-3 a.elementor-button.white-btn::after,
  .var-3 a.elementor-button.red-btn::before,
  .var-3 a.elementor-button.red-btn::after {
    animation: none;
  }
}/* End custom CSS */