@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&display=swap');

*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Outfit",sans-serif;color:#0b2447;background:#ffffff}a{text-decoration:none}.container{max-width:1420px}.top-strip{min-height:45px;padding-top:12px;padding-bottom:12px;color:#ffffff;background:#0b2447;border-radius:0 0 38px 38px;font-size:13px}.info-item{display:flex;align-items:center;gap:9px}.info-item svg{width:17px;fill:#2ec3ea}.info-icon{color:#2ec3ea;font-size:11px}.strip-divider{width:1px;height:18px;background:#49617f}.license{font-size:12px}.brand{display:flex;align-items:center;gap:10px;color:#0b2447;line-height:1}.brand-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#e9f9fd}.brand-icon svg{width:32px;fill:#2ec3ea}.brand strong{display:block;font-size:22px;font-weight:800;letter-spacing:.4px}.brand small{display:block;margin-top:5px;color:#fe7f2d;font-size:10px;font-weight:700;letter-spacing:1.1px}.navbar .nav-link{padding:9px 13px!important;color:#111827;font-size:15px;font-weight:500;border-radius:20px}.navbar .nav-link:hover,.navbar .nav-link.active{color:#ffffff;background:#2ec3ea}.phone-link{display:flex;align-items:center;gap:10px;color:#0b2447}.phone-link svg{width:29px;fill:#2ec3ea}.phone-link small,.phone-link strong{display:block}.phone-link small{font-size:10px;color:#65758b}.phone-link strong{font-size:18px}.nav-cta,.hero-cta{display:inline-flex;align-items:center;gap:16px;color:#ffffff;background:#fe7f2d;border-radius:36px;padding:10px 12px 10px 23px;font-weight:700;box-shadow:0 12px 24px #0b244733;transition:transform .25s ease,background .25s ease}.nav-cta span,.hero-cta span{display:grid;place-items:center;width:42px;height:42px;color:#0b2447;background:#ffffff;border-radius:50%;font-size:20px}.nav-cta:hover,.hero-cta:hover{color:#ffffff;background:#e96819;transform:translateY(-3px)}

