/* Real photography, restrained motion and readable service information. */
button:focus-visible { outline:3px solid #25846e; outline-offset:4px }
.hero { padding-top:64px }
.hero-copy h1 { font-size:57px; line-height:1.08; letter-spacing:-2.5px }
.hero-description { font-size:16px; line-height:1.75 }
.hero-text-only { grid-template-columns:1fr; max-width:920px }
.hero-text-only .hero-description { max-width:700px }
.hero-text-only h1 { max-width:760px }
.hero-realization { border-radius:7px; box-shadow:none; border:1px solid #24483f }
.hero-realization > img.photo-wifi { object-position:50% 30% }
.hero-realization figcaption { padding:17px 21px }
.service-strip { background:#eef2e8 }
.service-card { background:#fff; border-radius:5px; min-height:290px }
.service-card h3 { font-size:24px; margin-top:18px }
.service-card p { font-size:13px; line-height:1.75 }
.card-action { font-size:12px }
.services-grid { gap:16px }
.hero-notes,.eyebrow,.card-number { font-size:11px }
.service-page-content .section-heading { align-items:flex-start }
.service-page-content .section-heading h2 { font-size:34px; max-width:650px }
.case-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:32px 0 }
.case-card { border-left:3px solid #6c9770; background:#eef2e8; padding:23px 25px }
.case-card h3 { font-size:22px; line-height:1.3; margin:0 0 13px; letter-spacing:-.4px }
.case-card p,.service-scope p,.service-scope li,.quote-prompt p { color:#536761; font-size:14px; line-height:1.8 }
.case-card p { margin:0 }
.service-scope { display:grid; grid-template-columns:1fr 1fr; gap:55px; margin-top:40px }
.service-scope .eyebrow { margin-bottom:13px }
.service-scope ul { margin:0; padding-left:19px }
.service-scope li { margin-bottom:7px }
.service-scope p { margin-top:0 }
.quote-prompt { display:flex; gap:40px; align-items:center; justify-content:space-between; margin-top:35px; padding:27px 30px; border:1px solid #c8d4c0; border-radius:5px }
.quote-prompt>div { max-width:630px }
.quote-prompt h3 { font-size:21px; margin:0 0 10px }
.quote-prompt p { margin:7px 0 0 }
.quote-prompt .button { flex-shrink:0 }
.gallery-focused { grid-template-columns:repeat(3,1fr) }
.related-services { padding-top:55px; padding-bottom:55px }
.related-services h2 { font-size:30px }
.related-services>div { display:flex; flex-wrap:wrap; gap:11px }
.related-services a { border:1px solid #c8d4c0; padding:12px 15px; font-size:13px; border-radius:3px }
.related-services a:hover { background:#e9efdf }
.related-services span { margin-left:12px }
.realization-caption-link { display:block; color:inherit }
.realization-caption-link small { display:flex; align-items:center; justify-content:space-between; margin-top:14px; font-size:11px; color:#577268 }
.realization-caption-link b { font-size:16px; font-weight:400 }
.realization-card img.photo-top-detail { object-position:50% 25% }
.realization-caption-link:hover { color:#25735d }
.gallery-actions { display:flex; flex-wrap:wrap; gap:20px 36px; margin-top:30px }
.case-hero { padding-bottom:55px }
.case-hero .hero-grid { padding:0 }
.case-hero .hero-realization { background:#edf1e9; border-color:#c8d4c0; align-self:start }
.case-hero .hero-realization>img { width:100%; height:510px; aspect-ratio:auto; object-fit:contain; object-position:center }
.case-hero .hero-realization figcaption { background:#fff; color:#122f2b }
.case-hero .hero-realization figcaption span { color:#617268 }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:11px; font-size:12px; color:#63776d; margin-bottom:38px }
.breadcrumbs a { text-decoration:underline; text-underline-offset:3px }
.installation-story { display:grid; grid-template-columns:1fr 1.35fr; gap:60px }
.installation-story h2 { font-size:36px }
.story-copy p { font-size:16px; line-height:1.85; color:#536761; margin:0 0 22px }
.detail-photo-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; align-items:start }
.detail-photo { margin:0; background:#fff; border:1px solid #d8e1d2; border-radius:6px; overflow:hidden }
.detail-photo img { display:block; width:100%; height:520px; object-fit:contain; background:#f4f6ef }
.detail-photo figcaption { font-size:13px; padding:18px 21px; line-height:1.55 }
.installation-check-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:30px 0 }
.installation-check-grid .case-card { margin:0 }
.installation-check-grid h3 { margin-top:15px }
.case-service-links { display:flex; flex-wrap:wrap; gap:20px 30px; margin-top:35px }
.gallery-intro { padding-bottom:48px }
.gallery-intro h1 { font-size:60px; letter-spacing:-2.8px; line-height:1.08; margin:22px 0 }
.gallery-intro .hero-description { max-width:740px }
.gallery-category-nav { display:flex; flex-wrap:wrap; gap:13px; margin-top:26px }
.gallery-category-nav a { border:1px solid #c8d4c0; border-radius:4px; padding:13px 17px; font-size:13px }
.gallery-category-nav a:hover { background:#e9efdf }
.pro-service { grid-column:1/-1; min-height:190px; background:#e8efdf; display:grid; grid-template-columns:1fr 1.5fr 1fr; gap:15px 30px; align-items:center }
.pro-service .card-number { grid-column:1/-1 }.pro-service h3 { margin:0!important }.pro-service p { margin:0 }.pro-service .card-action { margin:0 }
.problem-groups { display:grid; grid-template-columns:1fr 1fr; gap:26px; align-items:start }
.problem-group { border:1px solid #ccd8c7; border-radius:6px; background:#fff; padding:22px 25px }
.problem-group>summary { font-size:22px; font-weight:500; cursor:pointer; line-height:1.35; list-style:none; padding-right:26px; position:relative }
.problem-group>summary:after { content:'+'; position:absolute; right:0 }.problem-group[open]>summary:after { content:'−' }
.problem-intro { font-size:13px; line-height:1.7; color:#617268 }.problem-group ul { list-style:none; padding:0; margin:20px 0 0 }
.problem-group li+li { border-top:1px solid #e4e9e0 }.problem-group li a { display:block; position:relative; padding:17px 22px 17px 0 }
.problem-group h3 { font-size:16px; line-height:1.45; margin:0 0 7px; font-weight:600; letter-spacing:-.2px }
.problem-group li p { font-size:12px; color:#617268; line-height:1.7; margin:0 }.problem-group li span { position:absolute; top:18px; right:0 }
.problem-group li a:hover h3 { color:#25846e }.problem-contact { display:flex; gap:30px; align-items:center; justify-content:space-between; margin-top:30px }
.problem-contact p { font-size:14px; line-height:1.7; color:#536761; max-width:570px }
.guide-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px }
.guide-card { background:#fff; border:1px solid #d1ddc9; padding:24px; border-radius:5px; display:flex; flex-direction:column; transition:border-color .2s }
.guide-card:hover { border-color:#689479 }.guide-card .eyebrow { font-size:10px; margin:0 0 18px }
.guide-card h3 { font-size:23px; line-height:1.3; letter-spacing:-.5px; margin:0 0 14px }
.guide-card p { font-size:13px; color:#617268; line-height:1.8; margin:0 0 26px }.guide-card .card-action { margin-top:auto }
.article-hero .hero-copy h1 { font-size:48px; line-height:1.12; letter-spacing:-1.8px }
.article-meta { font-size:11px; line-height:1.7; color:#708173; margin-top:23px }
.article-photo { margin:0; border-radius:6px; overflow:hidden; border:1px solid #d4ddcd; background:#edf1e9; align-self:start }
.article-photo img { display:block; width:100%; height:430px; object-fit:contain }.article-photo figcaption { padding:17px 20px; font-size:12px; line-height:1.7; background:#fff; color:#536761 }
.article-layout { display:grid; grid-template-columns:260px minmax(0,1fr); gap:70px; padding-top:20px; padding-bottom:50px; align-items:start }
.article-toc { position:sticky; top:110px }.article-toc nav { display:flex; flex-direction:column; gap:0; font-size:12px; font-weight:400 }
.article-toc .eyebrow { margin-bottom:14px }.article-toc a { padding:11px 0; line-height:1.6; border-bottom:1px solid #d9e1d2 }
.article-section { padding:14px 0 30px; border-bottom:1px solid #dce4d5; margin-bottom:22px; scroll-margin-top:110px }
.article-section h2,.article-faq h2,.article-help h2 { font-size:30px; line-height:1.25; letter-spacing:-.7px; margin:0 0 23px }
.article-content p,.article-content li { font-size:16px; line-height:1.85; color:#4e645c }.article-content p { margin:0 0 20px }
.article-section ul { padding-left:23px; margin:23px 0 0 }.article-section li { padding-left:4px; margin-bottom:13px }
.article-faq { padding:20px 0 35px; scroll-margin-top:110px }.article-faq details { border-bottom:1px solid #d5decd; padding:18px 0 }
.article-faq summary { cursor:pointer; font-size:16px; line-height:1.6 }.article-faq p { margin:16px 0 0 }
.article-help { background:#e9f0df; padding:30px; border-radius:6px; scroll-margin-top:110px }.article-help p { font-size:14px }
.article-help .eyebrow { font-size:10px; margin-bottom:18px }.article-help .button { margin-top:5px }.article-help .case-service-links { margin-top:24px }
.article-sources { margin-top:30px; border-top:1px solid #d3ddc9; padding-top:20px }.article-sources summary { font-size:13px; cursor:pointer;color:#536761 }
.article-sources a { font-size:12px; line-height:1.7; text-decoration:underline; text-underline-offset:3px }.article-sources li { margin:11px 0 }.article-sources p { font-size:12px }
.brand-tags { display:flex; flex-wrap:wrap; gap:10px; margin:22px 0 }
.brand-tags span { background:#fff; border:1px solid #cfdac8; border-radius:4px; padding:11px 15px; font-size:13px }
.brand-note { font-size:12px; line-height:1.85; color:#617268; max-width:850px; margin:20px 0 25px }
.brand-directory { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px }
.brand-group { padding:25px; border:1px solid #d2ddc9; border-radius:6px; background:#fff }
.brand-group h2 { font-size:26px; line-height:1.3; letter-spacing:-.5px }.brand-group p { font-size:13px; line-height:1.85; color:#617268 }
.brand-directory>.brand-note,.brand-directory>.article-sources { grid-column:1/-1 }.brand-directory .brand-tags span { background:#f5f7ef }
.coverage-block { margin-top:32px; border:1px solid #c6d6bb; border-radius:6px; padding:27px; background:#f7f9f1 }
.coverage-block h3 { margin:0 0 14px; font-size:25px; letter-spacing:-.5px }.coverage-block>p { font-size:13px; line-height:1.8; color:#617268; max-width:620px }
.coverage-form label { display:block; font-size:12px; font-weight:600; margin-bottom:10px }
.coverage-controls { display:flex; gap:11px; align-items:stretch }
.coverage-controls input { flex:1; min-width:0; border:1px solid #a8bea0; padding:15px; border-radius:4px; background:#fff; color:#163c31; font-size:15px }
.coverage-controls .button { gap:15px; border:0; cursor:pointer }.coverage-small { font-size:11px!important; line-height:1.7!important; margin-bottom:0!important }
.coverage-result { margin-top:23px; padding:23px; background:#e6f0dc; border:1px solid #bfd5ac; border-radius:5px; display:grid; grid-template-columns:40px minmax(0,1fr); gap:16px }
.coverage-result[hidden] { display:none }.coverage-result h4 { font-size:22px; line-height:1.3; margin:0 0 10px; font-weight:500 }
.coverage-result p { font-size:13px; line-height:1.8; color:#526a51; margin:0 0 20px }.coverage-result .result-actions { display:flex; flex-wrap:wrap; gap:12px 22px; align-items:center }
.coverage-mark { width:40px; height:40px; color:#2a6d50 }.coverage-mark circle { fill:none; stroke:currentColor; stroke-width:1.4 }.coverage-mark path { fill:none; stroke:currentColor; stroke-width:2.8; stroke-linecap:round; stroke-linejoin:round }
.coverage-result.is-review { background:#f2f4e8; border-color:#d0d9bd }.coverage-result.is-review .coverage-mark path { display:none }
.coverage-area-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px }
.coverage-area-group { padding:23px; border:1px solid #cbd8c2; border-radius:5px; background:#fff }.coverage-area-group summary { font-size:20px; cursor:pointer; line-height:1.5 }
.coverage-area-group p { font-size:13px; color:#617268; line-height:1.8 }.coverage-place-list { display:flex; flex-wrap:wrap; gap:8px 15px; list-style:none; padding:0; margin:20px 0 0 }
.coverage-place-list li { font-size:13px; line-height:1.85; border-bottom:1px solid #e0e8d9; padding-bottom:2px }.coverage-wide { max-width:950px; margin:auto }
.footer-navigation { display:flex; flex-wrap:wrap; gap:11px 20px; font-size:11px }.footer-navigation a { text-decoration:underline; text-underline-offset:3px }
@media(min-width:1100px) { .services-grid { grid-template-columns:repeat(3,1fr) } }
@media(hover:hover) and (prefers-reduced-motion:no-preference) { .guide-card:hover { transform:translateY(-3px) }.guide-card { transition:transform .25s,border-color .25s } }
@media(prefers-reduced-motion:no-preference) {
  .coverage-result.is-success { animation:coverage-enter .4s ease both }
  .coverage-result.is-success .coverage-mark circle { animation:coverage-ring .5s ease both }
  .coverage-result.is-success .coverage-mark path { stroke-dasharray:40; stroke-dashoffset:40; animation:coverage-check .55s .15s ease forwards }
  @keyframes coverage-enter { from {opacity:.4;transform:translateY(8px)} to {opacity:1;transform:translateY(0)} }
  @keyframes coverage-ring { from {opacity:.2;transform:scale(.8);transform-origin:center} to {opacity:1;transform:scale(1);transform-origin:center} }
  @keyframes coverage-check { to {stroke-dashoffset:0} }
}
.area-small { font-size:11px!important }
.contact-grid p,.process p,.faqs p { font-size:14px!important }
.footer>div>a,.privacy-settings { font-size:11px }
.legal-page a:not(.brand) { text-decoration:underline; text-underline-offset:3px }
.legal-page h1 { line-height:1.1; letter-spacing:-1.4px }
.service-card { transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  .service-card:hover { transform:translateY(-4px); box-shadow:0 9px 22px #122f2b0b }
  .realization-card img { transition:transform .6s cubic-bezier(.2,.7,.25,1) }
  .realization-card a:hover img { transform:scale(1.035) }
}
@media(min-width:1100px) { .services-grid { grid-template-columns:repeat(4,1fr) }.service-card { padding:24px 21px }.service-card h3 { font-size:22px } }
@media(max-width:1050px) { .hero-copy h1 { font-size:49px }.quote-prompt { flex-direction:column; align-items:flex-start; gap:24px }.header-inner { gap:18px } }
@media(max-width:760px) {
  .brand-directory,.coverage-area-groups { grid-template-columns:1fr }.brand-group { padding:21px }.brand-group h2 { font-size:24px }
  .coverage-block { padding:22px }.coverage-controls { flex-direction:column }.coverage-controls .button { justify-content:space-between }
  .coverage-result { padding:19px; grid-template-columns:30px minmax(0,1fr); gap:12px }.coverage-mark { width:30px; height:30px }.coverage-result h4 { font-size:20px }
  .coverage-result .button { width:100%; justify-content:space-between }.coverage-result .result-actions { gap:16px }.brand-tags span { font-size:12px; padding:10px 13px }
  .pro-service { display:flex; min-height:230px }.pro-service .card-action { margin-top:20px }.pro-service p { margin-top:14px }
  .problem-groups { grid-template-columns:1fr; gap:18px }.problem-group { padding:21px }.problem-group>summary { font-size:20px }
  .problem-contact { flex-direction:column; align-items:flex-start; gap:12px }.problem-contact .button { width:100%; justify-content:space-between }
  .guide-card-grid { grid-template-columns:1fr }.guide-card h3 { font-size:22px }.guide-card { padding:23px }
  .article-hero .hero-copy h1 { font-size:36px; letter-spacing:-1.1px }.article-photo img { height:380px }
  .article-layout { grid-template-columns:1fr; gap:30px; padding-top:0 }.article-toc { position:static }
  .article-toc nav { border:1px solid #cfdcc7; border-radius:5px; padding:20px }.article-toc a:last-child { border:0 }
  .article-section h2,.article-faq h2,.article-help h2 { font-size:27px }.article-content p,.article-content li { font-size:15px }
  .article-help { padding:24px }.article-help .button { width:100%; justify-content:space-between }
  .case-hero .hero-realization>img { height:440px }.breadcrumbs { font-size:11px; margin-bottom:26px }
  .installation-story { grid-template-columns:1fr; gap:16px }.story-copy p { font-size:15px }
  .installation-check-grid { grid-template-columns:1fr }.detail-photo-grid { grid-template-columns:1fr }
  .detail-photo img { height:auto; max-height:700px }.gallery-intro h1 { font-size:45px; letter-spacing:-1.8px }
  .gallery-category-nav { gap:9px }.gallery-category-nav a { font-size:12px; padding:12px }
  .hero { padding-top:38px }.hero-copy h1 { font-size:45px; letter-spacing:-1.8px }
  .hero-description { font-size:15px }.hero-notes,.eyebrow,.card-number { font-size:10px }
  .case-grid,.service-scope { grid-template-columns:1fr; gap:17px }.service-scope { margin-top:28px }
  .case-card { padding:21px }.case-card h3 { font-size:21px }.service-page-content .section-heading h2 { font-size:29px }
  .quote-prompt { padding:22px }.quote-prompt .button { width:100%; justify-content:space-between }
  .gallery-focused { grid-template-columns:repeat(2,1fr) }.hero-realization { border-radius:6px }
  .contact-number { font-size:37px }.legal-page h1 { font-size:33px }
  .service-card { min-height:280px }.service-card h3 { font-size:23px }
}
@media(max-width:430px) { .services-grid { grid-template-columns:1fr }.hero-copy h1 { font-size:41px }.service-card { min-height:240px }.gallery-focused { grid-template-columns:1fr }.contact-number { font-size:34px } }
@media(prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; animation:none!important } }
