/* Leak Detection Vail — "Alpine" design system */
:root{
  --snow:#F7FAFD; --ice:#E6F0F8; --ice-2:#D3E4F1; --navy:#0D2236; --navy-2:#142E47; --glacier:#6EC1E4; --blue:#1B6FB5;
  --pine:#1E7A5A; --pine-dark:#156046; --slate:#53667A; --ink:#14263A; --line:#D8E4EE; --white:#fff; --sun:#F2B36B;
  --head:"Archivo",system-ui,sans-serif; --body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --r:18px; --shadow:0 20px 44px -26px rgba(13,34,54,.5);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--snow);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}
a{color:var(--blue)}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
h1,h2,h3,h4{font-family:var(--head);font-weight:800;color:var(--navy);line-height:1.08;letter-spacing:-.025em;margin:0 0 .5em}
h1{font-size:clamp(2.4rem,5.2vw,4.3rem)}
h2{font-size:clamp(1.8rem,3.2vw,2.7rem)}
h3{font-size:1.2rem;font-weight:700;letter-spacing:-.01em}
p{margin:0 0 1.1em;max-width:66ch;color:var(--slate)}
p.lead{font-size:1.18rem;color:var(--ink)}
ul,ol{color:var(--slate);padding-left:1.2em;margin:0 0 1.1em}li{margin-bottom:.4em}
.skip-link{position:absolute;left:-999px;background:var(--navy);color:#fff;padding:10px 16px;z-index:999}.skip-link:focus{left:16px;top:16px}
:focus-visible{outline:3px solid var(--sun);outline-offset:3px}
.eyebrow{display:inline-block;font-family:var(--head);font-weight:700;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--blue);margin-bottom:14px;padding:6px 12px;background:var(--ice);border-radius:8px}
.dark .eyebrow{background:rgba(110,193,228,.14);color:var(--glacier)}

