:root{
  --qm-ground:#F4EBDD;
  --qm-text:#080706;
  --qm-muted:#6E5F50;
  --qm-line:#2B221B;
  --qm-accent:#E23D22;
  --qm-serif:Georgia,Cambria,"Times New Roman",Times,serif;
  --qm-hair:1px solid color-mix(in srgb,var(--qm-line) 82%,transparent);
  --qm-max:1180px;
  --qm-gutter:clamp(1rem,3vw,2rem);
}
*{box-sizing:border-box}
html{background:var(--qm-ground);color:var(--qm-text);font-family:var(--qm-serif);font-size:16px;line-height:1.45;text-rendering:optimizeLegibility}
body{margin:0;overflow-x:hidden}
img,svg{max-width:100%;height:auto}
a{color:inherit;text-decoration-thickness:.055em;text-underline-offset:.18em;overflow-wrap:anywhere}
a:hover{color:var(--qm-accent)}
p,h1,h2,h3,dl,dd,blockquote,ul{margin-top:0}
p,li,dd{font-size:clamp(1rem,.94rem + .18vw,1.08rem)}
h1,h2,h3{font-weight:600;line-height:.96;text-wrap:balance}
button,input,textarea{font:inherit}
::selection{background:var(--qm-accent);color:var(--qm-ground)}
.qm-skip{position:absolute;left:1rem;top:1rem;z-index:20;transform:translateY(-150%);background:var(--qm-text);color:var(--qm-ground);padding:.55rem .8rem}
.qm-skip:focus{transform:none}
.qm-site-header{border-bottom:var(--qm-hair);background:var(--qm-ground)}
.qm-nav{display:grid;grid-template-columns:auto 1fr auto;align-items:stretch;gap:1rem;max-width:var(--qm-max);margin:auto;padding:0 var(--qm-gutter)}
.qm-brand{display:grid;align-content:center;min-height:74px;padding-right:1.2rem;border-right:var(--qm-hair);font-size:1.22rem;line-height:.9;text-decoration:none;font-weight:600;letter-spacing:-.035em}
.qm-brand span+span{text-indent:1.5rem}
.qm-nav-links{display:flex;align-items:center;gap:clamp(.65rem,2vw,1.6rem);flex-wrap:wrap}
.qm-nav a{font-size:.88rem}
.qm-nav-links a,.qm-email-link{text-decoration:none}
.qm-nav-links a{padding:.3rem 0;border-bottom:1px solid transparent}
.qm-nav-links a[aria-current="page"],.qm-nav-links a:hover{border-color:var(--qm-accent);color:var(--qm-accent)}
.qm-email-link{align-self:center;justify-self:end;color:var(--qm-muted)}
.qm-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--qm-gutter);max-width:var(--qm-max);margin-inline:auto;padding-inline:var(--qm-gutter);min-width:0;background-image:repeating-linear-gradient(90deg,color-mix(in srgb,var(--qm-line) 12%,transparent) 0 1px,transparent 1px calc((100% - (2 * var(--qm-gutter))) / 12));background-origin:content-box;background-clip:content-box}
.qm-panel{position:relative}
.qm-panel-ground{background:var(--qm-ground)}
.qm-panel-accent{background:var(--qm-accent);color:var(--qm-text)}
.qm-panel-black{background:var(--qm-text);color:var(--qm-ground)}
.qm-panel-black a:hover{color:var(--qm-ground)}
.qm-label{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;line-height:1.25;color:var(--qm-muted);margin-bottom:1.05rem}
.qm-panel-black .qm-label{color:color-mix(in srgb,var(--qm-ground) 70%,transparent)}
.qm-panel-accent .qm-label{color:var(--qm-text)}
.qm-display{font-size:clamp(3.1rem,9vw,7.2rem);letter-spacing:-.07em;max-width:12ch;margin-bottom:1.45rem}
.qm-display-small{font-size:clamp(2.6rem,7vw,5.7rem);letter-spacing:-.06em;max-width:13ch;margin-bottom:1.25rem}
.qm-section-title{font-size:clamp(2.05rem,4.8vw,4.8rem);letter-spacing:-.055em;margin-bottom:1.35rem}
.qm-lede,.qm-head-note{font-size:clamp(1.22rem,1.45vw,1.65rem);line-height:1.22;letter-spacing:-.025em;max-width:34em}
.qm-button{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:.78rem 1.05rem .82rem;border:var(--qm-hair);text-decoration:none;background:transparent;color:var(--qm-text);line-height:1}
.qm-button:hover{color:var(--qm-accent);border-color:var(--qm-accent)}
.qm-button-dark{border-color:var(--qm-text)}
.qm-button-dark:hover{color:var(--qm-ground);border-color:var(--qm-ground)}
.qm-text-link{display:inline-flex;width:max-content;max-width:100%;align-items:center;gap:.45rem;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:.12rem}
.qm-text-link:after{content:"→";color:var(--qm-accent);transition:transform .22s ease}
.qm-text-link:hover:after{transform:translateX(.35rem)}
.qm-text-link-dark:after{color:var(--qm-text)}
.qm-hero{min-height:calc(100svh - 75px);overflow:hidden;border-bottom:var(--qm-hair);display:grid;align-items:center;padding-block:clamp(4rem,10vw,8rem)}
.qm-hero-plate{position:absolute;inset:0;display:grid;place-items:center;color:var(--qm-line);opacity:.24;pointer-events:none}
.qm-meter-plate{width:min(1250px,150vw)}
.qm-svg-text{font:24px var(--qm-serif);fill:currentColor;stroke:none}
.qm-svg-number{font:160px var(--qm-serif);fill:currentColor;stroke:none;opacity:.18}
.qm-hero-content{position:relative;z-index:1}
.qm-hero-copy{grid-column:2/span 8;text-align:left}
.qm-hero-actions{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;margin-top:2rem}
.qm-drift{animation:qm-drift 18s ease-in-out infinite alternate;transform-origin:center}
@keyframes qm-drift{from{transform:scale(1.02) translate(-1.2%,.7%)}to{transform:scale(1.09) translate(1.2%,-.9%)}}
.qm-wipe{clip-path:inset(0 0 0 0)}
.qm-wipe.qm-wipe-ready{clip-path:inset(0 100% 0 0)}
.qm-wipe.qm-wipe-in{animation:qm-wipe .95s cubic-bezier(.65,0,.2,1) forwards}
@keyframes qm-wipe{to{clip-path:inset(0 0 0 0)}}
.qm-spec-strip{padding-block:clamp(2rem,5vw,4.8rem);border-bottom:var(--qm-hair)}
.qm-spec{grid-column:span 3;border-left:var(--qm-hair);padding:0 1rem 1rem 1rem;min-width:0}
.qm-spec span,.qm-process-list span{display:block;color:var(--qm-accent);font-size:.88rem;margin-bottom:1.5rem}
.qm-spec h2{font-size:1.65rem;letter-spacing:-.035em;margin-bottom:.7rem}
.qm-spec p{color:var(--qm-muted);max-width:22rem}
.qm-text-band{padding-block:clamp(4rem,10vw,9rem)}
.qm-narrow{grid-column:3/span 6;max-width:72ch}
.qm-narrow-wide{grid-column:3/span 8;max-width:78ch}
.qm-promise{padding-block:clamp(3rem,8vw,7rem);border-block:var(--qm-hair)}
.qm-promise .qm-grid>*{grid-column:2/span 9}
.qm-promise h2{font-size:clamp(2.4rem,5.8vw,5.6rem);letter-spacing:-.06em;margin-bottom:1.4rem}
.qm-promise p{font-size:1.22rem;max-width:58ch}
.qm-evidence{padding-block:clamp(2.5rem,6vw,5rem)}
.qm-fact{grid-column:span 3;border-top:var(--qm-hair);padding-top:1rem;min-width:0}
.qm-fact span{display:block;font-size:clamp(2.4rem,4vw,4.8rem);line-height:.9;letter-spacing:-.06em;margin-bottom:1rem}
.qm-fact p{color:var(--qm-muted)}
.qm-caption{grid-column:4/span 7;border-top:var(--qm-hair);margin-top:2.5rem;padding-top:1rem;font-style:italic;color:var(--qm-muted)}
.qm-page-head{padding-block:clamp(3.5rem,9vw,8rem);border-bottom:var(--qm-hair)}
.qm-page-title{grid-column:1/span 7}
.qm-head-note{grid-column:8/span 5;align-self:end;color:var(--qm-muted)}
.qm-service-water{padding-block:clamp(3rem,7vw,6rem);border-bottom:var(--qm-hair)}
.qm-section-kicker{grid-column:1/span 4}
.qm-section-kicker h2{font-size:clamp(2rem,4vw,4.2rem);letter-spacing:-.055em}
.qm-rule-list{grid-column:5/span 8;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:var(--qm-hair);border-left:var(--qm-hair)}
.qm-rule-list article{padding:1.2rem;border-right:var(--qm-hair);border-bottom:var(--qm-hair)}
.qm-rule-list h3{font-size:1.65rem;margin-bottom:.75rem;letter-spacing:-.035em}
.qm-rule-list p{color:var(--qm-muted)}
.qm-panel-black .qm-rule-list p{color:color-mix(in srgb,var(--qm-ground) 72%,transparent)}
.qm-service-gas{padding-block:clamp(3.2rem,8vw,7rem)}
.qm-schedule{padding-block:clamp(4rem,10vw,9rem)}
.qm-table-section,.qm-pricing,.qm-examples,.qm-contact-detail,.qm-map-section{padding-block:clamp(3rem,7vw,6rem);border-top:var(--qm-hair)}
.qm-table-wrap{grid-column:1/-1;overflow-x:auto;max-width:100%;border:var(--qm-hair)}
.qm-table,.qm-price-table{width:100%;border-collapse:collapse;min-width:720px}
caption{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;color:var(--qm-muted);padding:1rem;border-bottom:var(--qm-hair)}
th,td{text-align:left;vertical-align:top;padding:1rem;border-right:var(--qm-hair);border-bottom:var(--qm-hair)}
th{font-weight:600;font-size:.88rem;letter-spacing:.08em;text-transform:uppercase}
td{color:var(--qm-muted)}
.qm-cta-strip{padding-block:clamp(2.4rem,6vw,4.6rem);align-items:center;border-top:var(--qm-hair)}
.qm-cta-strip h2{grid-column:1/span 5;font-size:clamp(2rem,4vw,4.2rem);letter-spacing:-.055em;margin-bottom:0}
.qm-cta-strip p{grid-column:6/span 4;color:var(--qm-muted);margin-bottom:0}
.qm-cta-strip>div,.qm-cta-strip>a{grid-column:10/span 3;align-self:center}
.qm-method-head{padding-block:clamp(3.5rem,9vw,7rem)}
.qm-method-head .qm-grid>*{grid-column:1/-1}
.qm-number-rail{display:grid;grid-template-columns:repeat(6,1fr);border-top:var(--qm-hair);margin-top:3rem}
.qm-number-rail span{font-size:clamp(2.4rem,7vw,7.2rem);line-height:.95;letter-spacing:-.08em;border-right:var(--qm-hair);padding-top:.6rem}
.qm-process-list{padding-block:clamp(3rem,7vw,6rem)}
.qm-process-list article{grid-column:span 4;border-top:var(--qm-hair);padding:1rem 1rem 1.5rem 0;min-width:0}
.qm-process-list h2{font-size:1.65rem;letter-spacing:-.035em}
.qm-process-list p{color:var(--qm-muted)}
.qm-progress{padding-block:clamp(3rem,7vw,6rem);border-top:var(--qm-hair)}
.qm-progress-rail{grid-column:1/span 4;border-top:var(--qm-hair)}
.qm-progress-button{display:block;width:100%;background:transparent;border:0;border-bottom:var(--qm-hair);padding:1rem 0;text-align:left;color:var(--qm-muted);cursor:pointer}
.qm-progress-button:hover,.qm-progress-button[aria-selected="true"]{color:var(--qm-accent)}
.qm-progress-panels{grid-column:5/span 8;border:var(--qm-hair);padding:clamp(1rem,3vw,2rem)}
.qm-step-panel{transition:opacity .25s ease}
.qm-step-panel h2{font-size:clamp(2rem,4vw,4.2rem);letter-spacing:-.055em}
.qm-step-panel dt{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;margin-top:1rem}
.qm-step-panel dd{margin-left:0;color:var(--qm-muted)}
.qm-progress-enhanced .qm-step-panel[hidden]{display:none}
.qm-access,.qm-turned-away{padding-block:clamp(3rem,7vw,6rem);border-top:var(--qm-hair)}
.qm-hover-list{list-style:none;padding:0;margin:0}
.qm-hover-list li{position:relative;border-top:var(--qm-hair);padding:1rem 0 1rem 2rem;color:var(--qm-muted);transition:transform .2s ease,color .2s ease}
.qm-hover-list li:before{content:"";position:absolute;left:0;top:1.55rem;width:.72rem;height:.72rem;border:1px solid currentColor;transform:rotate(45deg);color:var(--qm-accent);transition:transform .2s ease}
.qm-hover-list li:hover{transform:translateX(.45rem);color:var(--qm-text)}
.qm-panel-black .qm-hover-list li:hover{color:var(--qm-ground)}
.qm-hover-list li:hover:before{transform:rotate(45deg) scale(1.2)}
.qm-timing{padding-block:clamp(3rem,7vw,6rem);border-top:var(--qm-hair)}
.qm-timing>h2{grid-column:1/span 5;font-size:clamp(2rem,4vw,4.2rem);letter-spacing:-.055em}
.qm-card-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-left:var(--qm-hair);border-top:var(--qm-hair)}
.qm-card,.qm-price-card{border-right:var(--qm-hair);border-bottom:var(--qm-hair);padding:1.2rem;min-width:0}
.qm-card h3,.qm-price-card h2{font-size:1.65rem;letter-spacing:-.035em;margin-bottom:.8rem}
.qm-card p,.qm-price-card p{color:var(--qm-muted)}
.qm-owner-note{grid-column:5/span 7;margin:3rem 0 0;border-top:var(--qm-hair);padding-top:1rem;font-style:italic;color:var(--qm-muted)}
.qm-owner-note cite{display:block;margin-top:.6rem;color:var(--qm-text)}
.qm-filter-tabs{grid-column:1/-1;display:flex;gap:.8rem;flex-wrap:wrap;margin-bottom:1rem}
.qm-filter-button{background:transparent;border:var(--qm-hair);padding:.55rem .8rem;cursor:pointer;color:var(--qm-text)}
.qm-filter-button:hover,.qm-filter-button[aria-pressed="true"]{color:var(--qm-accent);border-color:var(--qm-accent)}
.qm-price-table tbody tr{transition:opacity .22s ease,visibility .22s ease}
.qm-price-row-fading{opacity:0;visibility:hidden}
.qm-price-row-hidden{display:none}
.qm-items-stretch{align-items:stretch}
.qm-price-card{display:flex;flex-direction:column}
.qm-price-card strong{display:block;margin:auto 0 1rem;font-size:1.22rem;line-height:1.15}
.qm-terms{padding-block:clamp(3.2rem,8vw,7rem)}
.qm-contact-hero{padding-block:clamp(4rem,10vw,8rem)}
.qm-contact-hero .qm-grid>*{grid-column:1/-1}
.qm-contact-email{font-size:clamp(2.6rem,10vw,7.2rem);line-height:.9;letter-spacing:-.07em;margin-bottom:1.8rem}
.qm-contact-email a{text-decoration:none}
.qm-checklist{grid-column:8/span 5}
.qm-contact-detail .qm-narrow{grid-column:1/span 6}
.qm-map-section>div{grid-column:1/span 4}
.qm-map{grid-column:5/span 8;color:var(--qm-line)}
.qm-map-text{font:22px var(--qm-serif);fill:currentColor}
.qm-italic{font-style:italic;color:var(--qm-muted)}
.qm-footer{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;max-width:var(--qm-max);margin:auto;padding:1.4rem var(--qm-gutter) 2rem;border-top:var(--qm-hair);color:var(--qm-muted)}
.qm-footer nav{display:flex;gap:1rem;flex-wrap:wrap}
.qm-footer a{text-decoration:none}
.qm-reveal-hidden{opacity:1;transform:translateY(.75rem)}
[data-reveal]{transition:opacity .55s ease,transform .55s ease}
@media (max-width:900px){
  .qm-nav{grid-template-columns:1fr;gap:.3rem;padding-block:.8rem}
  .qm-brand{min-height:auto;border-right:0;padding-right:0}
  .qm-email-link{justify-self:start}
  .qm-hero-copy,.qm-page-title,.qm-head-note,.qm-section-kicker,.qm-rule-list,.qm-narrow,.qm-narrow-wide,.qm-promise .qm-grid>*,.qm-cta-strip h2,.qm-cta-strip p,.qm-cta-strip>div,.qm-cta-strip>a,.qm-progress-rail,.qm-progress-panels,.qm-timing>h2,.qm-owner-note,.qm-checklist,.qm-contact-detail .qm-narrow,.qm-map-section>div,.qm-map{grid-column:1/-1}
  .qm-spec{grid-column:span 6;margin-bottom:1.5rem}
  .qm-fact{grid-column:span 6}
  .qm-caption{grid-column:1/-1}
  .qm-rule-list{grid-template-columns:1fr;margin-top:2rem}
  .qm-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .qm-progress-panels{margin-top:1.5rem}
  .qm-cta-strip{gap:1rem}
}
@media (max-width:560px){
  .qm-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .qm-display{font-size:clamp(3rem,16vw,4.4rem)}
  .qm-spec,.qm-fact,.qm-process-list article{grid-column:1/-1}
  .qm-card-grid{grid-template-columns:1fr}
  .qm-number-rail{grid-template-columns:repeat(3,1fr)}
  .qm-rule-list article,.qm-card,.qm-price-card{padding:1rem}
  th,td{padding:.8rem}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}
  .qm-drift{animation:none}
  .qm-reveal-hidden{opacity:1;transform:none}
  .qm-wipe.qm-wipe-ready{clip-path:inset(0 0 0 0)}
}