.hero-section{position:relative;min-height:680px;margin:0 14px 20px;overflow:hidden;color:#ffffff;background:#214f8e;border-radius:46px}.hero-section:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#214f8e 0%,#2b64ad 55%,#376fb5 100%);z-index:0}
.hero-watermark{position:absolute;inset:0 49% 0 0;background:linear-gradient(#1b4d8ed9,#1b4d8ed9),url('../img/water-heater-repair-tools.webp') center/cover no-repeat;opacity:.68}.hero-container{position:relative;z-index:1}
.min-vh-row{min-height:680px;padding:55px 5vw}
.hero-copy{position:relative;z-index:4;padding-left:3vw}
.review-row{display:flex;align-items:center;gap:13px;margin-bottom:25px}
.google-g{display:grid;place-items:center;width:52px;height:52px;color:#4285f4;background:#ffffff;border-radius:50%;font-size:31px;font-weight:800}
.review-row>strong{font-size:40px}.review-row small,.stars{display:block}
.review-row small{font-size:13px}.stars{color:#ffc32d;font-size:19px;letter-spacing:2px}
.hero-copy h1{max-width:770px;margin:0;font-size:clamp(54px,5.8vw,45px);font-weight:800;line-height:1;letter-spacing:-3px}
.hero-intro{display:flex;gap:18px;align-items:flex-start;max-width:610px;margin:38px 0 26px 13vw}
.intro-line{flex:0 0 38px;height:3px;margin-top:12px;background:#ffffff}.hero-intro p{margin:0;font-size:20px;font-weight:500;line-height:1.45}
.hero-buttons{display:flex;align-items:center;flex-wrap:wrap;gap:24px;margin-left:18vw}
.hero-cta{background:#2ec3ea}
.hero-cta:hover{background:#14acd4}
.text-call{color:#ffffff;font-weight:600;border-bottom:1px solid #ffffff80}.hero-stats{display:flex;align-items:center;gap:34px;margin:115px 0 0 18vw}.hero-stats div{display:flex;flex-direction:column}
.hero-stats strong{font-size:34px}
.hero-stats span{font-size:15px}
.hero-stats i{width:1px;height:68px;background:#ffffff50}
.visual-column{position:absolute;right:0;top:0;width:52%;height:100%;z-index:2}
.main-circle{position:absolute;left:20%;top:15%;width:min(41vw,360px);aspect-ratio:1;border:4px solid #2ec3ea;border-radius:50%;overflow:hidden;background:#ffffff}
.main-circle img{width:100%;height:100%;object-fit:cover}
.technician{position:absolute;right:4%;bottom:0;width:min(34vw,420px);height:48%;object-fit:cover;object-position:52% center;filter:drop-shadow(-10px 10px 18px #09285455);border-radius:260px 260px 0 0}
.emergency-card{position:absolute;right:10%;top:20%;display:flex;flex-direction:column;align-items:center;width:158px;padding:20px 14px;color:#ffffff;background:#0b2c57;border-radius:23px;text-align:center;box-shadow:0 16px 30px #0b244744}
.emergency-card .siren{font-size:29px}
.emergency-card strong{font-size:20px}
.emergency-card small{margin-top:4px;line-height:1.45}
.emergency-card .arrow{margin-top:7px;font-size:20px}
.dot{position:absolute;display:block;border-radius:50%}
.dot-large{left:8%;bottom:28%;width:38px;height:38px;background:#2ec3ea}
.dot-small{left:5%;bottom:25%;width:16px;height:16px;background:#ffffff}
.small-service-image{position:absolute;left:2%;bottom:9%;width:260px;height:370px;padding:11px;border:4px solid #ffffff;border-radius:150px;overflow:hidden}
.small-service-image img{width:100%;height:100%;object-fit:cover;border-radius:140px}
.scroll-down{position:absolute;left:0;bottom:7%;display:flex;flex-direction:column;align-items:center;gap:10px;color:#ffffff;font-size:13px;z-index: 1111}.scroll-down i{display:grid;place-items:center;width:74px;height:74px;border:1px solid #ffffff55;border-radius:50%;font-size:37px;font-style:normal;animation:down 1.7s ease-in-out infinite}@keyframes down{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}

@media(max-width:1199.98px){.nav-actions{margin-top:16px}
.hero-copy h1{font-size:72px}.small-service-image{display:none}.hero-intro,.hero-buttons,.hero-stats{margin-left:0}.visual-column{opacity:.42;width:58%}.emergency-card{display:none}.hero-copy{width:70%}}
@media(max-width:991.98px){.navbar-collapse{padding:18px 0}.navbar .nav-link{margin-bottom:5px}.top-strip{border-radius:0}
.hero-section{min-height:auto;border-radius:30px}.min-vh-row{min-height:auto;padding:70px 30px 40px}.hero-copy{width:100%;padding-left:0}.visual-column{position:relative;width:100%;height:520px;margin-top:35px;opacity:1}.main-circle{left:7%;width:430px}.technician{right:4%;width:380px}.hero-stats{margin-top:55px}.scroll-down{display:none}}
@media(max-width:575.98px){.top-strip{font-size:11px}.license{display:none}.brand strong{font-size:17px}.brand small{font-size:8px}.hero-section{margin:0 7px 12px;border-radius:25px}.min-vh-row{padding:55px 20px 30px}.hero-copy h1{font-size:clamp(47px,15vw,64px);letter-spacing:-2px}.hero-intro{margin-top:28px}.hero-intro p{font-size:16px}.intro-line{display:none}.hero-buttons{align-items:flex-start;flex-direction:column}.hero-stats{gap:19px;margin-top:45px}.hero-stats strong{font-size:25px}.hero-stats span{font-size:12px}.visual-column{height:400px}.main-circle{left:0;top:5%;width:310px}.technician{right:-7%;width:280px;height:91%}.dot{display:none}}

.sl-about-section {
  padding: 55px 25px;
  background-color: #ffffff;
  font-family: Arial, Helvetica, sans-serif;
  overflow: hidden;
}

.sl-about-wrapper {
  position: relative;
  max-width: 1800px;
  min-height: 725px;
  margin: 0 auto;
  padding: 30px 55px 30px 30px;
  background-color: #f3f7fd;
  border-radius: 52px;
  overflow: hidden;
}

.sl-about-wrapper > .row {
  position: relative;
  z-index: 2;
}

/* Image composition */
.sl-about-images {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 665px;
  padding-right: 90px;
}

.sl-image {
  position: relative;
  overflow: hidden;
  background-color: #dce7f2;
}

.sl-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease;
}

.sl-image:hover img {
  transform: scale(1.05);
}

.sl-image-large {
  width: 48%;
  height: 665px;
  border-radius: 42px;
  z-index: 1;
}

.sl-image-small {
  width: 45%;
  height: 560px;
  margin-left: 30px;
  border-radius: 42px;
  z-index: 1;
}

/* Experience card */
.sl-experience-card {
  position: absolute;
  top: 50%;
  right: 8px;
  z-index: 3;
  width: 205px;
  min-height: 300px;
  padding: 35px 20px 30px;
  text-align: center;
  background-color: #ffffff;
  border-radius: 110px;
  transform: translateY(-50%);
  animation: slBadgeFloat 3.2s ease-in-out infinite;
}

.sl-experience-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 106px;
  height: 106px;
  margin: 0 auto 18px;
  background-color: #09244b;
  border-radius: 50%;
}

.sl-experience-icon svg {
  width: 62px;
  height: 62px;
  fill: none;
  stroke: #ffffff;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.sl-experience-number {
  color: #2fc1e8;
  font-size: 56px;
  font-weight: 800;
  line-height: 1;
}

.sl-experience-number sup {
  position: relative;
  top: -16px;
  margin-left: 2px;
  font-size: 24px;
}

.sl-experience-label {
  margin-top: 8px;
  color: #050505;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.08;
}

/* Text content */
.sl-about-content {
  position: relative;
  z-index: 3;
  max-width: 660px;
  padding-left: 15px;
}

.sl-section-label {
  display: block;
  margin-bottom: 13px;
  color: #27bde5;
  font-size: 17px;
  font-weight: 800;
  letter-spacing: 1px;
}

.sl-about-content h2 {
  margin: 0 0 24px;
  color: #020202;
  font-size: 35px;
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -1.5px;
}

.sl-about-content > p {
  max-width: 650px;
  margin-bottom: 28px;
  color: #666b73;
  font-size: 18px;
  line-height: 1.6;
}

.sl-features {
  max-width: 600px;
  margin-bottom: 38px;
}

.sl-feature {
  display: flex;
  align-items: center;
  color: #080b10;
  font-size: 17px;
  font-weight: 700;
}

.sl-check {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 19px;
  height: 19px;
  margin-right: 14px;
  color: #ffffff;
  background-color: #2fc1e8;
  border-radius: 50%;
  font-size: 12px;
  font-weight: 900;
}

.sl-about-button {
  display: inline-flex;
  align-items: center;
  gap: 20px;
  min-width: 212px;
  padding: 11px 12px 11px 45px;
  color: #ffffff;
  background-color: #2dbde3;
  border: 2px solid #2dbde3;
  border-radius: 50px;
  font-size: 17px;
  font-weight: 800;
  text-decoration: none;
  transition: 0.3s ease;
}

.sl-button-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 43px;
  height: 43px;
  margin-left: auto;
  color: #09244b;
  background-color: #ffffff;
  border-radius: 50%;
  font-size: 20px;
  transition: 0.3s ease;
}

.sl-about-button:hover {
  color: #ffffff;
  background-color: #09244b;
  border-color: #09244b;
  transform: translateY(-3px);
}

.sl-about-button:hover .sl-button-arrow {
  color: #ffffff;
  background-color: #2dbde3;
  transform: rotate(45deg);
}

/* Background decoration */
.sl-heater-decoration {
  position: absolute;
  right: -8px;
  bottom: -58px;
  width: 265px;
  height: 315px;
  z-index: 1;
  opacity: 0.65;
}

.sl-heater-handle {
  position: absolute;
  top: 0;
  left: 52px;
  width: 170px;
  height: 115px;
  border: 26px solid #cdeffc;
  border-bottom: 0;
  border-radius: 95px 95px 0 0;
}

.sl-heater-handle::after {
  content: "";
  position: absolute;
  top: 12px;
  left: 5px;
  width: 122px;
  height: 76px;
  border: 13px solid #f3f7fd;
  border-bottom: 0;
  border-radius: 70px 70px 0 0;
}

.sl-heater-body {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 255px;
  height: 205px;
  background-color: #d4effb;
  border-radius: 12px 12px 42px 42px;
}

.sl-heater-line {
  position: absolute;
  bottom: 0;
  width: 28px;
  border-radius: 7px 7px 0 0;
}

.sl-heater-line-one {
  left: -78px;
  height: 70px;
  background-color: #c7d6ed;
}

.sl-heater-line-two {
  left: -20px;
  height: 50px;
  background-color: #c0cde1;
}

.sl-heater-line-three {
  left: 30px;
  height: 70px;
  background-color: #d3e3f5;
}

.sl-heater-control {
  position: absolute;
  right: 31px;
  bottom: 17px;
  width: 66px;
  height: 66px;
  background-color: #26bde5;
  border: 2px solid #9fe6f7;
  border-radius: 50%;
}

@keyframes slBadgeFloat {
  0%,
  100% {
    transform: translateY(-50%);
  }

  50% {
    transform: translateY(calc(-50% - 10px));
  }
}

/* Responsive */
@media (max-width: 1399.98px) {
  .sl-about-wrapper {
    padding-right: 35px;
  }

  .sl-about-images {
    padding-right: 65px;
  }

  .sl-image-large {
    height: 600px;
  }

  .sl-image-small {
    height: 500px;
  }

  .sl-experience-card {
    right: -10px;
    width: 180px;
    min-height: 270px;
  }

  .sl-about-content h2 {
    font-size: 47px;
  }
}

@media (max-width: 1199.98px) {
  .sl-about-wrapper {
    min-height: auto;
  }

  .sl-about-images {
    min-height: 570px;
    padding-right: 55px;
  }

  .sl-image-large {
    height: 540px;
  }

  .sl-image-small {
    height: 455px;
    margin-left: 20px;
  }

  .sl-experience-card {
    width: 160px;
    min-height: 245px;
    padding: 28px 15px;
  }

  .sl-experience-icon {
    width: 85px;
    height: 85px;
  }

  .sl-experience-number {
    font-size: 46px;
  }

  .sl-about-content h2 {
    font-size: 41px;
  }
}

@media (max-width: 991.98px) {
  .sl-about-section {
    padding: 35px 18px;
  }

  .sl-about-wrapper {
    padding: 30px;
    border-radius: 38px;
  }

  .sl-about-images {
    max-width: 760px;
    min-height: 600px;
    margin: 0 auto;
    padding-right: 70px;
  }

  .sl-image-large {
    width: 50%;
    height: 570px;
  }

  .sl-image-small {
    width: 45%;
    height: 480px;
  }

  .sl-experience-card {
    right: 0;
  }

  .sl-about-content {
    max-width: 760px;
    padding: 20px 0 30px;
  }
}

@media (max-width: 575.98px) {
  .sl-about-section {
    padding: 18px 12px;
  }

  .sl-about-wrapper {
    padding: 18px;
    border-radius: 28px;
  }

  .sl-about-images {
    display: block;
    min-height: 550px;
    padding: 0;
  }

  .sl-image-large {
    width: 78%;
    height: 430px;
    border-radius: 28px;
  }

  .sl-image-small {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 65%;
    height: 310px;
    margin: 0;
    border: 8px solid #f3f7fd;
    border-radius: 28px;
  }

  .sl-experience-card {
    top: auto;
    right: auto;
    bottom: 20px;
    left: 5px;
    width: 135px;
    min-height: 205px;
    padding: 20px 10px;
    transform: none;
    border-radius: 75px;
    animation: none;
  }

  .sl-experience-icon {
    width: 68px;
    height: 68px;
    margin-bottom: 10px;
  }

  .sl-experience-icon svg {
    width: 42px;
    height: 42px;
  }

  .sl-experience-number {
    font-size: 38px;
  }

  .sl-experience-number sup {
    top: -10px;
    font-size: 18px;
  }

  .sl-experience-label {
    font-size: 14px;
  }

  .sl-about-content h2 {
    font-size: 35px;
    letter-spacing: -0.7px;
  }

  .sl-about-content > p {
    font-size: 16px;
  }

  .sl-feature {
    font-size: 15px;
  }

  .sl-heater-decoration {
    display: none;
  }
}
.wrapper div {
  height: 60px;
  width: 60px;
  border: 2px solid rgba(255, 255, 255, 0.7);
  border-radius: 50px;
  position: absolute;
  top: 10%;
  left: 10%;
  animation: 4s linear infinite;
}
div .dot {
  height: 10px;
  width: 10px;
  border-radius: 50px;
  background: rgba(255, 255, 255, 0.5);
  position: absolute;
  top: 20%;
  right: 20%;
}
.wrapper div:nth-child(1) {
  top: 20%;
  left: 20%;
  animation: animate 8s linear infinite;
}
.wrapper div:nth-child(2) {
  top: 60%;
  left: 80%;
  animation: animate 10s linear infinite;
}
.wrapper div:nth-child(3) {
  top: 40%;
  left: 40%;
  animation: animate 3s linear infinite;
}
.wrapper div:nth-child(4) {
  top: 66%;
  left: 30%;
  animation: animate 7s linear infinite;
}
.wrapper div:nth-child(5) {
  top: 90%;
  left: 10%;
  animation: animate 9s linear infinite;
}
.wrapper div:nth-child(6) {
  top: 30%;
  left: 60%;
  animation: animate 5s linear infinite;
}
.wrapper div:nth-child(7) {
  top: 70%;
  left: 20%;
  animation: animate 8s linear infinite;
}
.wrapper div:nth-child(8) {
  top: 75%;
  left: 60%;
  animation: animate 10s linear infinite;
}
.wrapper div:nth-child(9) {
  top: 50%;
  left: 50%;
  animation: animate 6s linear infinite;
}
.wrapper div:nth-child(10) {
  top: 45%;
  left: 20%;
  animation: animate 10s linear infinite;
}
.wrapper div:nth-child(11) {
  top: 10%;
  left: 90%;
  animation: animate 9s linear infinite;
}
.wrapper div:nth-child(12) {
  top: 20%;
  left: 70%;
  animation: animate 7s linear infinite;
}
.wrapper div:nth-child(13) {
  top: 20%;
  left: 20%;
  animation: animate 8s linear infinite;
}
.wrapper div:nth-child(14) {
  top: 60%;
  left: 5%;
  animation: animate 6s linear infinite;
}
.wrapper div:nth-child(15) {
  top: 90%;
  left: 80%;
  animation: animate 9s linear infinite;
}
@keyframes animate {
  0% {
    transform: scale(0) translateY(0) rotate(70deg);
  }
  100% {
    transform: scale(1.3) translateY(-100px) rotate(360deg);
  }
}
.wh-services-section {
    position: relative;
    padding: 90px 0 75px;
    background-color: #ffffff;
    overflow: hidden;
    isolation: isolate;
}

.wh-section-heading {
    max-width: 900px;
    margin: 0 auto 60px;
}

.wh-span1 {
    display: inline-block;
    margin-bottom: 12px;
    color: #2bbce3;
    font-size: 16px;
    font-weight: 800;
    letter-spacing: 1.5px;
}

.wh-section-heading h2 {
    margin: 0;
    color: #050505;
    font-size: clamp(34px, 4vw, 57px);
    font-weight: 800;
    line-height: 1.12;
}

/* Service card */
.wh-service-card {
    position: relative;
    height: 100%;
    padding-bottom: 134px;
    transition: transform .4s ease;
}

.wh-service-card:hover {
    transform: translateY(-10px);
}

.wh-service-image {
    position: relative;
    height: 325px;
    overflow: hidden;
    border-radius: 30px;
    background-color: #dfe6ed;
}

.wh-service-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        rgba(7, 37, 78, 0) 45%,
        rgba(7, 37, 78, .2) 100%
    );
}

.wh-service-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .7s ease;
}

.wh-service-card:hover .wh-service-image img {
    transform: scale(1.08);
}

.wh-service-content {
    position: absolute;
    right: 22px;
    bottom: 0;
    left: 22px;
    min-height: 205px;
    padding: 62px 25px 22px;
    text-align: center;
    background-color: #ffffff;
    border-radius: 22px;
    box-shadow: 0 14px 40px rgba(10, 37, 73, .08);
    transition: box-shadow .4s ease;
}

.wh-service-card:hover .wh-service-content {
    box-shadow: 0 22px 50px rgba(10, 37, 73, .15);
}

.wh-service-icon {
    position: absolute;
    top: -43px;
    left: 50%;
    display: grid;
    width: 86px;
    height: 86px;
    place-items: center;
    color: #ffffff;
    background-color: #2bbce3;
    border: 6px solid #ffffff;
    border-radius: 50%;
    transform: translateX(-50%);
    transition: background-color .35s ease, transform .35s ease;
}

.wh-service-icon svg {
    width: 39px;
    height: 39px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.3;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.wh-service-card:hover .wh-service-icon {
    background-color: #2857a5;
    transform: translateX(-50%) rotate(8deg) scale(1.07);
}

.wh-service-content h3 {
    min-height: 54px;
    margin: 0 0 8px;
    color: #050505;
    font-size: 21px;
    font-weight: 800;
    line-height: 1.25;
}

.wh-service-content p {
    min-height: 48px;
    margin: 0;
    color: #686868;
    font-size: 15px;
    line-height: 1.55;
}

.wh-service-link {
    display: grid;
    width: 44px;
    height: 44px;
    margin: 14px auto 0;
    place-items: center;
    color: #ffffff;
    text-decoration: none;
    background-color: #0b2853;
    border-radius: 50%;
    transition: background-color .3s ease, transform .3s ease;
}

.wh-service-link span {
    font-size: 22px;
    line-height: 1;
}

.wh-service-link:hover {
    color: #ffffff;
    background-color: #2bbce3;
    transform: rotate(45deg);
}

/* Bottom dots */
.wh-service-dots {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 55px;
}

.wh-service-dots span {
    width: 13px;
    height: 13px;
    background-color: #dce5f0;
    border-radius: 50%;
    animation: whDotPulse 2s ease-in-out infinite;
}

.wh-service-dots span:nth-child(2) {
    animation-delay: .25s;
}

.wh-service-dots span:nth-child(3) {
    animation-delay: .5s;
}

.wh-service-dots span.active {
    width: 18px;
    height: 18px;
    margin-top: -3px;
    background-color: #2bbce3;
}

/* Background tools */
.wh-tool {
    position: absolute;
    z-index: -1;
    pointer-events: none;
    user-select: none;
}

.wh-tool-wrench {
    top: -25px;
    left: -5px;
    width: 175px;
    transform-origin: 40% 45%;
    animation: whWrenchMove 5s ease-in-out infinite;
}

.wh-tool-faucet {
    right: -15px;
    bottom: -15px;
    width: 225px;
    transform-origin: right bottom;
}

/* Small water drops from faucet */
.wh-tool-faucet::before,
.wh-tool-faucet::after {
    
    transform: rotate(45deg);
    animation: whWaterDrop 2s linear infinite;
}

.wh-tool-faucet::after {
    animation-delay: 1s;
}

@keyframes whWrenchMove {
    0%,
    100% {
        transform: translateY(0) rotate(-5deg);
    }

    50% {
        transform: translateY(18px) rotate(5deg);
    }
}

@keyframes whFaucetMove {
    0%,
    100% {
        transform: translateX(0) rotate(0);
    }

    50% {
        transform: translateX(-12px) rotate(-2deg);
    }
}

@keyframes whWaterDrop {
    0% {
        opacity: 0;
        transform: translateY(0) rotate(45deg) scale(.5);
    }

    25% {
        opacity: 1;
    }

    100% {
        opacity: 0;
        transform: translateY(55px) rotate(45deg) scale(1);
    }
}

@keyframes whDotPulse {
    0%,
    100% {
        transform: scale(1);
        opacity: .65;
    }

    50% {
        transform: scale(1.3);
        opacity: 1;
    }
}

/* Responsive */
@media (max-width: 1199.98px) {
    .wh-tool-wrench {
        width: 135px;
        opacity: .3;
    }

    .wh-tool-faucet {
        width: 170px;
        opacity: .3;
    }
}

@media (max-width: 767.98px) {
    .wh-services-section {
        padding: 65px 0 55px;
    }

    .wh-section-heading {
        margin-bottom: 42px;
    }

    .wh-section-heading h2 {
        font-size: 34px;
    }

    .wh-service-image {
        height: 310px;
    }

    .wh-service-content {
        right: 15px;
        left: 15px;
    }

    .wh-tool-wrench {
        top: 5px;
        left: -40px;
        width: 115px;
        opacity: .12;
    }

    .wh-tool-faucet {
        right: -45px;
        width: 135px;
        opacity: .12;
    }
}

@media (prefers-reduced-motion: reduce) {
    .wh-tool-wrench,
    .wh-tool-faucet,
    .wh-tool-faucet::before,
    .wh-tool-faucet::after,
    .wh-service-dots span {
        animation: none;
    }

    .wh-service-card,
    .wh-service-image img,
    .wh-service-icon,
    .wh-service-link {
        transition: none;
    }
}
.wh-tool {
  position: absolute;
  z-index: 1;
  color: #2857a5;
  pointer-events: none;
  user-select: none;
}

.wh-tool i {
  display: block;
  font-size: 110px;
  line-height: 1;
  filter: drop-shadow(0 15px 20px rgba(11, 40, 83, 0.16));
}

.wh-tool-heater {
  top: 30px;
  left: 4%;
  color: #0b2853;
  animation: whToolFloat 5s ease-in-out infinite;z-index: 9999
}

.wh-tool-faucet {
  top: 10%;
  right: 5%;
  color: #2857a5;
  animation: whToolFloat 6s ease-in-out infinite;
}

.wh-tool-wrench {
  right: 7%;
  bottom: 4%;
  color: #31bce2;
  transform: rotate(-25deg);
  animation: whWrenchMove 7s ease-in-out infinite;
}

@keyframes whToolFloat {
  0%,
  100% {
    transform: translateY(0) rotate(-4deg);
  }

  50% {
    transform: translateY(-18px) rotate(5deg);
  }
}

@keyframes whWrenchMove {
  0%,
  100% {
    transform: translateY(0) rotate(-25deg);
  }

  50% {
    transform: translateY(-20px) rotate(-12deg);
  }
}

@media (max-width: 767.98px) {
  .wh-tool i {
    font-size: 65px;
  }

  .wh-tool-heater {
    left: 2%;
  }

  .wh-tool-faucet {
    right: 2%;
  }

  .wh-tool-wrench {
    right: 3%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .wh-tool {
    animation: none;
  }
}
.wh-choose-section {
    padding: 70px 12px;
    overflow: hidden;
    background: #ffffff;
}

.wh-choose-wrapper {
    position: relative;
    min-height: 675px;
    padding: 136px 70px 90px;
    border-radius: 50px;
    background: #f4f7fb;
    overflow: hidden;
}

.wh-choose-content {
    position: relative;
    z-index: 3;
}

.wh-choose-label {
    display: inline-block;
    margin-bottom: 12px;
    color: #24bae7;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 1px;
}

.wh-choose-title {
    margin: 0;
    color: #050505;
    font-size: clamp(38px, 3.4vw, 58px);
    font-weight: 800;
    line-height: 1.12;
    letter-spacing: -1.5px;
}

.wh-choose-intro {
    max-width: 465px;
    margin-bottom: 17px;
    padding-left: 26px;
    border-left: 3px solid #27c3ed;
    color: #656565;
    font-size: 17px;
    line-height: 1.65;
}

.wh-feature-row {
    position: relative;
    z-index: 5;
    margin-top: 42px;
    padding-right: 275px;
}

.wh-feature-card {
    position: relative;
    height: 100%;
    min-height: 202px;
    padding: 28px 25px 25px;
    border-bottom: 2px solid #24c4ee;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 10px 35px rgba(16, 58, 100, 0.04);
    transition: transform 0.35s ease, box-shadow 0.35s ease;
    overflow: hidden;
}

.wh-feature-card::before {
    content: "";
    position: absolute;
    right: -40px;
    bottom: -45px;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: rgba(36, 196, 238, 0.08);
    transform: scale(0);
    transition: transform 0.4s ease;
}

.wh-feature-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 18px 42px rgba(18, 69, 115, 0.13);
}

.wh-feature-card:hover::before {
    transform: scale(1);
}

.wh-feature-icon {
    width: 43px;
    height: 43px;
    margin-bottom: 14px;
}

.wh-feature-icon svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: #1168cf;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.wh-feature-card h3 {
    position: relative;
    margin: 0 0 9px;
    color: #0a0a0a;
    font-size: 21px;
    font-weight: 800;
    line-height: 1.25;
}

.wh-feature-card p {
    position: relative;
    margin: 0;
    color: #686868;
    font-size: 15px;
    line-height: 1.55;
}

.wh-choose-image {
    position: absolute;
    z-index: 1;
    top: 30px;
    right: 30px;
    bottom: 30px;
    width: 430px;
    border-radius: 38px;
    overflow: hidden;
}

.wh-choose-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        rgba(244, 247, 251, 0.72) 0%,
        rgba(244, 247, 251, 0) 32%
    );
    pointer-events: none;
}

.wh-choose-image .img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.7s ease;
}
.icon {
    max-width: 100%;
    height: auto;
}
.wh-choose-wrapper:hover .wh-choose-image img {
    transform: scale(1.035);
}

.wh-choose-image-badge {
    position: absolute;
    z-index: 2;
    top: 40px;
    left: 35px;
    display: grid;
    width: 122px;
    height: 122px;
    place-items: center;
    border-radius: 50%;
    background: #ffffff;
    box-shadow: 0 10px 30px rgba(11, 53, 97, 0.08);
    animation: whBadgeFloat 3.5s ease-in-out infinite;
}

.wh-choose-image-badge svg {
    width: 60px;
    height: 60px;
}

.wh-bottom-decoration {
    position: absolute;
    z-index: 2;
    right: 6px;
    bottom: -36px;
    width: 92px;
    height: 92px;
    border: 22px solid rgba(36, 196, 238, 0.17);
    border-radius: 50%;
}

@keyframes whBadgeFloat {
    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-9px);
    }
}

/* Large screens */
@media (min-width: 1400px) {
    .wh-choose-section .container {
        max-width: 1800px;
    }

    .wh-choose-wrapper {
        padding-left: 190px;
    }

    .wh-choose-image {
        width: 465px;
    }
}

/* Laptop */
@media (max-width: 1399.98px) {
    .wh-choose-wrapper {
        padding: 105px 45px 75px;
    }

    .wh-feature-row {
        padding-right: 205px;
    }

    .wh-choose-image {
        width: 350px;
    }

    .wh-feature-card {
        padding-right: 18px;
        padding-left: 18px;
    }

    .wh-feature-card h3 {
        font-size: 18px;
    }
}

/* Tablet */
@media (max-width: 1199.98px) {
    .wh-choose-wrapper {
        padding: 65px 40px 55px;
    }

    .wh-choose-image {
        position: relative;
        top: auto;
        right: auto;
        bottom: auto;
        width: 100%;
        height: 480px;
        margin-bottom: 45px;
    }

    .wh-choose-image::after {
        display: none;
    }

    .wh-feature-row {
        padding-right: 0;
    }

    .wh-choose-intro {
        margin-bottom: 0;
    }
}

/* Mobile */
@media (max-width: 767.98px) {
    .wh-choose-section {
        padding: 35px 8px;
    }

    .wh-choose-wrapper {
        min-height: auto;
        padding: 20px 18px 35px;
        border-radius: 28px;
    }

    .wh-choose-image {
        height: 370px;
        margin-bottom: 35px;
        border-radius: 23px;
    }

    .wh-choose-image-badge {
        top: 22px;
        left: 22px;
        width: 90px;
        height: 90px;
    }

    .wh-choose-image-badge svg {
        width: 46px;
        height: 46px;
    }

    .wh-choose-title {
        font-size: 38px;
        letter-spacing: -1px;
    }

    .wh-choose-title br {
        display: none;
    }

    .wh-choose-intro {
        padding-left: 18px;
        font-size: 16px;
    }

    .wh-feature-row {
        margin-top: 28px;
    }

    .wh-feature-card {
        min-height: 190px;
    }
}

@media (max-width: 399.98px) {
    .wh-choose-title {
        font-size: 32px;
    }

    .wh-choose-image {
        height: 310px;
    }
}
.plumbing-process-section {
    position: relative;
    overflow: hidden;
    padding: 135px 0 120px;
    background: #ffffff;
    font-family: Arial, Helvetica, sans-serif;
}

.process-heading {
    margin-bottom: 66px;
}

.process-subtitle {
    display: inline-block;
    margin-bottom: 13px;
    color: #27bee7;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 1px;
}

.process-title {
    margin: 0;
    color: #030303;
    font-size: 55px;
    font-weight: 800;
    line-height: 1.16;
    letter-spacing: -1.8px;
}

.process-row {
    position: relative;
    flex-wrap: nowrap;
    margin: 0 auto;
}

.process-column {
    position: relative;
    min-width: 0;
    padding: 0 10px;
}

.process-item {
    position: relative;
    text-align: center;
}

.process-icon-box {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 130px;
    height: 130px;
    margin: 0 auto 43px;
    border-radius: 50%;
    background: #31bee2;
    transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.process-item:hover .process-icon-box {
    transform: translateY(-8px);
    box-shadow: 0 18px 35px rgba(37, 78, 150, 0.2);
}

.process-icon-box > svg {
    width: 59px;
    height: 59px;
    fill: none;
    stroke: #ffffff;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.process-number {
    position: absolute;
    left: 50%;
    bottom: -13px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 3px solid #ffffff;
    border-radius: 50%;
    background: #0c2045;
    color: #ffffff;
    font-size: 15px;
    font-weight: 700;
    transform: translateX(-50%);
}

.process-item h3 {
    margin: 0 0 9px;
    color: #030303;
    font-size: 23px;
    font-weight: 700;
    line-height: 1.25;
}

.process-item p {
    margin: 0;
    color: #686868;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.55;
}

.process-item p a {
    color: #2058a6;
    text-decoration: none;
    transition: color 0.25s ease;
}

.process-item p a:hover {
    color: #27bee7;
}

.process-arrow {
    flex: 0 0 90px;
    width: 90px;
    padding-top: 35px;
}

.process-arrow svg {
    display: block;
    width: 82px;
    height: 42px;
    fill: none;
    stroke: #2459a8;
    stroke-width: 2.3;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.process-arrow-up {
    padding-top: 33px;
}

/* Large screens */
@media (min-width: 1200px) {
    .plumbing-process-section .container {
        max-width: 1320px;
    }
}

/* Laptop */
@media (max-width: 1199.98px) {
    .plumbing-process-section {
        padding: 110px 0 100px;
    }

    .process-title {
        font-size: 47px;
    }

    .process-arrow {
        flex: 0 0 60px;
        width: 60px;
    }

    .process-arrow svg {
        width: 58px;
    }

    .process-icon-box {
        width: 115px;
        height: 115px;
    }

    .process-icon-box > svg {
        width: 52px;
        height: 52px;
    }

    .process-item h3 {
        font-size: 20px;
    }

    .process-item p {
        font-size: 14px;
    }
}

/* Tablet and mobile */
@media (max-width: 991.98px) {
    .plumbing-process-section {
        padding: 85px 0 75px;
    }

    .process-heading {
        margin-bottom: 50px;
    }

    .process-title {
        font-size: 41px;
        letter-spacing: -1px;
    }

    .process-row {
        flex-wrap: wrap;
        row-gap: 55px;
    }

    .process-column {
        flex: 0 0 33.333333%;
        max-width: 33.333333%;
    }

    .process-arrow {
        display: none;
    }

    .process-icon-box {
        margin-bottom: 38px;
    }
}

@media (max-width: 767.98px) {
    .plumbing-process-section {
        padding: 70px 0 65px;
    }

    .process-subtitle {
        font-size: 14px;
    }

    .process-title {

        font-size: 34px;
        line-height: 1.2;
    }

    .process-title br {
        display: none;
    }

    .process-column {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .process-item p br {
        display: none;
    }
}

@media (max-width: 575.98px) {
    .process-heading {
        margin-bottom: 45px;
    }

    .process-title {
        font-size: 29px;
    }

    .process-row {
        row-gap: 48px;
    }

    .process-column {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .process-icon-box {
        width: 125px;
        height: 125px;
    }

    .process-item {
        max-width: 310px;
        margin: 0 auto;
    }

    .process-item h3 {
        font-size: 22px;
    }

    .process-item p {
        font-size: 16px;
    }
}

.emergency-cta {
      position: relative;
      isolation: isolate;
      overflow: hidden;
      border-radius: 48px;
      color: #fff;
      background:
        linear-gradient(90deg, rgba(24, 82, 156, .77), rgba(24, 82, 156, .50)),
        url("../img/hot-water-repair.webp") center/cover no-repeat;
    }

    .emergency-cta__photo {
      min-height: 426px;
      border-radius: 40px;
      background:
        url("../img/repair-water-heater.webp") center/cover no-repeat;
      box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
    }

    .emergency-cta__content {
      position: relative;
      z-index: 2;
      padding: 40px 56px 40px 130px;
    }

    .span1 {
      margin-bottom: 12px;
      font-size: 1rem;
      font-weight: 700;
      letter-spacing: .06em;
    }

    .emergency-cta h2 {
      max-width: 790px;
      margin-bottom: 28px;
      font-size: clamp(2.2rem, 3.25vw, 3.55rem);
      line-height: 1.12;
      font-weight: 800;
      letter-spacing: -.025em;
    }

    .brand-badge {
      position: absolute;
      z-index: 3;
      top: 50%;
      left: 42.8%;
      width: 158px;
      height: 158px;
      transform: translate(-50%, -50%);
      border-radius: 50%;
      background: #fff;
      box-shadow: 0 12px 28px rgba(5, 38, 88, .15);
    }

    .brand-mark {
      position: relative;
      font-size: 3.4rem;
      font-weight: 900;
      line-height: 1;
      letter-spacing: -.22em;
      transform: translateX(-.08em);
    }

    .brand-mark::after {
      content: "";
      position: absolute;
      width: 46px;
      height: 46px;
      top: -8px;
      right: -18px;
      border: 4px solid #31bee2;
      border-left-color: transparent;
      border-bottom-color: transparent;
      border-radius: 50%;
      transform: rotate(12deg);
    }

    .phone-pill {
      min-height: 66px;
      padding: 6px 22px 6px 8px;
      border-radius: 999px;
      color: #fff;
      font-size: clamp(1.05rem, 1.4vw, 1.65rem);
      font-weight: 800;
      text-decoration: none;
      white-space: nowrap;
      transition: transform .2s ease, background-color .2s ease;
    }

    .phone-pill:hover {
      color: #fff;
      background: #20b5df;
      transform: translateY(-2px);
    }

    .phone-pill__icon {
      display: inline-grid;
      flex: 0 0 54px;
      width: 54px;
      height: 54px;
      place-items: center;
      border-radius: 50%;
      background: #fff;
      color: #0878c9;
      font-size: 1.55rem;
    }

    .arrival-note {
      max-width: 320px;
      margin: 0;
      font-size: .9rem;
      line-height: 1.45;
    }

    @media (max-width: 1199.98px) {
      .brand-badge {
        left: 41.7%;
        width: 132px;
        height: 132px;
      }

      .emergency-cta__content {
        padding-left: 78px;
        padding-right: 36px;
      }
    }

    @media (max-width: 991.98px) {
      .emergency-cta {
        border-radius: 34px;
      }

      .emergency-cta__photo {
        min-height: 340px;
        border-radius: 28px;
      }

      .brand-badge {
        top: 340px;
        left: 50%;
        width: 120px;
        height: 120px;
      }

      .brand-mark {
        font-size: 2.75rem;
      }

      .emergency-cta__content {
        padding: 92px 30px 42px;
        text-align: center;
      }

      .emergency-cta h2,
      .arrival-note {
        margin-left: auto;
        margin-right: auto;
      }
    }

    @media (max-width: 575.98px) {
      .emergency-cta {
        border-radius: 26px;
      }

      .emergency-cta__photo {
        min-height: 270px;
        border-radius: 22px;
      }

      .brand-badge {
        top: 270px;
        width: 104px;
        height: 104px;
      }

      .emergency-cta__content {
        padding: 76px 20px 34px;
      }

      .phone-pill {
        width: 100%;
        justify-content: flex-start;
        padding-right: 14px;
      }
    }
.page-shell {
  min-height: 100vh;
  padding: 38px 2.6vw;
  display: grid;
  place-items: center;
  background: #ffffff;
}



.estimate-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 820px;
  padding: clamp(70px, 8vw, 145px) clamp(20px, 5vw, 80px);
  border-radius: 48px;
  background:
    linear-gradient(
      90deg,
      rgba(13, 70, 145, 0.88),
      rgba(25, 84, 159, 0.82)
    ),
    url("../img/technician-repair-water-heater.webp") center / cover no-repeat;
}

.estimate-section__content {
  width: min(1100px, 100%);
  max-width: 100%;
  min-width: 0;
}

/* ================================
   SECTION HEADING
================================ */

.estimate-section .section-heading {
  width: 100%;
  max-width: 920px;
  margin: 0 auto 58px;
  text-align: center;
}

.estimate-section .span1 {
  display: inline-block;
  margin: 0 0 14px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.estimate-section .section-heading h2 {
  margin: 0 0 12px;
  font-size: clamp(2.5rem, 5vw, 4rem);
  line-height: 1.1;
  letter-spacing: -0.035em;
  overflow-wrap: anywhere;
}

.estimate-section .section-heading > p:last-child {
  max-width: 760px;
  margin: 0 auto;
  line-height: 1.6;
}

/* ================================
   HEADING DOTS
================================ */

.estimate-section .heading-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin: 12px 0 0;
}

.estimate-section .heading-dots span {
  display: block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #31bee2;
  animation: estimateDotPulse 1.5s ease-in-out infinite;
}

.estimate-section .heading-dots span:nth-child(2) {
  animation-delay: 0.2s;
}

.estimate-section .heading-dots span:nth-child(3) {
  animation-delay: 0.4s;
}

@keyframes estimateDotPulse {
  0%,
  100% {
    opacity: 0.4;
    transform: scale(0.8);
  }

  50% {
    opacity: 1;
    transform: scale(1.25);
  }
}

/* ================================
   FORM CARD
================================ */

.estimate-section .estimate-card {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: clamp(36px, 5vw, 64px);
  border-radius: 38px;
  background: #ffffff;
  box-shadow: 0 28px 70px rgba(8, 41, 91, 0.18);
}

.estimate-section .contact-form,
.estimate-section .contact-form fieldset {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.estimate-section .contact-form fieldset {
  margin: 0;
  padding: 0;
  border: 0;
}

/* ================================
   FORM GRIDS
================================ */

.estimate-section .form-grid,
.estimate-section .date-grid {
  display: grid;
  width: 100%;
  min-width: 0;
  gap: 15px 18px;
  margin-bottom: 15px;
}

.estimate-section .form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.estimate-section .date-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.estimate-section .contact-form label {
  display: block;
  width: 100%;
  min-width: 0;
}

/* ================================
   INPUTS
================================ */

.estimate-section .contact-form input,
.estimate-section .contact-form select,
.estimate-section .contact-form textarea {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  border: 2px solid #31bee2;
  border-radius: 5px;
  outline: none;
  background: #ffffff;
  color: #253346;
  font: inherit;
  box-sizing: border-box;
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.2s ease;
}

.estimate-section .contact-form input,
.estimate-section .contact-form select {
  min-height: 48px;
  padding: 0 14px;
}

.estimate-section .contact-form select {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
}

.estimate-section .contact-form textarea {
  min-height: 86px;
  padding: 14px 18px;
  resize: vertical;
}

.estimate-section .contact-form input::placeholder,
.estimate-section .contact-form textarea::placeholder {
  color: #68778a;
  opacity: 1;
}

.estimate-section .contact-form input:hover,
.estimate-section .contact-form select:hover,
.estimate-section .contact-form textarea:hover {
  border-color: #1f9fc5;
}

.estimate-section .contact-form input:focus,
.estimate-section .contact-form select:focus,
.estimate-section .contact-form textarea:focus {
  border-color: #1f5191;
  box-shadow: 0 0 0 4px rgba(49, 190, 226, 0.16);
}

/* ================================
   SUBMIT BUTTON
================================ */

.estimate-section .submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: min(280px, 100%);
  min-height: 52px;
  margin-top: 28px;
  padding: 12px 24px;
  border: 0;
  border-radius: 4px;
  background: linear-gradient(90deg, #31bee2, #1f5191);
  box-shadow: 0 15px 30px rgba(8, 127, 201, 0.24);
  color: #ffffff;
  font: 700 1rem Inter, sans-serif;
  text-align: center;
  cursor: pointer;
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.estimate-section .submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 34px rgba(8, 127, 201, 0.32);
}

.estimate-section .submit:active {
  transform: translateY(0);
}

.estimate-section .submit:focus-visible {
  outline: 3px solid #31bee2;
  outline-offset: 3px;
}

/* ================================
   OPTIONAL CONTACT DETAILS
================================ */

.estimate-section .contact-details {
  color: #31bee2;
}

.estimate-section .contact-details h2 {
  margin: 0 0 28px;
  font: 600 1.42rem/1.2 "Barlow Condensed", sans-serif;
}

.estimate-section .contact-details ul {
  display: grid;
  gap: 27px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.estimate-section .contact-details li {
  font: 600 1.18rem/1.35 "Barlow Condensed", sans-serif;
  overflow-wrap: anywhere;
}

.estimate-section .contact-details a {
  color: inherit;
  text-decoration: none;
}

.estimate-section .contact-details a:hover {
  text-decoration: underline;
}

/* ================================
   ACCESSIBILITY
================================ */

.estimate-section .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* ================================
   TABLET
================================ */

@media (max-width: 820px) {
  .estimate-section {
    min-height: auto;
    padding: 70px 20px;
    border-radius: 28px;
    background-position: center;
  }

  .estimate-section .section-heading {
    margin-bottom: 42px;
  }

  .estimate-section .estimate-card {
    padding: 36px 24px;
    border-radius: 26px;
  }

  .estimate-section .form-grid,
  .estimate-section .date-grid {
    grid-template-columns: 1fr;
  }

  .estimate-section .contact-details {
    margin-top: 30px;
    padding-top: 30px;
    border-top: 1px solid #31bee2;
  }
}

/* ================================
   MOBILE
================================ */

@media (max-width: 560px) {
  .estimate-section {
    padding: 55px 12px;
    border-radius: 0;
  }

  .estimate-section .section-heading {
    margin-bottom: 30px;
  }

  .estimate-section .section-heading h2 {
    font-size: clamp(1.8rem, 9vw, 2.5rem);
  }

  .estimate-section .section-heading > p:last-child {
    font-size: 0.95rem;
    line-height: 1.65;
  }

  .estimate-section .estimate-card {
    padding: 26px 15px;
    border-radius: 20px;
  }

  .estimate-section .form-grid,
  .estimate-section .date-grid {
    grid-template-columns: 1fr;
    gap: 12px;
    margin-bottom: 12px;
  }

  .estimate-section .contact-form input,
  .estimate-section .contact-form select {
    min-height: 52px;
    padding: 0 12px;
    font-size: 16px;
  }

  .estimate-section .contact-form textarea {
    min-height: 110px;
    padding: 14px 12px;
    font-size: 16px;
  }

  .estimate-section .submit {
    width: 100%;
    min-height: 54px;
    margin-top: 20px;
  }
}

/* ================================
   VERY SMALL MOBILE
================================ */

@media (max-width: 360px) {
  .estimate-section {
    padding-inline: 8px;
  }

  .estimate-section .estimate-card {
    padding: 22px 12px;
    border-radius: 16px;
  }

  .estimate-section .section-heading h2 {
    font-size: 1.75rem;
  }
}

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

@media (prefers-reduced-motion: reduce) {
  .estimate-section .heading-dots span {
    animation: none;
  }

  .estimate-section .submit,
  .estimate-section .contact-form input,
  .estimate-section .contact-form select,
  .estimate-section .contact-form textarea {
    transition: none;
  }
}

.faq-section {
      position: relative;
      overflow: hidden;
      padding: 90px 0 100px;
      background: #ffffff;
    }

    .faq-heading {
      margin: 0;
      color: #172337;
      font-family: Georgia, "Times New Roman", serif;
      font-size: clamp(2rem, 4vw, 3.25rem);
      font-weight: 700;
      line-height: 1.15;
    }

    .heading-mark {
      position: relative;
      z-index: 1;
      display: inline-block;
    }

    .heading-mark::before {
      position: absolute;
      z-index: -1;
      top: 50%;
      left: -16px;
      width: 66px;
      height: 66px;
      border-radius: 50%;
      background: #31bee2;
      content: "";
      transform: translateY(-50%);
    }

    .section-dots {
      display: flex;
      justify-content: center;
      gap: 7px;
      margin: 24px 0 40px;
    }

    .section-dots span {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: #31bee2;
      animation: faqDotPulse 1.4s ease-in-out infinite;
    }

    .section-dots span:nth-child(2) {
      animation-delay: .18s;
    }

    .section-dots span:nth-child(3) {
      animation-delay: .36s;
    }

    .faq-accordion .accordion-item {
      overflow: hidden;
      margin-bottom: 14px;
      border: 1px solid #d8e4f5;
      border-radius: 6px;
      background: #ffffff;
      box-shadow: 0 8px 24px rgba(23, 35, 55, .07);
    }

    .faq-accordion .accordion-button {
      min-height: 70px;
      padding: 18px 58px 18px 22px;
      color: #ffffff;
      background: #31bee2;
      box-shadow: none;
      font-size: 1rem;
      font-weight: 700;
      line-height: 1.45;
    }

    .faq-accordion .accordion-button:not(.collapsed) {
      color: #ffffff;
      background: #245fae;
      box-shadow: none;
    }

    .faq-accordion .accordion-button::after {
      position: absolute;
      top: 50%;
      right: 22px;
      width: 22px;
      height: 22px;
      margin: 0;
      background-image: none;
      color: #ffffff;
      content: "+";
      font-size: 1.8rem;
      font-weight: 300;
      line-height: 18px;
      text-align: center;
      transform: translateY(-50%);
      transition: transform .25s ease;
    }

    .faq-accordion .accordion-button:not(.collapsed)::after {
      content: "−";
      transform: translateY(-50%);
    }

    .faq-accordion .accordion-body {
      padding: 22px;
      color: #536176;
      background: #ffffff;
      font-size: .98rem;
      line-height: 1.8;
    }

    .questions-cta {
      position: relative;
      isolation: isolate;
      display: grid;
      min-height: 430px;
      place-items: center;
      overflow: hidden;
      padding: 75px 0;
      color: #ffffff;
      background: #31bee2 url("../img/faqs-bg.webp") center / cover no-repeat;
    }

    .questions-cta::before {
      position: absolute;
      z-index: -1;
      inset: 0;
      background: linear-gradient(90deg, rgba(47, 115, 217, .58) 0%, rgba(51, 94, 159, .78) 55%, rgba(20, 42, 72, .88) 100%);
      content: "";
    }

    .questions-cta h2 {
      margin-bottom: 20px;
      font-family: Georgia, "Times New Roman", serif;
      font-size: clamp(2.15rem, 5vw, 3.5rem);
      font-weight: 700;
      line-height: 1.15;
    }

    .questions-cta .heading-mark::before {
      background: #31bee2;
    }

    .questions-cta p {
      max-width: 760px;
      margin: 0 auto;
      color: #e8eef7;
      font-size: 1.05rem;
      line-height: 1.75;
    }

    .questions-cta .section-dots {
      margin: 22px 0 26px;
    }

    .questions-cta .section-dots span {
      background: #ffffff;
    }

    .contact-button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 170px;
      padding: 13px 28px;
      border: 1px solid #ffffff;
      border-radius: 50px;
      color: #ffffff;
      background: transparent;
      font-weight: 700;
      text-decoration: none;
      transition: color .25s ease, background-color .25s ease, transform .25s ease;
    }

    .contact-button:hover,
    .contact-button:focus-visible {
      color: #172337;
      background: #ffffff;
      transform: translateY(-3px);
    }

    @keyframes faqDotPulse {
      0%, 100% {
        opacity: .45;
        transform: scale(.8);
      }
      50% {
        opacity: 1;
        transform: scale(1.2);
      }
    }

    @media (max-width: 767.98px) {
      .faq-section {
        padding: 65px 0 70px;
      }

      .faq-heading {
        padding-left: 10px;
      }

      .heading-mark::before {
        left: -10px;
        width: 50px;
        height: 50px;
      }

      .faq-accordion .accordion-button {
        min-height: 64px;
        padding: 16px 52px 16px 18px;
        font-size: .95rem;
      }

      .questions-cta {
        min-height: 380px;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      .section-dots span {
        animation: none;
      }

      .contact-button {
        transition: none;
      }
    }

.testimonials-section {
  position: relative;
  min-height: 760px;
  padding: 58px 20px 70px;
  overflow: hidden;
  isolation: isolate;
  background: radial-gradient(circle at 50% 42%, #31bee2 0%, #335e9f 42%, #1e2b4d 100%);
}

.testimonials-section .container {
  z-index: 3;
}

/* Heading */
.section-heading {
  position: relative;
  width: max-content;
  max-width: 100%;
  margin: 0 auto 25px;
}

.section-heading h2 {
  position: relative;
  z-index: 2;
  margin: 0;
  color: #ffffff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(38px, 5vw, 64px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -1.5px;
  text-shadow: 0 2px 0 #172442;
}

.section-heading h2 span {
  -webkit-text-stroke: 1px #ffffff;
  text-shadow: 2px 2px 0 #263a67;
}

.heading-shape {
  position: absolute;
  z-index: 1;
  top: -12px;
  left: -19px;
  width: 72px;
  height: 72px;
  border-radius: 30px 34px 34px 38px;
  background: #fe7f2d;
  transform: rotate(-12deg);
  animation: headingPulse 4s ease-in-out infinite;
}

.heading-dots {
  display: flex;
  justify-content: center;
  gap: 7px;
  margin-top: 28px;
}

.heading-dots span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #ffffff;
  animation: dotBounce 1.4s ease-in-out infinite;
}

.heading-dots span:nth-child(2) { animation-delay: .18s; }
.heading-dots span:nth-child(3) { animation-delay: .36s; }

/* Carousel and blurred cards behind it */
.testimonial-track {
  position: relative;
  width: min(1040px, 100%);
  min-height: 410px;
  margin: 0 auto;
}

.testimonial-track::before,
.testimonial-track::after {
  position: absolute;
  z-index: 0;
  top: 50%;
  width: 370px;
  height: 330px;
  content: "";
  border: 1px solid #6e443f;
  border-bottom: 3px solid #fe7f2d;
  background:
    linear-gradient(#fe7f2d 0 0) 35px 94px / 82px 7px no-repeat,
    linear-gradient(#ffffff 0 0) 35px 135px / 75% 7px no-repeat,
    linear-gradient(#ffffff 0 0) 35px 160px / 65% 7px no-repeat,
    #141c34;
  box-shadow: 0 22px 60px #0a112566;
  filter: blur(3px);
  opacity: .55;
  transform: translateY(-50%) scale(.9);
}

.testimonial-track::before { left: 6%; }
.testimonial-track::after { right: 6%; }

#testimonialCarousel {
  z-index: 2;
  width: 370px;
  margin: 0 auto;
  padding-bottom: 38px;
}

.testimonial-card {
  position: relative;
  min-height: 372px;
  padding: 48px 36px 40px;
  overflow: hidden;
  text-align: left;
  border: 1px solid #6e443f;
  border-bottom: 3px solid #fe7f2d;
  background: #141c34;
  color: #ffffff;
  box-shadow: 0 22px 60px #0a112566;
}

.customer {
  gap: 16px;
  margin-bottom: 29px;
}

.customer-photo {
  display: grid;
  place-items: center;
  flex: 0 0 62px;
  width: 62px;
  height: 62px;
  border: 2px solid #fe7f2d;
  border-radius: 50%;
  background: linear-gradient(145deg, #f3f6ff, #aebde2);
  color: #1e2d51;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 18px;
  font-weight: 800;
}

.customer h3 {
  margin: 0 0 4px;
  font-size: 18px;
  font-weight: 700;
}

.customer p {
  margin: 0;
  color: #e2e8ff;
  font-size: 14px;
}

.stars {
  margin-bottom: 20px;
  color: #fe7f2d;
  font-size: 19px;
  letter-spacing: 4px;
}

.testimonial-card blockquote {
  position: relative;
  z-index: 2;
  margin: 0;
  color: #f8faff;
  font-size: 15px;
  font-style: italic;
  font-weight: 600;
  line-height: 1.85;
}

.quote-icon {
  position: absolute;
  right: 23px;
  bottom: 7px;
  color: #fe7f2d2b;
  font-size: 78px;
  line-height: 1;
}

.carousel-control-prev,
.carousel-control-next {
  top: 50%;
  bottom: auto;
  width: 44px;
  height: 44px;
  border: 1px solid #ffffff66;
  border-radius: 50%;
  background: #15203bc9;
  opacity: 0;
  transform: translateY(-95%);
  transition: .3s ease;
}

#testimonialCarousel:hover .carousel-control-prev,
#testimonialCarousel:hover .carousel-control-next,
.carousel-control-prev:focus,
.carousel-control-next:focus {
  opacity: 1;
}

.carousel-control-prev { left: -70px; }
.carousel-control-next { right: -70px; }

.carousel-control-prev:hover,
.carousel-control-next:hover {
  border-color: #fe7f2d;
  background: #fe7f2d;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
  width: 18px;
  height: 18px;
}

.carousel-indicators {
  bottom: 0;
  gap: 2px;
  margin-bottom: 8px;
}

.carousel-indicators [data-bs-target] {
  width: 9px;
  height: 9px;
  border: 0;
  border-radius: 20px;
  background: #ffffff;
  opacity: .5;
  transition: .3s ease;
}

.carousel-indicators .active {
  width: 27px;
  background: #fe7f2d;
  opacity: 1;
}

.all-testimonials-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 208px;
  min-height: 51px;
  padding: 13px 28px;
  border: 2px solid #fe7f2d;
  border-radius: 999px;
  background: #fe7f2d;
  color: #ffffff;
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
  transition: .3s ease;
}

.all-testimonials-btn:hover,
.all-testimonials-btn:focus {
  background: transparent;
  color: #ff967b;
  transform: translateY(-3px);
}

/* Moving background waves */
.wave-lines {
  position: absolute;
  z-index: 0;
  inset: -180px -100px;
  opacity: .17;
  transform: rotate(-4deg);
  animation: waveDrift 16s ease-in-out infinite alternate;
}

.wave-lines span {
  position: absolute;
  left: -10%;
  width: 120%;
  height: 310px;
  border: 7px solid #0f1c38;
  border-right-color: transparent;
  border-left-color: transparent;
  border-radius: 50%;
}

.wave-lines span:nth-child(1) { top: 4%; }
.wave-lines span:nth-child(2) { top: 27%; }
.wave-lines span:nth-child(3) { top: 51%; }
.wave-lines span:nth-child(4) { top: 73%; }

/* Moving octagons */
.shape {
  position: absolute;
  z-index: 1;
  display: block;
  width: 76px;
  height: 76px;
  background: #335e9f;
  clip-path: polygon(30% 0, 70% 0, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0 70%, 0 30%);
  animation: floatShape 9s ease-in-out infinite alternate;
}

.shape-1  { top: 7%; left: 13%; width: 52px; height: 52px; animation-duration: 7s; }
.shape-2  { top: 3%; left: 21%; width: 100px; height: 100px; animation-delay: -2s; }
.shape-3  { top: 16%; left: 51%; width: 72px; height: 72px; animation-duration: 11s; }
.shape-4  { top: 12%; right: -1%; width: 105px; height: 105px; animation-delay: -4s; }
.shape-5  { top: 28%; left: 7%; width: 86px; height: 86px; animation-duration: 8s; }
.shape-6  { top: 43%; left: 17%; width: 59px; height: 59px; animation-delay: -5s; }
.shape-7  { top: 39%; right: 16%; width: 59px; height: 59px; animation-duration: 7.5s; }
.shape-8  { top: 57%; left: 14%; width: 90px; height: 90px; animation-delay: -3s; }
.shape-9  { top: 65%; right: 7%; width: 112px; height: 112px; animation-duration: 12s; }
.shape-10 { bottom: 4%; left: 21%; width: 71px; height: 71px; animation-delay: -6s; }
.shape-11 { bottom: -2%; left: 48%; width: 113px; height: 113px; animation-duration: 10s; }
.shape-12 { top: 25%; right: 26%; width: 45px; height: 45px; animation-delay: -1s; }

@keyframes floatShape {
  0%   { transform: translate3d(0, 0, 0) rotate(0) scale(1); opacity: .52; }
  50%  { transform: translate3d(18px, -24px, 0) rotate(12deg) scale(1.08); opacity: .78; }
  100% { transform: translate3d(-14px, 18px, 0) rotate(-9deg) scale(.92); opacity: .42; }
}

@keyframes waveDrift {
  from { transform: translate3d(-2%, -1%, 0) rotate(-4deg) scale(1); }
  to   { transform: translate3d(3%, 2%, 0) rotate(-2deg) scale(1.04); }
}

@keyframes dotBounce {
  0%, 65%, 100% { transform: translateY(0); opacity: .75; }
  35% { transform: translateY(-7px); opacity: 1; }
}

@keyframes headingPulse {
  0%, 100% { transform: rotate(-12deg) scale(1); }
  50% { transform: rotate(-5deg) scale(1.08); }
}

@media (max-width: 767.98px) {
  .testimonials-section {
    min-height: 720px;
    padding: 48px 12px 56px;
  }

  .section-heading h2 { font-size: 38px; }
  .heading-shape { width: 58px; height: 58px; left: -10px; }
  .testimonial-track::before,
  .testimonial-track::after { display: none; }

  #testimonialCarousel {
    width: min(370px, calc(100vw - 34px));
  }

  .testimonial-card {
    min-height: 382px;
    padding: 36px 26px 34px;
  }

  .carousel-control-prev,
  .carousel-control-next {
    top: auto;
    bottom: 2px;
    width: 38px;
    height: 38px;
    opacity: 1;
    transform: none;
  }

  .carousel-control-prev { left: calc(50% - 103px); }
  .carousel-control-next { right: calc(50% - 103px); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

.diagnostic-story-section {
    position: relative;
    overflow: hidden;
    padding: 90px 0;
    background:
        radial-gradient(circle at 8% 15%, rgba(254, 127, 45, 0.12) 0, transparent 24%),
        linear-gradient(135deg, #f5f9ff 0%, #ffffff 52%, #eef5fc 100%);
}

.diagnostic-story-section::before {
    content: "";
    position: absolute;
    top: -130px;
    right: -130px;
    width: 320px;
    height: 320px;
    border: 55px solid rgba(33, 79, 142, 0.05);
    animation: diagnosticRotate 18s linear infinite;
}

.repair-coupon {
    position: relative;
    max-width: 390px;
    margin: auto;
    padding: 48px 30px 35px;
    overflow: hidden;
    color: #fff;
    text-align: center;
    background: linear-gradient(145deg, #214f8e 0%, #2b64ad 55%, #376fb5 100%);
    border: 6px solid #ffffff;
    border-radius: 24px;
    box-shadow: 0 22px 55px rgba(17, 51, 91, 0.25);
}
.repair-coupon a{color:#fff}

.repair-coupon::before,
.repair-coupon::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.repair-coupon::before {
    top: -80px;
    right: -80px;
    width: 210px;
    height: 210px;
    border: 35px solid rgba(255, 255, 255, 0.06);
}

.repair-coupon::after {
    bottom: -75px;
    left: -65px;
    width: 180px;
    height: 180px;
    background: rgba(254, 127, 45, 0.14);
}

.coupon-cut {
    position: absolute;
    top: 56%;
    z-index: 3;
    width: 34px;
    height: 34px;
    background: #f5f9ff;
    border-radius: 50%;
    transform: translateY(-50%);
}

.coupon-cut-left {
    left: -20px;
}

.coupon-cut-right {
    right: -20px;
}

.coupon-icon {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 68px;
    height: 68px;
    margin-bottom: 18px;
    color: #214f8e;
    font-size: 30px;
    background: #ffffff;
    border: 5px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    box-shadow: 0 10px 25px rgba(8, 36, 73, 0.22);
    animation: couponFloat 3s ease-in-out infinite;
}

.coupon-label {
    position: relative;
    z-index: 2;
    display: block;
    margin-bottom: 5px;
    color: #ffffff;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.coupon-price {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    color: #ffffff;
    line-height: 1;
}

.coupon-price strong {
    font-size: 94px;
    font-weight: 900;
    letter-spacing: -7px;
}

.coupon-dollar {
    margin-top: 13px;
    margin-right: 5px;
    color: #fe7f2d;
    font-size: 34px;
    font-weight: 900;
}

.coupon-off {
    align-self: flex-end;
    margin: 0 0 14px 9px;
    padding: 6px 8px;
    color: #ffffff;
    font-size: 15px;
    font-weight: 800;
    background: #fe7f2d;
    border-radius: 5px;
    transform: rotate(-4deg);
}

.repair-coupon h2 {
    position: relative;
    z-index: 2;
    margin: 0;
    color: #ffffff;
    font-size: 28px;
    font-weight: 800;
}

.coupon-divider {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 22px 0;
}

.coupon-divider span {
    flex: 1;
    border-top: 1px dashed rgba(255, 255, 255, 0.55);
}

.coupon-divider i {
    color: #fe7f2d;
    font-size: 15px;
    animation: couponStar 1.7s ease-in-out infinite;
}

.repair-coupon p {
    position: relative;
    z-index: 2;
    margin-bottom: 22px;
    color: #e9f2ff;
    font-size: 15px;
    line-height: 1.7;
}

.coupon-phone {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 14px 20px;
    color: #ffffff;
    font-size: 20px;
    font-weight: 800;
    text-decoration: none;
    background: #fe7f2d;
    border-radius: 9px;
    transition: 0.3s ease;
}

.coupon-phone:hover {
    color: #214f8e;
    background: #ffffff;
    transform: translateY(-3px);
}

.coupon-website {
    position: relative;
    z-index: 2;
    display: block;
    margin-top: 17px;
    overflow-wrap: anywhere;
    color: #ffffff;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}

.coupon-website:hover {
    color: #ffb27e;
}

.repair-coupon small {
    position: relative;
    z-index: 2;
    display: block;
    margin-top: 13px;
    color: #dce9fa;
    font-size: 11px;
}

.diagnostic-content {
    position: relative;
}

.section-subtitle {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 14px;
    color: #fe7f2d;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.diagnostic-content h2 {
    max-width: 760px;
    margin-bottom: 22px;
    color: #173b68;
    font-size: clamp(32px, 4vw, 50px);
    font-weight: 800;
    line-height: 1.12;
}

.diagnostic-content p {
    margin-bottom: 17px;
    color: #56677a;
    font-size: 16px;
    line-height: 1.85;
}

.diagnostic-content strong {
    color: #214f8e;
    font-weight: 700;
}

.second-block {
    display: flex;
    gap: 20px;
    margin-top: 30px;
    padding: 27px;
    background: #ffffff;
    border-left: 5px solid #fe7f2d;
    border-radius: 0 16px 16px 0;
    box-shadow: 0 15px 40px rgba(32, 72, 117, 0.1);
}

.second-block h3 {
    margin-bottom: 15px;
    color: #173b68;
    font-size: 27px;
    font-weight: 800;
    line-height: 1.3;
}

.second-block p:last-child {
    margin-bottom: 0;
}

.heading-icon {
    display: flex;
    flex: 0 0 58px;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    color: #ffffff;
    font-size: 25px;
    background: #214f8e;
    border-radius: 14px;
}

.diagnostic-call-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 30px;
    padding: 16px 25px;
    color: #ffffff;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    background: #fe7f2d;
    border-radius: 8px;
    box-shadow: 0 12px 25px rgba(254, 127, 45, 0.25);
    transition: 0.3s ease;
}

.diagnostic-call-btn:hover {
    color: #ffffff;
    background: #214f8e;
    transform: translateY(-3px);
}

@keyframes couponFloat {
    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-7px);
    }
}

@keyframes couponStar {
    0%,
    100% {
        opacity: 0.5;
        transform: scale(0.8) rotate(0);
    }

    50% {
        opacity: 1;
        transform: scale(1.2) rotate(90deg);
    }
}

@keyframes diagnosticRotate {
    from {
        transform: rotate(0);
    }

    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 991.98px) {
    .diagnostic-story-section {
        padding: 70px 0;
    }

    .repair-coupon {
        max-width: 470px;
        margin-bottom: 25px;
    }
}

@media (max-width: 575.98px) {
    .diagnostic-story-section {
        padding: 55px 0;
    }

    .repair-coupon {
        padding: 42px 22px 30px;
    }

    .coupon-price strong {
        font-size: 76px;
    }

    .diagnostic-content h2 {
        font-size: 32px;
    }

    .second-block {
        display: block;
        padding: 22px 18px;
    }

    .heading-icon {
        margin-bottom: 18px;
    }

    .second-block h3 {
        font-size: 23px;
    }

    .diagnostic-call-btn {
        width: 100%;
        justify-content: center;
        text-align: center;
    }
}

.service-areas-section {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 8% 15%, rgba(254, 127, 45, 0.12), transparent 25%),
        radial-gradient(circle at 92% 85%, rgba(33, 79, 142, 0.12), transparent 28%),
        #f5f8fc;
}

.service-areas-section::before,
.service-areas-section::after {
    position: absolute;
    content: "";
    border: 2px dashed rgba(33, 79, 142, 0.12);
    border-radius: 50%;
    animation: areaRotate 25s linear infinite;
}

.service-areas-section::before {
    width: 240px;
    height: 240px;
    top: -120px;
    right: -70px;
}

.service-areas-section::after {
    width: 180px;
    height: 180px;
    bottom: -90px;
    left: -50px;
    animation-direction: reverse;
}

.service-areas-section .container {
    position: relative;
    z-index: 2;
}

.section-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 18px;
    color: #fe7f2d;
    background: #ffffff;
    border: 1px solid rgba(254, 127, 45, 0.2);
    border-radius: 50px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    box-shadow: 0 8px 25px rgba(33, 79, 142, 0.08);
}

.section-title {
    margin-bottom: 14px;
    color: #163d72;
    font-size: clamp(32px, 4vw, 48px);
    font-weight: 800;
    line-height: 1.15;
}

.section-description {
    max-width: 700px;
    margin: 0 auto;
    color: #66758a;
    font-size: 17px;
    line-height: 1.8;
}

.area-card {
    position: relative;
    display: flex;
    gap: 18px;
    padding: 28px;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e2eaf4;
    border-radius: 20px;
    box-shadow: 0 12px 35px rgba(20, 54, 95, 0.08);
    transition: transform 0.35s ease, box-shadow 0.35s ease,
                border-color 0.35s ease;
}

.area-card::after {
    position: absolute;
    content: "";
    width: 80px;
    height: 80px;
    right: -35px;
    bottom: -35px;
    background: rgba(254, 127, 45, 0.08);
    border-radius: 50%;
    transition: all 0.35s ease;
}

.area-card:hover {
    transform: translateY(-8px);
    border-color: rgba(254, 127, 45, 0.45);
    box-shadow: 0 20px 45px rgba(20, 54, 95, 0.15);
}

.area-card:hover::after {
    width: 130px;
    height: 130px;
}

.area-icon {
    flex: 0 0 55px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 55px;
    height: 55px;
    color: #ffffff;
    background: linear-gradient(135deg, #214f8e, #376fb5);
    border-radius: 16px;
    font-size: 24px;
    box-shadow: 0 10px 20px rgba(33, 79, 142, 0.22);
    transition: transform 0.35s ease, background 0.35s ease;
}

.area-card:hover .area-icon {
    transform: rotate(-8deg) scale(1.08);
    background: linear-gradient(135deg, #fe7f2d, #ff9b58);
}

.area-content {
    position: relative;
    z-index: 2;
}

.area-content h3 {
    margin: 2px 0 8px;
    color: #163d72;
    font-size: 21px;
    font-weight: 800;
}

.area-content p {
    min-height: 48px;
    margin-bottom: 16px;
    color: #6c7888;
    font-size: 14px;
    line-height: 1.65;
}

.zip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.zip-list span {
    display: inline-block;
    padding: 6px 11px;
    color: #214f8e;
    background: #eef5ff;
    border: 1px solid #dceaff;
    border-radius: 7px;
    font-size: 13px;
    font-weight: 700;
    transition: all 0.3s ease;
}

.area-card:hover .zip-list span {
    color: #ffffff;
    background: #214f8e;
    border-color: #214f8e;
}

.featured-area {
    padding-top: 48px;
    border: 2px solid #fe7f2d;
}

.featured-label {
    position: absolute;
    top: 0;
    right: 0;
    padding: 7px 16px;
    color: #ffffff;
    background: #fe7f2d;
    border-radius: 0 17px 0 15px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.4px;
    text-transform: uppercase;
}

.featured-area .area-icon {
    background: linear-gradient(135deg, #fe7f2d, #ff9b58);
}

.service-area-cta {
    padding: 30px 35px;
    overflow: hidden;
    color: #ffffff;
    background: linear-gradient(90deg, #214f8e 0%, #2b64ad 55%, #376fb5 100%);
    border-radius: 22px;
    box-shadow: 0 18px 45px rgba(33, 79, 142, 0.22);
}

.cta-content {
    display: flex;
    align-items: center;
    gap: 20px;
}

.cta-icon {
    flex: 0 0 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    color: #214f8e;
    background: #ffffff;
    border-radius: 50%;
    font-size: 27px;
    animation: areaPulse 2s ease-in-out infinite;
}

.cta-content h3 {
    margin-bottom: 6px;
    font-size: 25px;
    font-weight: 800;
}

.cta-content p {
    margin: 0;
    color: rgba(255, 255, 255, 0.82);
}

.area-call-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 14px 22px;
    color: #ffffff;
    background: #fe7f2d;
    border: 2px solid #fe7f2d;
    border-radius: 10px;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.3s ease;
}

.area-call-btn:hover {
    color: #214f8e;
    background: #ffffff;
    border-color: #ffffff;
    transform: translateY(-3px);
}

@keyframes areaRotate {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

@keyframes areaPulse {
    0%,
    100% {
        transform: scale(1);
        box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.35);
    }

    50% {
        transform: scale(1.06);
        box-shadow: 0 0 0 12px rgba(255, 255, 255, 0);
    }
}

@media (max-width: 767.98px) {
    .area-card {
        padding: 24px 20px;
    }

    .featured-area {
        padding-top: 48px;
    }

    .service-area-cta {
        padding: 28px 22px;
        text-align: center;
    }

    .cta-content {
        flex-direction: column;
    }

    .area-call-btn {
        width: 100%;
    }
}

@media (max-width: 420px) {
    .area-card {
        display: block;
    }

    .area-icon {
        margin-bottom: 18px;
    }
}

 .site-footer {
      position: relative;
      margin: 22px auto 13px;
      width: calc(100% - 100px);
      max-width: 1804px;
      min-height: 418px;
      overflow: hidden;
      border-radius: 50px;
      background: #0b2346;
    }

    .footer-content {
      position: relative;
      z-index: 2;
      max-width: 1465px;
      margin: 0 auto;
      padding: 77px 24px 0;
    }

    .footer-brand {
      display: inline-flex;
      align-items: center;
      gap: 9px;
      margin-bottom: 31px;
      color: #ffffff;
      font-size: 25px;
      font-weight: 800;
      line-height: 1;
      text-decoration: none;
      letter-spacing: .2px;
    }

    .footer-brand i {
      color: #42c2e8;
      font-size: 42px;
      line-height: 1;
    }

    .footer-about {
      max-width: 335px;
      margin: 0 0 19px;
      color: #ffffff;
      font-size: 16px;
      line-height: 1.5;
    }

    .footer-socials {
      display: flex;
      align-items: center;
      gap: 20px;
    }

    .footer-socials a {
      color: #ffffff;
      font-size: 19px;
      line-height: 1;
      transition: color .25s ease, transform .25s ease;
    }

    .footer-socials a:hover {
      color: #42c2e8;
      transform: translateY(-3px);
    }

    .footer-title {
      margin: 3px 0 29px;
      color: #ffffff;
      font-size: 22px;
      font-weight: 700;
      line-height: 1.2;
    }

    .footer-links {
      display: grid;
      gap: 18px;
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .footer-links a {
      display: inline-flex;
      align-items: center;
      gap: 13px;
      color: #ffffff;
      font-size: 16px;
      text-decoration: none;
      transition: color .25s ease, transform .25s ease;
    }

    .footer-links a i {
      color: #42c2e8;
      font-size: 15px;
    }

    .footer-links a:hover {
      color: #42c2e8;
      transform: translateX(4px);
    }

    .contact-list {
      display: grid;
      gap: 17px;
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .contact-list li {
      display: grid;
      grid-template-columns: 20px 1fr;
      gap: 15px;
      align-items: start;
      color: #ffffff;
      font-size: 16px;
      line-height: 1.45;
    }

    .contact-list i,
    .hours-line i {
      color: #42c2e8;
      font-size: 17px;
    }

    .contact-list a,
    .hours-line a {
      color: #ffffff;
      text-decoration: none;
    }

    .contact-list a:hover,
    .hours-line a:hover { color: #42c2e8; }

    .hours-line {
      display: flex;
      align-items: center;
      gap: 19px;
      margin-bottom: 16px;
      font-size: 16px;
    }

    .hours-copy {
      max-width: 290px;
      margin: 0 0 19px 36px;
      color: #ffffff;
      font-size: 16px;
      line-height: 1.45;
    }

    .license {
      margin-left: 36px;
      color: #c7d1df;
      font-size: 13px;
    }

    .license a {
      margin-left: 17px;
      color: #42c2e8;
      text-underline-offset: 3px;
    }

    .footer-bottom {
      margin-top: 90px;
      padding: 18px 0 17px;
      border-top: 2px solid #263e60;
      color: #c7d1df;
      font-size: 12px;
      text-align: center;
    }

    .footer-decoration {
      position: absolute;
      z-index: 1;
      right: -19px;
      bottom: -34px;
      width: 273px;
      height: 414px;
      color: #42c2e8;
      opacity: .98;
      pointer-events: none;
    }

    .footer-decoration .faucet {
      position: absolute;
      right: 0;
      bottom: 0;
      font-size: 337px;
      line-height: 1;
      transform: rotate(-1deg);
    }

   

    .back-to-top {
      position: absolute;
      z-index: 4;
      right: 29px;
      bottom: 10px;
      display: grid;
      place-items: center;
      width: 64px;
      height: 64px;
      border: 0;
      border-radius: 50%;
      color: #ffffff;
      background: #35bde5;
      box-shadow: 0 0 0 14px #e8f7fc;
      font-size: 27px;
      text-decoration: none;
      transition: transform .25s ease, background .25s ease;
    }

    .back-to-top:hover {
      color: #ffffff;
      background: #2458a6;
      transform: translateY(-5px);
    }

    @media (max-width: 1199.98px) {
      .site-footer { width: calc(100% - 40px); }
      .footer-content { padding-top: 62px; }
      .footer-bottom { margin-top: 58px; }
      .footer-decoration { opacity: .35; }
    }

    @media (max-width: 767.98px) {
      .site-footer {
        width: calc(100% - 24px);
        margin-top: 12px;
        border-radius: 30px;
      }

      .footer-content { padding: 47px 28px 0; }
      .footer-title { margin-top: 8px; margin-bottom: 20px; }
      .hours-copy,
      .license { margin-left: 0; }
      .footer-bottom { margin-top: 48px; padding-right: 50px; }
      .footer-decoration { right: -105px; opacity: .16; }
      .back-to-top { right: 22px; bottom: 19px; width: 52px; height: 52px; font-size: 22px; box-shadow: 0 0 0 9px #e8f7fc; }
    }

/*marquee*/
.marquee {width:100%;margin: 0 auto;overflow: hidden;white-space: nowrap;box-sizing: border-box;animation: marquee 50s linear infinite;color:#fff;background: #fff;border-radius:5px}
.marquee:hover {animation-play-state: paused;filter: grayscale(0);}
/* Make it move */
@keyframes marquee {0%   { text-indent: 27.5em }100% { text-indent: -105em }}

@font-face{font-display:block;font-family:bootstrap-icons;src:url("../fonts/bootstrap-icons.woff2?dd67030699838ea613ee6dbda90effa6") format("woff2"),url("../fonts/bootstrap-icons.woff?dd67030699838ea613ee6dbda90effa6") format("woff")}
.bi::before,[class*=" bi-"]::before,[class^=bi-]::before{display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:400!important;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}

.bi-arrow-right::before{content:"\f138"}.bi-arrow-up::before{content:"\f148"}.bi-calendar2-check::before{content:"\f1f8"}.bi-clock-fill::before{content:"\f291"}.bi-droplet-fill::before{content:"\f30b"}.bi-envelope-fill::before{content:"\f32c"}.bi-facebook::before{content:"\f344"}.bi-geo-alt-fill::before{content:"\f3e7"}.bi-hand-thumbs-up::before{content:"\f407"}.bi-instagram::before{content:"\f437"}.bi-linkedin::before{content:"\f472"}.bi-list-task::before{content:"\f477"}.bi-star-fill::before{content:"\f586"}.bi-telephone-fill::before{content:"\f5b4"}.bi-telephone-outbound-fill::before{content:"\f5bb"}.bi-telephone::before{content:"\f5c1"}.bi-tools::before{content:"\f5db"}.bi-pin-map-fill::before{content:"\f64b"}.bi-quote::before{content:"\f6b0"}.bi-clipboard2-pulse-fill::before{content:"\f72f"}.bi-wrench-adjustable-circle::before{content:"\f78f"}.bi-buildings-fill::before{content:"\f87c"}.bi-person-gear::before{content:"\f8a7"}

form.CUS input.subject {
    display: none;
}
