.elementor-17 .elementor-element.elementor-element-da45a9b{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}/* Start custom CSS for html, class: .elementor-element-d04d953 */.hero{
  position:relative;
  padding:72px 0 56px;
  background-image:
    linear-gradient(var(--paper), var(--paper)),
    repeating-linear-gradient(0deg, transparent, transparent 39px, rgba(69,75,87,0.07) 39px, rgba(69,75,87,0.07) 40px),
    repeating-linear-gradient(90deg, transparent, transparent 39px, rgba(69,75,87,0.07) 39px, rgba(69,75,87,0.07) 40px);
  background-blend-mode:normal;
  overflow:hidden;
}
.hero-grid{
  display:grid; grid-template-columns:1.1fr 0.9fr; gap:48px; align-items:center;
}
.hero-photo-wrap{position:relative;}
.hero-photo-wrap::before{
  content:""; position:absolute; top:-28px; right:-28px;
  width:120px; height:120px; border:14px solid var(--copper);
  border-radius:50%; opacity:0.35; z-index:0;
}
.hero-photo-wrap::after{
  content:""; position:absolute; bottom:-18px; left:-18px;
  width:64px; height:64px; border:9px solid var(--copper);
  border-radius:50%; opacity:0.22; z-index:0;
}
.hero-photo{
  position:relative; z-index:1;
  border-radius:var(--radius); overflow:hidden; border:1px solid var(--line);
  box-shadow:0 24px 48px rgba(22,23,28,0.14);
}
.hero-photo img{width:100%; height:100%; object-fit:cover;}
.eyebrow{
  font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.1em;
  color:var(--copper-dark); text-transform:uppercase; font-weight:600;
  display:inline-flex; align-items:center; gap:10px; margin-bottom:18px;
}
.eyebrow::before{content:""; width:22px; height:2px; background:var(--copper); display:inline-block;}
.hero h1{
  font-size:clamp(34px, 4.6vw, 54px); font-weight:900; letter-spacing:-0.01em;
  margin-bottom:20px;
}
.hero h1 em{font-style:normal; color:var(--copper);}
.hero-sub{font-size:18px; color:var(--steel); max-width:52ch; margin-bottom:30px;}
 
.spec-strip{
  display:grid; grid-template-columns:repeat(4,1fr); gap:0;
  border-top:1px dashed var(--steel-light); border-bottom:1px dashed var(--steel-light);
}
.spec-item{
  padding:14px 14px 14px 0; border-right:1px dashed var(--steel-light);
}
.spec-item:last-child{border-right:none;}
.spec-item .k{font-family:'IBM Plex Mono',monospace; font-size:10px; color:var(--steel-light); text-transform:uppercase; letter-spacing:0.07em; margin-bottom:4px;}
.spec-item .v{font-weight:700; font-size:14.5px; color:var(--ink);}
 
@media (max-width:860px){
  .hero-grid{grid-template-columns:1fr;}
  .spec-strip{grid-template-columns:1fr 1fr;}
  .spec-item{border-bottom:1px dashed var(--steel-light); padding:14px 0;}
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-904d8e3 */.guarantee{
  background:var(--ink); color:var(--paper);
  position:relative; overflow:visible;
}
.guarantee-row{
  display:grid; grid-template-columns:auto 1fr; gap:36px; align-items:center;
}
.seal{
  width:160px; height:160px; border-radius:50%;
  border:3px dashed var(--copper);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
  background:var(--ink);
  margin-top:-96px;
  position:relative; z-index:5;
  box-shadow:0 28px 44px rgba(0,0,0,0.4);
}
.seal .seal-inner{
  width:126px; height:126px; border-radius:50%; border:1px solid rgba(246,246,243,0.35);
  display:flex; align-items:center; justify-content:center; text-align:center;
  font-family:'IBM Plex Mono',monospace; font-size:11.5px; line-height:1.35;
  text-transform:uppercase; letter-spacing:0.05em; color:var(--copper-light);
  padding:8px;
}
.guarantee h2{color:var(--white); font-size:clamp(26px,3.6vw,40px); margin-bottom:14px;}
.guarantee p{color:#c7c8c3; font-size:17px; max-width:56ch;}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-252a89a */.service-cards{display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:36px;}
.service-card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; position:relative;
  box-shadow:0 16px 32px rgba(22,23,28,0.09);
}
@media (min-width:861px){
  .service-cards > .service-card:nth-child(2){ margin-top:28px; }
}
.service-photo{width:100%; height:auto; display:block;}
.service-card-body{padding:32px; position:relative;}
.service-card .num{
  font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--steel-light);
  position:absolute; top:24px; right:28px;
}
.service-icon{width:46px; height:46px; margin-bottom:18px;}
.service-card h3{font-size:22px; font-weight:700; margin-bottom:10px;}
.service-card p{color:var(--steel); font-size:15.5px;}
 
.more-services{
  display:flex; flex-wrap:wrap; gap:10px;
}
.tag{
  font-family:'IBM Plex Mono',monospace; font-size:12.5px; text-transform:uppercase;
  letter-spacing:0.04em; padding:8px 14px; border:1px solid var(--line);
  border-radius:999px; color:var(--steel); background:var(--white);
}
 
@media (max-width:860px){
  .service-cards{grid-template-columns:1fr;}
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-94ac546 */.area{
  background:var(--paper-alt);
  position:relative; z-index:2;
  margin-top:-48px;
  padding:124px 0 76px;
  box-shadow:0 -24px 48px rgba(22,23,28,0.07);
}
.area-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; position:relative;}
.town-list{list-style:none; margin:0; padding:0;}
.town-list li{
  display:flex; align-items:center; gap:12px;
  padding:14px 0; border-bottom:1px dashed var(--line);
  font-weight:600; font-size:16px;
}
.town-list li:first-child{padding-top:0;}
.town-list .pin{width:16px; height:16px; flex-shrink:0; color:var(--copper);}
.area-note{color:var(--steel-light); font-size:13.5px; margin-top:16px; font-family:'IBM Plex Mono',monospace;}
.pipe-deco--area{top:-64px; left:-10px; width:110px; height:150px; opacity:0.16;}
 
.map-frame{
  border:1px solid var(--line); border-radius:var(--radius);
  background:var(--white); padding:18px;
  box-shadow:0 16px 32px rgba(22,23,28,0.09);
}
.map-frame .frame-label{
  display:flex; justify-content:space-between;
  font-family:'IBM Plex Mono',monospace; font-size:10px; color:var(--steel-light);
  text-transform:uppercase; letter-spacing:0.06em; margin-bottom:10px;
}
.map-frame iframe{
  display:block; width:100%; border-radius:6px;
}
 
@media (max-width:860px){
  .area-grid{grid-template-columns:1fr;}
}/* End custom CSS */