.hm-hero{min-height:800px}.hm-hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s var(--hl-ease)}.hm-hero-video.is-playing{opacity:1}.hm-video-toggle{position:absolute;top:24px;right:max(32px, calc((100% - var(--hl-container)) / 2));z-index:2;display:grid;place-items:center;width:44px;height:44px;padding:0;color:var(--hl-white);background:rgba(17,28,47,.45);border:1px solid rgba(255,255,255,.32);border-radius:50%;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background .2s ease,border-color .2s ease}.hm-video-toggle:hover,.hm-video-toggle:focus-visible{background:rgba(17,28,47,.7);border-color:var(--hl-white)}.hm-video-toggle svg{width:18px;height:18px;fill:currentColor}.hm-video-toggle .hm-video-play,.hm-video-toggle[aria-pressed="true"] .hm-video-pause{display:none}.hm-video-toggle[aria-pressed="true"] .hm-video-play{display:block}.hm-hero .hl-hero__content{padding-bottom:120px}.hm-red-line{color:var(--hl-red-on-dark)}.hm-rating{display:flex;align-items:center;gap:14px;margin-top:30px;font-size:var(--hl-fs-xs);color:rgba(255,255,255,.88)}.hm-rating strong{color:var(--hl-white)}.hm-rating .stars{display:block;color:var(--hl-google-star);font-size:16px;letter-spacing:2px;line-height:1.2}.hm-google{display:grid;place-items:center;width:42px;height:42px;flex-shrink:0;border-radius:50%;background:var(--hl-white);color:var(--hl-navy);font-family:var(--hl-font-display);font-weight:700;font-size:19px}.hm-scroll{position:absolute;left:max(32px, calc((100% - var(--hl-container)) / 2));bottom:36px;display:inline-flex;align-items:center;gap:14px;color:rgba(255,255,255,.82);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.hm-scroll:hover{color:var(--hl-white)}.hm-scroll-track{position:relative;width:56px;height:1px;overflow:hidden;background:rgba(255,255,255,.3)}.hm-scroll-track i{position:absolute;inset:0;background:var(--hl-red-on-dark);transform:translateX(-100%);animation:hm-track 2.4s var(--hl-ease) infinite}@keyframes hm-track{0%{transform:translateX(-100%)}60%,100%{transform:translateX(100%)}}.hm-trust{border-bottom:1px solid var(--hl-border)}.hm-trust-grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));align-items:center}.hm-trust-intro{padding:40px 40px 40px 0;color:var(--hl-text-muted);font-size:var(--hl-fs-sm)}.hm-trust-intro strong{display:block;margin-bottom:4px;color:var(--hl-navy);font-family:var(--hl-font-display);font-size:var(--hl-fs-h4);font-weight:600;letter-spacing:-.02em;line-height:1.25}.hm-stat{padding:40px 0 40px 36px;border-left:1px solid var(--hl-border)}.hm-stat .stat__number{font-size:52px;margin-bottom:10px}.hm-stat p:not(.stat__number){color:var(--hl-text-muted);font-size:var(--hl-fs-xs);line-height:1.45}.hm-creds-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:var(--hl-space-5)}.hm-recognition{display:flex;gap:14px}.hm-badge-group+.hm-badge-group{margin-top:34px}.hm-badge-label{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}.hm-badge-label h3{font-family:var(--hl-font-body);font-size:var(--hl-fs-eyebrow);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--hl-navy)}.hm-swipe{display:none;flex-shrink:0;white-space:nowrap;font-size:var(--hl-fs-micro);color:var(--hl-text-muted)}.hm-badge-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:12px}.hm-badge{--badge-h:64px;margin:0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:12px;padding:18px 12px 14px;background:var(--hl-white);border:1px solid var(--hl-border);border-radius:var(--hl-radius-lg);transition:transform .22s ease,box-shadow .22s ease}.hm-badge:hover{transform:translateY(-3px);box-shadow:var(--hl-shadow-card)}.hm-badge--lg{--badge-h:76px;width:168px;padding:16px}.hm-badge-art{display:block;width:min(100%, calc(var(--badge-h) * var(--badge-ratio)));aspect-ratio:var(--badge-ratio);max-height:var(--badge-h);background-image:var(--hm-roofing-art);background-repeat:no-repeat}.hm-art--recognition{background-image:var(--hm-recognition-art)}.hm-badge-row--solar .hm-badge-art{width:min(100%, calc(var(--badge-h) * var(--badge-ratio)), 150px)}.hm-badge figcaption{font-size:12px;line-height:1.35;font-weight:600;text-align:center;color:var(--hl-text-muted)}.hm-no-roofing-art .hm-badge-row .hm-badge-art,.hm-no-recognition-art .hm-recognition .hm-badge-art{display:none}.hm-no-roofing-art .hm-badge-row .hm-badge,.hm-no-recognition-art .hm-recognition .hm-badge{justify-content:center;min-height:88px}.hm-no-roofing-art .hm-badge-row figcaption,.hm-no-recognition-art .hm-recognition figcaption{color:var(--hl-navy);font-size:var(--hl-fs-micro);font-weight:700}.hm-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:20px clamp(32px, 6vw, 96px);align-items:end;margin-bottom:var(--hl-space-5)}.hm-head h2 span{display:block;color:var(--hl-text-muted)}.hm-head .lede{font-size:var(--hl-fs-body)}.hm-head--work,.hm-head--reviews,.hm-head--blog{display:flex;justify-content:space-between}.hm-head--blog .text-link{flex-shrink:0}.hm-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.hm-service>a{display:flex;flex-direction:column;height:100%}.hm-service-photo{position:relative;overflow:hidden}.hm-service .card__image{aspect-ratio:3 / 2;transition:transform .6s var(--hl-ease)}.hm-service:hover .card__image{transform:scale(1.05)}.hm-service-num{position:absolute;left:18px;top:18px;padding:6px 10px;background:var(--hl-navy);color:var(--hl-white);border-radius:var(--hl-radius-sm);font-size:12px;font-weight:700;letter-spacing:.08em}.hm-service .card__body{display:flex;flex-direction:column;flex:1}.hm-service h3{font-size:var(--hl-fs-h4);margin-bottom:10px}.hm-service .card__body>p:not(.card__number){color:var(--hl-text-muted);font-size:var(--hl-fs-sm);margin-bottom:18px}.hm-service .text-link{margin-top:auto}.hm-service:hover .text-link{color:var(--hl-red)}.hm-service:hover .text-link .arrow{transform:translateX(4px)}.hm-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:32px;background:var(--hl-surface);border-radius:0 var(--hl-radius-md) var(--hl-radius-md) 0}.hm-bottom .text-link{margin:0}.hm-why-visual{position:relative;margin-bottom:var(--hl-space-6)}.hm-why-photo{margin:0;aspect-ratio:1170 / 388}.hm-local-tag{position:absolute;right:32px;bottom:-28px;display:flex;align-items:center;gap:14px;max-width:calc(100% - 64px);padding:18px 22px;background:var(--hl-white);border-radius:var(--hl-radius-md);box-shadow:var(--hl-shadow-card);color:var(--hl-text-muted);font-size:var(--hl-fs-xs)}.hm-local-tag svg{width:30px;height:30px;flex-shrink:0;color:var(--hl-red)}.hm-local-tag strong{display:block;color:var(--hl-navy);font-size:var(--hl-fs-sm)}.hm-why-content{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-rows:auto auto auto 1fr;column-gap:clamp(40px, 6vw, 104px)}.hm-why-content>:not(.hm-why-points){grid-column:1}.hm-why-content h2{margin-bottom:20px}.hm-why-intro{color:var(--hl-text-on-dark);font-size:var(--hl-fs-body);max-width:52ch;margin-bottom:32px}.hm-why-points{grid-column:2;grid-row:1 / -1;align-self:start;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 28px}.hm-why-points li{position:relative;padding:22px 0 22px 28px;border-top:1px solid var(--hl-border-dark);font-size:var(--hl-fs-xs);color:var(--hl-text-on-dark-muted)}.hm-why-points li::before{content:"✓";position:absolute;left:0;top:22px;color:var(--hl-red-on-dark);font-weight:700}.hm-why-points strong{display:block;margin-bottom:4px;color:var(--hl-white);font-size:var(--hl-fs-sm)}.hm-why-actions{display:flex;flex-wrap:wrap;align-items:center;align-self:start;gap:18px 28px}.hm-why-actions .text-link{margin:0}.hm-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.hm-filter{padding:10px 16px;background:var(--hl-white);border:1px solid var(--hl-border-strong);border-radius:var(--hl-radius-sm);color:var(--hl-navy);font-size:var(--hl-fs-sm);font-weight:600;transition:background-color .2s ease,color .2s ease,border-color .2s ease}.hm-filter:hover{border-color:var(--hl-navy)}.hm-filter[aria-pressed="true"]{background:var(--hl-navy);border-color:var(--hl-navy);color:#fff}.hm-project-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-template-rows:repeat(2,minmax(0,1fr));gap:20px;height:clamp(440px, 46vw, 620px)}.hm-project-grid .hm-tile:first-child{grid-row:span 2}.hm-project-grid.is-filtered{grid-template-columns:minmax(0,1fr);grid-template-rows:none;height:clamp(320px, 48vw, 620px)}.hm-project-grid.is-filtered .hm-tile{grid-row:auto}.hm-tile{position:relative;display:block;width:100%;height:100%;min-height:0;padding:0;overflow:hidden;text-align:left;background:var(--hl-navy);border:0;border-radius:var(--hl-radius-lg)}.hm-tile img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--hl-ease)}.hm-tile:hover img{transform:scale(1.05)}.hm-tile-caption{position:absolute;inset:auto 0 0;display:flex;justify-content:space-between;align-items:end;gap:16px;padding:60px 24px 22px;background:linear-gradient(0deg,rgba(11,20,36,.86),rgba(11,20,36,0));color:var(--hl-white)}.hm-tile-caption strong{display:block;font-family:var(--hl-font-display);font-size:20px;font-weight:600;letter-spacing:-.02em}.hm-tile-caption small{display:block;margin-top:4px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.72)}.hm-zoom{display:grid;place-items:center;width:42px;height:42px;flex-shrink:0;border:1px solid rgba(255,255,255,.4);border-radius:50%;transition:background-color .2s ease,border-color .2s ease}.hm-zoom .arrow{width:14px;height:14px}.hm-tile:hover .hm-zoom{background:var(--hl-red);border-color:var(--hl-red)}.hm-note{margin-top:18px;font-size:var(--hl-fs-micro);color:var(--hl-text-muted)}.hm-note a{color:var(--hl-navy);font-weight:700}.hm-process-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px, 6vw, 112px);align-items:start}.hm-process-intro{position:sticky;top:calc(var(--hl-header-h) + 32px)}.hm-process-intro h2{margin-bottom:18px}.hm-process-intro p:not(.eyebrow){color:var(--hl-text-muted);margin-bottom:28px;max-width:44ch}.hm-steps{list-style:none}.hm-steps li{display:grid;grid-template-columns:72px minmax(0,1fr);gap:0 12px;padding:30px 0 34px;border-top:1px solid rgba(17,28,47,.14)}.hm-steps li:last-child{border-bottom:1px solid rgba(17,28,47,.14)}.hm-step-n{padding-top:6px;color:var(--hl-red);font-size:var(--hl-fs-eyebrow);font-weight:700;letter-spacing:.12em}.hm-steps h3{font-size:var(--hl-fs-h4);margin-bottom:10px}.hm-steps p{color:var(--hl-text-muted);max-width:58ch}.hm-rating-summary{display:grid;justify-items:end;gap:2px;text-align:right;font-size:var(--hl-fs-xs);color:var(--hl-text-muted)}.hm-rating-summary .stars{color:var(--hl-google-star);font-size:20px;letter-spacing:2px}.hm-rating-summary strong{color:var(--hl-navy);font-size:var(--hl-fs-body)}.hm-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.hm-review-grid .testimonial{display:flex;flex-direction:column;margin:0}.hm-review-grid blockquote{margin:0 0 auto}.hm-review-grid figcaption{display:flex;align-items:center;gap:14px;margin-top:24px}.hm-review-grid figcaption>span:last-child{display:grid}.hm-review-grid .testimonial__author{margin:0}.hm-initials{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border-radius:50%;background:var(--hl-navy);color:var(--hl-white);font-size:var(--hl-fs-micro);font-weight:700;letter-spacing:.04em}.hm-solar-wrap{padding-bottom:var(--hl-section-y-compact)}.hm-solar{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);align-items:stretch;overflow:hidden;background:var(--hl-surface-warm);border-radius:var(--hl-radius-xl)}.hm-solar-content{padding:clamp(36px, 5vw, 72px)}.hm-solar-content h2{margin-bottom:18px}.hm-solar-content p:not(.eyebrow){color:var(--hl-text-muted);max-width:52ch;margin-bottom:30px}.hm-solar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px}.hm-solar-actions .text-link{margin:0}.hm-solar-image{margin:0;min-height:360px}.hm-financing{padding-bottom:var(--hl-section-y-compact)}.hm-financing-inner{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:28px clamp(32px, 6vw, 96px);align-items:center;padding:40px 0;border-top:1px solid var(--hl-border);border-bottom:1px solid var(--hl-border)}.hm-financing-copy h2{font-size:var(--hl-fs-h3);margin-bottom:10px}.hm-financing-copy p:not(.eyebrow){color:var(--hl-text-muted)}.hm-financing-logos img{width:100%;max-width:420px;margin-left:auto}.hm-disclosure{grid-column:1 / -1;font-size:var(--hl-fs-micro);color:var(--hl-text-muted);max-width:110ch}.hm-lightbox{width:min(1180px, calc(100vw - 32px));max-height:calc(100vh - 32px);padding:0;overflow:hidden;border:0;border-radius:var(--hl-radius-lg);background:var(--hl-navy-deep);color:var(--hl-white)}.hm-lightbox::backdrop{background:rgba(11,20,36,.86)}.hm-lightbox-image{width:100%;max-height:calc(100vh - 140px);object-fit:contain;background:#000}.hm-lightbox-close{position:absolute;top:14px;right:14px;z-index:2;background:rgba(11,20,36,.6);border-color:rgba(255,255,255,.3);color:var(--hl-white)}.hm-lightbox-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 22px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.6)}.hm-lightbox-title{font-family:var(--hl-font-display);font-size:18px;font-weight:600;letter-spacing:-.01em;text-transform:none;color:var(--hl-white)}@media (max-width:1100px){.hm-swipe{display:inline}.hm-badge-row{grid-auto-columns:168px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:2px 2px 8px;margin:-2px}.hm-badge-row::-webkit-scrollbar{display:none}.hm-badge{scroll-snap-align:start}.hm-service-grid,.hm-review-grid{grid-template-columns:1fr 1fr}.hm-review-grid .testimonial:last-child{grid-column:span 2}.hm-why-content{grid-template-columns:1fr;grid-template-rows:none}.hm-why-content>:not(.hm-why-points),.hm-why-points{grid-column:1;grid-row:auto}.hm-why-points{order:3;margin-bottom:32px}.hm-why-actions{order:4}}@media (max-width:860px){.hm-trust-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hm-trust-intro{grid-column:1 / -1;max-width:none;padding:32px 0 0}.hm-stat{padding:24px 0 32px 20px}.hm-stat:first-of-type{border-left:0;padding-left:0}.hm-creds-head{flex-direction:column;align-items:start}.hm-head,.hm-process-grid{grid-template-columns:1fr}.hm-head--work,.hm-head--reviews,.hm-head--blog{flex-direction:column;align-items:start}.hm-rating-summary{justify-items:start;text-align:left}.hm-process-intro{position:static}.hm-solar,.hm-financing-inner{grid-template-columns:1fr}.hm-solar-image{min-height:0;aspect-ratio:16 / 10}.hm-financing-logos img{margin-left:0}.hm-project-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;height:auto}.hm-project-grid .hm-tile{aspect-ratio:4 / 3;height:auto}.hm-project-grid .hm-tile:first-child{grid-row:auto;grid-column:1 / -1;aspect-ratio:16 / 9}.hm-project-grid.is-filtered{height:auto}.hm-project-grid.is-filtered .hm-tile{grid-column:1 / -1;aspect-ratio:16 / 9}}@media (max-width:700px){.hm-hero{min-height:720px}.hm-hero .hl-hero__content{padding:64px 0 104px}.hm-scroll{display:none}.hm-stat .stat__number{font-size:38px}.hm-stat p:not(.stat__number){font-size:12px}.hm-recognition{width:100%}.hm-badge--lg{flex:1;width:auto}.hm-service-grid,.hm-review-grid{grid-template-columns:1fr}.hm-review-grid .testimonial:last-child{grid-column:auto}.hm-bottom{flex-direction:column;align-items:start}.hm-why-points{grid-template-columns:1fr}.hm-why-photo{aspect-ratio:16 / 9}.hm-local-tag{position:relative;right:auto;bottom:auto;max-width:none;margin:-28px 16px 0}.hm-project-grid{grid-template-columns:1fr}.hm-project-grid .hm-tile,.hm-project-grid .hm-tile:first-child{grid-column:auto;aspect-ratio:4 / 3}.hm-tile-caption{padding:48px 18px 16px}.hm-tile-caption strong{font-size:17px}.hm-steps li{grid-template-columns:52px minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.hm-scroll-track i{animation:none;transform:none}}