/* Utility bar + header */
.util{background:var(--navy);color:#A9C2D8;font-size:.84rem}
.util .wrap{display:flex;justify-content:space-between;gap:14px;padding-top:8px;padding-bottom:8px;flex-wrap:wrap}
.util a{color:#fff;font-weight:700;text-decoration:none}
.site-header{position:sticky;top:0;z-index:50;background:rgba(247,250,253,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:12px;padding-bottom:12px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--navy);font-family:var(--head);font-weight:800;font-size:1.18rem;line-height:1}
.brand .logo{width:42px;height:42px;flex:none}
.brand small{display:block;font-family:var(--body);font-size:.66rem;letter-spacing:.2em;font-weight:700;color:var(--blue);margin-top:5px}
nav.primary-nav{display:flex;align-items:center;gap:2px}
nav.primary-nav>a,.has-menu>a{display:block;text-decoration:none;color:var(--ink);font-weight:600;font-size:.94rem;padding:9px 13px;border-radius:10px}
nav.primary-nav>a:hover,.has-menu>a:hover{background:var(--ice)}
.has-menu{position:relative}.has-menu>a::after{content:"▾";font-size:.7rem;margin-left:6px;color:var(--blue)}
.menu{display:none;position:absolute;top:100%;left:0;min-width:300px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:8px;z-index:20}
.has-menu:hover .menu,.has-menu:focus-within .menu{display:block}
.menu a{display:block;padding:9px 14px;border-radius:9px;text-decoration:none;color:var(--ink);font-weight:600;font-size:.92rem}.menu a:hover{background:var(--ice);color:var(--blue)}
.header-call{display:inline-flex;align-items:center;gap:9px;background:var(--pine);color:#fff;text-decoration:none;font-weight:700;padding:12px 20px;border-radius:12px;white-space:nowrap;transition:.2s}
.header-call:hover{background:var(--pine-dark);transform:translateY(-1px)}
.nav-toggle{display:none}
@media(max-width:1060px){
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1.5px solid var(--navy);background:none;border-radius:11px;cursor:pointer;margin-left:auto}
  nav.primary-nav{position:fixed;inset:105px 0 0 0;background:var(--snow);flex-direction:column;align-items:stretch;padding:18px 24px;transform:translateX(100%);transition:transform .25s;overflow:auto}
  nav.primary-nav.open{transform:none}
  nav.primary-nav>a,.has-menu>a{font-size:1.1rem;padding:14px 6px;border-bottom:1px solid var(--line);border-radius:0}
  .has-menu>a::after{display:none}.menu{display:block;position:static;border:0;box-shadow:none;background:transparent;padding:0 0 0 14px}
  .header-call .t{display:none}.header-call{padding:12px 14px}
}
.mobile-call-bar{display:none}
@media(max-width:640px){
  .util .wrap>span:last-child{display:none}.header-call{display:none}
  .mobile-call-bar{display:flex;position:fixed;left:12px;right:12px;bottom:12px;z-index:60;align-items:center;justify-content:center;gap:10px;background:var(--pine);color:#fff;text-decoration:none;font-weight:700;padding:15px;border-radius:14px;box-shadow:0 14px 30px -10px rgba(13,34,54,.6)}
  body{padding-bottom:86px}nav.primary-nav{inset:62px 0 0 0}
}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--body);font-weight:700;font-size:1rem;text-decoration:none;padding:15px 28px;border-radius:12px;border:2px solid transparent;cursor:pointer;transition:.2s}
.btn-primary{background:var(--pine);color:#fff;box-shadow:0 14px 26px -14px rgba(30,122,90,.9)}.btn-primary:hover{background:var(--pine-dark);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--navy);border-color:var(--navy)}.btn-ghost:hover{background:var(--navy);color:#fff}
.dark .btn-ghost{color:#fff;border-color:rgba(255,255,255,.55)}.dark .btn-ghost:hover{background:#fff;color:var(--navy);border-color:#fff}
.btn-block{width:100%;justify-content:center}

/* Dark hero w/ ridges */
.dark{background:linear-gradient(180deg,#0A1B2D 0%,#12304D 55%,#1B4A70 100%);color:#fff;position:relative;overflow:hidden}
.dark h1,.dark h2,.dark h3{color:#fff}.dark p{color:#BFD3E4}.dark p.lead{color:#E8F1F8}
.stars{position:absolute;inset:0;background-image:radial-gradient(2px 2px at 12% 18%,#fff,transparent),radial-gradient(1.5px 1.5px at 28% 40%,#fff,transparent),radial-gradient(2px 2px at 46% 12%,#fff,transparent),radial-gradient(1.5px 1.5px at 63% 30%,#fff,transparent),radial-gradient(2px 2px at 78% 16%,#fff,transparent),radial-gradient(1.5px 1.5px at 90% 38%,#fff,transparent),radial-gradient(1.5px 1.5px at 7% 55%,#fff,transparent),radial-gradient(1.5px 1.5px at 55% 55%,#fff,transparent);opacity:.55}
@keyframes twinkle{50%{opacity:.25}}.stars{animation:twinkle 6s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.stars{animation:none}.ping,.drip{animation:none}}
.ridge{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:150px;display:block}
.hero{padding:76px 0 190px}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:54px;align-items:center}
.hero h1 span{color:var(--glacier)}
.hero p.lead{margin:20px 0 30px;max-width:54ch}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px;padding:0;list-style:none}
.pills li{margin:0;padding:8px 14px;border:1px solid rgba(255,255,255,.22);border-radius:999px;font-size:.88rem;font-weight:600;color:#E8F1F8;background:rgba(255,255,255,.06)}
.glass{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(10px);border-radius:var(--r);padding:30px;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.glass h2{font-size:1.5rem;margin-bottom:6px}.glass p{font-size:.95rem}
.glass ol{list-style:none;padding:0;margin:16px 0 20px;counter-reset:g;display:grid;gap:12px}
.glass li{counter-increment:g;display:grid;grid-template-columns:36px 1fr;gap:12px;color:#E8F1F8;margin:0;font-size:.97rem}
.glass li::before{content:counter(g);display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--glacier);color:var(--navy);font-family:var(--head);font-weight:800}
@keyframes ping{0%{r:6;opacity:.9}100%{r:26;opacity:0}}@keyframes drip{0%{transform:translateY(0);opacity:1}100%{transform:translateY(18px);opacity:0}}
.ping{animation:ping 2.4s ease-out infinite}.ping.d2{animation-delay:1s}.drip{animation:drip 1.7s ease-in infinite}
@media(max-width:900px){.hero .wrap{grid-template-columns:1fr}.hero{padding:48px 0 160px}}

/* Sections */
section{padding:92px 0}
.bg-ice{background:var(--ice)}
.head{max-width:740px;margin-bottom:46px}.head.center{margin-left:auto;margin-right:auto;text-align:center}.head.center p{margin-left:auto;margin-right:auto}
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center}
@media(max-width:860px){.split{grid-template-columns:1fr;gap:30px}section{padding:66px 0}}

/* Service cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card{position:relative;display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:30px 28px 26px;text-decoration:none;color:inherit;overflow:hidden;transition:.25s}
.card::after{content:"";position:absolute;right:-1px;top:-1px;width:0;height:0;border-style:solid;border-width:0 54px 54px 0;border-color:transparent var(--ice) transparent transparent;transition:.25s}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--glacier)}
.card:hover::after{border-right-color:var(--glacier)}
.card .ic{width:50px;height:50px;border-radius:14px;background:var(--ice);display:grid;place-items:center;color:var(--blue)}
.card .ic svg{width:26px;height:26px}
.card h3{margin:6px 0 0;font-size:1.2rem}.card p{margin:0;font-size:.96rem}
.card .more{margin-top:auto;padding-top:10px;font-weight:700;color:var(--blue);font-size:.93rem}
@media(max-width:980px){.cards{grid-template-columns:1fr 1fr}}@media(max-width:620px){.cards{grid-template-columns:1fr}}

/* Feature rows */
.feat{display:grid;gap:18px}
.feat div{display:grid;grid-template-columns:54px 1fr;gap:18px;padding:22px;border-radius:16px;background:#fff;border:1px solid var(--line)}
.feat .ic{width:54px;height:54px;border-radius:14px;background:var(--navy);display:grid;place-items:center;color:var(--glacier)}
.feat .ic svg{width:26px;height:26px}
.feat h3{margin:0 0 4px}.feat p{margin:0;font-size:.96rem}

/* Vertical timeline */
.vt{position:relative;display:grid;gap:26px;padding-left:34px}
.vt::before{content:"";position:absolute;left:15px;top:6px;bottom:6px;width:2px;background:linear-gradient(var(--blue),var(--glacier))}
.vt>div{position:relative;background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 24px}
.vt>div::before{content:"";position:absolute;left:-27px;top:26px;width:16px;height:16px;border-radius:50%;background:var(--snow);border:4px solid var(--blue)}
.vt h3{margin:0 0 6px}.vt p{margin:0;font-size:.96rem}

/* Signs grid */
.signs{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;list-style:none;padding:0}
.signs li{margin:0;background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px}
.signs li::before{content:"";display:block;width:34px;height:34px;margin-bottom:12px;border-radius:10px;background:var(--ice) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B6FB5' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 3c4 5 6.500 8 6.500 11a6.500 6.500 0 0 1-13 0C5.500 11 8 8 12 3z'/%3E%3C/svg%3E") center/20px no-repeat}
.signs strong{display:block;font-family:var(--head);font-size:1.05rem;color:var(--navy);margin-bottom:4px;line-height:1.25}
.signs span{font-size:.93rem;color:var(--slate)}
@media(max-width:900px){.signs{grid-template-columns:1fr 1fr}}@media(max-width:560px){.signs{grid-template-columns:1fr}}

/* Callout + at a glance */
.glance{background:var(--navy);color:#fff;border-radius:var(--r);padding:30px}
.glance h3{color:#fff}.glance ul{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:12px}
.glance li{margin:0;color:#CFE0EE;display:flex;gap:12px;font-size:.96rem}.glance li::before{content:"▲";color:var(--glacier);font-size:.7rem;margin-top:6px}
.winter{background:linear-gradient(135deg,var(--ice),#fff);border:1px solid var(--ice-2);border-left:6px solid var(--blue);border-radius:var(--r);padding:30px 34px}
.winter h3{margin-bottom:8px}.winter p{margin:0;color:var(--ink)}

/* FAQ */
.faq{display:grid;grid-template-columns:1fr 1fr;gap:12px 22px;align-items:start}
.faq details{background:#fff;border:1px solid var(--line);border-radius:14px;transition:.2s}
.faq details[open]{border-color:var(--glacier);box-shadow:var(--shadow)}
.faq summary{cursor:pointer;list-style:none;font-family:var(--head);font-weight:700;font-size:1.05rem;color:var(--navy);padding:19px 22px;display:flex;justify-content:space-between;gap:14px}
.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";color:var(--blue);font-size:1.5rem;line-height:1}.faq details[open] summary::after{content:"–"}
.faq .a{padding:0 22px 18px}.faq .a p{margin:0;font-size:.97rem}
.faq.one{grid-template-columns:1fr}
@media(max-width:860px){.faq{grid-template-columns:1fr}}

/* Local + CTA */
.localband{padding:92px 0}
.addr{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);border-radius:var(--r);padding:34px}
.addr .tel{display:block;font-family:var(--head);font-weight:800;font-size:2rem;color:var(--glacier);text-decoration:none;margin:8px 0 4px}
.addr address{font-style:normal;color:#fff}
.cta{background:var(--pine);color:#fff;padding:0;position:relative;overflow:hidden}
.cta::before{content:"";position:absolute;right:-60px;bottom:-90px;width:0;height:0;border-style:solid;border-width:0 0 280px 380px;border-color:transparent transparent rgba(255,255,255,.08) transparent}
.cta .wrap{position:relative;display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap;padding:68px 24px}
.cta h2{color:#fff;margin:0 0 8px}.cta p{color:#D5F0E5;margin:0}
.cta .btn-primary{background:#fff;color:var(--pine-dark);box-shadow:none}.cta .btn-primary:hover{background:var(--ice)}
.cta .btn-ghost{color:#fff;border-color:rgba(255,255,255,.6)}.cta .btn-ghost:hover{background:#fff;color:var(--pine-dark)}

/* Inner hero */
.phero{padding:26px 0 150px}
.phero .wrap{position:relative}
.crumbs{font-size:.86rem;color:#9FBAD0;padding-top:6px}.crumbs a{color:#BFD3E4;text-decoration:none;font-weight:600}.crumbs a:hover{color:#fff}.crumbs .sep{margin:0 8px;opacity:.5}
.phero h1{font-size:clamp(2.1rem,4.5vw,3.5rem);max-width:21ch;margin-top:26px}
.phero p.lead{max-width:62ch;margin-top:12px}
.phero .hero-cta{margin-top:26px}
.pbody{padding:70px 0}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.chips a{text-decoration:none;background:#fff;border:1px solid var(--line);color:var(--navy);font-weight:600;font-size:.9rem;padding:10px 17px;border-radius:999px;transition:.2s}
.chips a:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.related{padding:60px 0;background:var(--ice)}.related h2{font-size:1.5rem}

/* Form */
.form{display:grid;gap:16px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:34px;box-shadow:var(--shadow)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:700px){.row{grid-template-columns:1fr}}
label{display:block;font-weight:700;font-size:.9rem;margin-bottom:6px;color:var(--navy)}
input,select,textarea{width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:11px;font-family:var(--body);font-size:1rem;background:var(--snow);color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);background:#fff;box-shadow:0 0 0 4px rgba(27,111,181,.18)}
textarea{min-height:120px;resize:vertical}

/* Footer */
.site-footer{background:#08182A;color:#A9C2D8;padding:70px 0 28px;font-size:.94rem}
.site-footer h4{color:#fff;font-size:1rem;margin-bottom:14px;letter-spacing:.01em}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:38px}
.fgrid a{color:#A9C2D8;text-decoration:none}.fgrid a:hover{color:var(--glacier)}
.fgrid ul{list-style:none;padding:0;margin:0;display:grid;gap:9px}.fgrid p{color:#A9C2D8}
.fbot{border-top:1px solid #17304A;margin-top:42px;padding-top:20px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.84rem;color:#6F8CA6}
@media(max-width:800px){.fgrid{grid-template-columns:1fr 1fr}}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
