﻿/* Shared visual finish. Geometry and form typography remain in their existing stylesheets. */
:root{--ncf-motion-ease:cubic-bezier(.22,.7,.2,1);--ncf-eyebrow-size:14px;--ncf-motion-section:1000ms;--ncf-motion-control:350ms}
.service-tab-group[data-service-family=support]{position:relative;isolation:isolate}
.service-tab-group[data-service-family=support]::before{content:'';position:absolute;inset:-11px;z-index:-1;pointer-events:none;border:1px solid #426952;border-radius:10px;background:linear-gradient(145deg,#ffffff12,transparent 48%),linear-gradient(120deg,#173e2d,#102e25);box-shadow:inset 0 1px 0 #c4e8cc30,0 6px 18px #0d30200c}
.service-tab-group[data-service-family=support] .service-tab-group-label{color:#c5e6ce}
.service-explorer .service-tab-group[data-service-family=support] button{background:linear-gradient(125deg,#ffffff0d,#ffffff03);color:#f0f8f1;border-color:#52715f;box-shadow:inset 0 1px 0 #ffffff12}
.service-explorer .service-tab-group[data-service-family=support] small{color:#c1d7c8}
.service-explorer .service-tab-group[data-service-family=support] .icon{color:#a9dfb2}
.service-explorer .service-tab-group[data-service-family=support] button:hover{background-color:#234d37;border-color:#91c9a1}
.service-explorer .service-tabs-grouped button{position:relative;transform:none;transition:background-color var(--ncf-motion-control),border-color var(--ncf-motion-control),box-shadow var(--ncf-motion-control),color var(--ncf-motion-control)}
.service-explorer .service-tabs-grouped button>.service-tab-symbol{position:relative;display:block;flex:0 0 25px;width:25px;height:25px;overflow:visible}
.service-tab-symbol>.icon{display:block;width:100%;height:100%;margin:0}
.service-tab-check{display:none;position:absolute;right:-5px;bottom:-5px;place-items:center;width:13px;height:13px;border:1px solid #dbf6d6;border-radius:50%;background:#a5ed91;color:#103d24;font:700 9px/1 var(--body)}
.service-tab-check::before{content:'\2713'}
.service-explorer .service-tabs-grouped button[aria-selected=true] .service-tab-check{display:grid}
.service-explorer .service-tabs-grouped button[aria-selected=true],.service-explorer .service-tabs-grouped button[aria-selected=true]:hover{background:linear-gradient(130deg,#ffffff18,transparent 60%),linear-gradient(110deg,#145e3c,#16743f);border-color:#65be7d;box-shadow:inset 0 -3px #74df69,inset 0 1px 0 #d6ffdc45,0 3px 12px #0e43201a;color:#fff}
.service-explorer .service-tabs-grouped button[aria-selected=true] small{color:#d5eddd}
.service-explorer .service-tabs-grouped button:focus-visible{outline-color:#229c55;outline-offset:3px}
.service-explorer .service-tab-group[data-service-family=support] button:focus-visible{outline-color:#b1eca9}
.service-tabs button .icon,.component-choice>.icon,.navigation .icon,.service-card>.icon{stroke-width:1.6}
:is(.service-card h2,.service-card h3,.benefit-grid h3,.steps h3,.industry-card h3,.component-detail h4,.service-workflow-steps h3){font-family:var(--heading);font-weight:500}
/* Feedback changes the surface, never the position of a pointer or keyboard target. */
:is(.button,.service-card,.service-extensions>a,.industry-card,.component-choice,.map-select,.contact-route,.guide-choice):hover,
:is(.map-select[aria-pressed=true],.button:active){transform:none}
:is(.service-card,.service-extensions>a,.industry-card,.component-choice,.contact-route,.guide-choice){transition:border-color .35s ease,background-color .35s ease,box-shadow .35s ease,color .35s ease}
.button{transition:background-color var(--ncf-motion-control),color var(--ncf-motion-control),border-color var(--ncf-motion-control),box-shadow var(--ncf-motion-control)}
.button:not(:disabled):hover,.contact-route-featured .button:hover{transform:none}
.service-tabs button:hover .icon,.component-choice:hover>.icon{transform:none}
/* Earlier disclosure effects must not translate inputs as a user clicks them. */
.builder-question[open] .builder-inputs,.prep-answer:not([hidden]),.job-question[open] .field,.relationship-option>div{animation:none}
@media(prefers-reduced-motion:no-preference){
 .scenario-grid details[open]>div,.contact-channel[open]>div,.guide-answer,.faq-article[open]>.faq-answer{animation:ncf-content-fade 600ms var(--ncf-motion-ease)}
}
@keyframes ncf-content-fade{from{opacity:.45}to{opacity:1}}
@media(min-width:768px) and (max-width:1199px){.service-explorer .service-tabs-grouped button>.service-tab-symbol{flex-basis:22px;width:22px;height:22px}.service-tab-group[data-service-family=support]::before{inset:-8px}}
@media(max-width:767px){.service-tab-group[data-service-family=support]::before{inset:-8px -8px -7px}.service-explorer .service-tabs-grouped button>.service-tab-symbol{flex-basis:23px;width:23px;height:23px}}
@media(max-width:359px){.service-explorer .service-tabs-grouped button>.service-tab-symbol{flex-basis:20px;width:20px;height:20px}.service-tab-group[data-service-family=support]::before{inset:-6px}}
@media(prefers-reduced-motion:reduce){.scenario-grid details[open]>div,.contact-channel[open]>div,.guide-answer,.faq-article[open]>.faq-answer{animation:none}}

/* Homepage editorial flow. Intake spacing is intentionally unchanged. */
.home-coverage{display:grid;grid-template-columns:1fr 2fr;gap:32px;align-items:center}
.home-coverage h2{margin-bottom:18px}.home-coverage-areas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.home-coverage-areas article{border-left:1px solid #cbdfd1;padding-left:18px}.home-coverage-areas .icon{width:25px;height:25px;color:#147b42;margin-bottom:12px}
.home-coverage-areas h3{font:500 18px/1.3 var(--heading);margin:0 0 9px}.home-coverage-areas p{font-size:13px;line-height:1.7;color:#566c5e;margin:0}.home-coverage-areas a{display:inline-block;color:#14723f;font-size:12px;margin-top:8px}
.home-workflow{margin-top:32px;border-top:1px solid #d9e6dd;padding-top:28px}.home-workflow>div>span{font-size:25px;margin-bottom:12px;color:#29814a}
.home-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.home-feature-card{display:flex;flex-direction:column;min-width:0;padding:22px;background:#fff;border:1px solid #d4e3d9;border-radius:10px}
.home-feature-diagram{display:flex;justify-content:space-between;gap:8px;background:linear-gradient(135deg,#173e2d,#102e25);border:1px solid #427454;border-radius:8px;padding:20px 12px;margin-bottom:22px;color:#ceecd2}
.home-feature-diagram>span{flex:1;min-width:0;text-align:center;position:relative}.home-feature-diagram>span+span:before{content:'';position:absolute;left:-14px;top:15px;width:20px;height:1px;background:#73b681}
.home-feature-diagram .icon{width:30px;height:30px;margin-bottom:7px}.home-feature-diagram small{display:block;font:11px/1.5 var(--body)}
.home-feature-card h3{font:500 22px/1.3 var(--heading);margin-bottom:12px}.home-feature-card p{font-size:14px;line-height:1.8;color:#566c5e}.home-feature-card .text-link{margin-top:auto;font-size:13px}
.home-residential{display:flex;align-items:center;gap:18px;border:1px solid #c5ddce;background:#fff;border-radius:10px;padding:20px;margin-bottom:22px}.home-residential-icon{color:#147a42}.home-residential-icon .icon{width:36px;height:36px}.home-residential h3{font:500 20px/1.3 var(--heading);margin:0 0 7px}.home-residential p{font-size:14px;color:#566c5e;margin:0}.home-residential .text-link{margin-left:auto;flex-shrink:0;font-size:13px}
.central-builder .cb-preview-review-link{background:transparent;color:#a6e3ae;border-color:#57966f;box-shadow:none}.central-builder .cb-preview-review-link:hover{background:rgba(87,150,111,.12);color:#a6e3ae;border-color:var(--logo-green,#28d603);box-shadow:none}.central-builder .cb-preview-review-link:focus-visible{outline:2px solid #a6e3ae;outline-offset:3px}
#service-finder,.cb-heading h2{scroll-margin-top:calc(var(--nav-height,100px) + 24px)}
@media(max-width:991px){.home-coverage{grid-template-columns:1fr}.home-residential{flex-wrap:wrap}.home-residential .text-link{margin-left:54px}}
@media(max-width:767px){.home-feature-grid{grid-template-columns:1fr}.home-feature-card{padding:18px}.home-coverage-areas{grid-template-columns:1fr;gap:16px}.home-coverage-areas article{padding-left:14px}.home-coverage-areas .icon{float:left;margin:0 12px 0 0}.home-coverage-areas h3,.home-coverage-areas p,.home-coverage-areas a{margin-left:37px}.home-residential{padding:16px;gap:12px}.home-residential>div{flex:1;min-width:180px}.home-residential .text-link{margin-left:48px}.home-workflow{margin-top:24px;padding-top:24px}}

/* Glass feedback preserves each component's background and text pairing.
   Never replace background-image globally: some dark surfaces are gradient-only. */
:is(.service-card,.industry-card,.contact-route,.guide-choice,.map-select,.component-choice,.job-choice,.cb-job-choice,.cb-service-choice){box-shadow:inset 0 1px 0 #ffffff45;transition:border-color var(--ncf-motion-control),box-shadow var(--ncf-motion-control),background-color var(--ncf-motion-control),color var(--ncf-motion-control)}
@media(hover:hover){
 :is(.service-card,.industry-card,.contact-route,.guide-choice,.map-select,.component-choice,.job-choice,.cb-job-choice,.cb-service-choice):hover{border-color:#62b080;box-shadow:inset 0 1px 0 #ffffffa0,inset 0 0 22px #87d8a418,0 5px 20px #124d2912}
 .button:not(:disabled):hover{box-shadow:inset 0 1px 0 #e8ffed44,0 0 0 3px #5cbd7b18}
 .button>.icon{transition:translate var(--ncf-motion-control)}.button:not(:disabled):hover>.icon{translate:3px 0}
 .cb-preview .button:not(:disabled):hover{background-color:#539d6d1f;box-shadow:inset 0 1px 0 #b5f2c324,0 0 12px #65bd7b12}
}
:is(.job-choice,.cb-job-choice,.guide-choice,.cb-service-choice):has(input:checked),.component-choice[aria-pressed=true]{border-color:#3ca96b;box-shadow:inset 3px 0 #168446,inset 0 1px 0 #ffffff8c,0 0 0 1px #58b27b25}
@media(prefers-reduced-motion:no-preference){
 .cb-question[open]>.cb-question-body,.builder-question[open] .builder-inputs,.prep-answer:not([hidden]),.job-question[open] .field{animation:ncf-field-light 200ms ease-out}
 @supports (interpolate-size:allow-keywords){
  :is(.scenario-grid,.home-faqs-grid,.guide-options)>details{interpolate-size:allow-keywords}
  :is(.scenario-grid,.home-faqs-grid,.guide-options)>details::details-content{height:0;opacity:.3;overflow:clip;transition:height 360ms var(--ncf-motion-ease),opacity 220ms,content-visibility 360ms allow-discrete}
  :is(.scenario-grid,.home-faqs-grid,.guide-options)>details[open]::details-content{height:auto;opacity:1}
 }
}
@keyframes ncf-field-light{from{opacity:.8}to{opacity:1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.button>.icon{transition:none;translate:none!important}:is(.service-card,.industry-card,.contact-route,.guide-choice,.map-select,.component-choice,.job-choice,.cb-job-choice,.cb-service-choice,.button){transition:none}}

/* One readable eyebrow scale across all page and preview templates. */
@media(max-width:767px){:root{--ncf-eyebrow-size:13px}}
@media(hover:none){:root{--ncf-motion-control:0ms}}

/* Keep section labels readable even inside panels with generic paragraph sizing. */
body p.eyebrow{font-size:var(--ncf-eyebrow-size,14px);font-weight:600;line-height:1.5;letter-spacing:.08em}
/* Passing glass reflection never replaces the underlying surface. */
.ncf-glass-card{position:relative}
.ncf-glass-card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(110deg,transparent 30%,#dbffe918 46%,#ffffff29 50%,transparent 64%);background-size:280% 100%;background-position:120% 0;opacity:0}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.ncf-glass-card:hover::after{animation:ncf-glass-pass 1100ms cubic-bezier(.22,.7,.2,1)}}
@keyframes ncf-glass-pass{0%{background-position:120% 0;opacity:0}25%{opacity:1}100%{background-position:-30% 0;opacity:0}}
.ncf-story-layer{pointer-events:none}
