/* Task 011: consistent illustrations, measured motion and the existing site's dot motif. */
[hidden]{display:none!important}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% center;z-index:-2;background:var(--deep)}
.hero-scrim{background:linear-gradient(90deg,#13191bf2 0%,#13191be8 31%,#13191b66 65%,#13191b59),linear-gradient(0deg,#13191bf5,transparent 55%)}
.hero:after{inset:0;width:auto;height:auto;z-index:-1;pointer-events:none;background-image:radial-gradient(white 2px,transparent 2px);background-size:13px 13px;opacity:.1;mask-image:linear-gradient(105deg,#fff,transparent 52%)}
.hero-bottom{align-items:center;padding-top:18px;padding-bottom:22px;gap:30px}.hero-bottom-left{display:flex;align-items:center;gap:25px;flex-wrap:wrap}
.video-toggle{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:0 13px;background:#171d20bf;border:1px solid #5d686e;color:#e1e7ea;font-size:14px;letter-spacing:0;font-weight:500}.video-symbol{color:var(--green);font-size:14px;width:13px;text-align:center}.video-toggle:hover{border-color:var(--green)}
.hero-layout{padding-bottom:34px}.hero-promise{background:#20272bee}.section{padding-block:88px}.services .section-heading{gap:55px;margin-bottom:32px}.services .section-heading>div{max-width:490px}.services-intro{max-width:390px}.service-grid{column-gap:48px}.service{align-items:flex-start;padding-block:26px;gap:22px}.service-art{padding-top:5px;gap:7px}.service-art .line-icon{width:56px;height:56px}.service .index{font-size:14px;color:#b5c0c6}.service p{margin-top:8px}.service:hover,.service:focus-within{border-color:#698d40}.service:focus-within .text-button{color:var(--green)}
.line-icon{stroke-width:2;overflow:visible}.line-icon .accent{stroke:var(--green)}
.system-visual{width:49%;max-width:555px;padding:22px;background:linear-gradient(145deg,#1c2428,#161d20);border-color:#48545a}.system-visual:before,.system-visual:after{display:none}.diagram-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}.diagram-eyebrow{color:#b9c6cc;text-transform:uppercase;letter-spacing:.13em;font-size:14px;font-weight:650}.door-toggle{background:none;border:1px solid #4d5b62;padding:8px 12px;min-height:44px;font-size:14px;display:inline-flex;align-items:center;gap:9px;white-space:nowrap}.door-toggle>span:first-child{color:var(--green);font-size:18px;line-height:1}.door-toggle:hover{border-color:var(--green);color:white}.door-diagram{width:100%;margin:6px auto 10px;max-height:290px}.diagram-part{color:#84969e;transition:color .2s ease}.diagram-part.is-active{color:#9dcc55}.part-marker circle{fill:#1c2529;stroke-width:1.5}.part-marker text{fill:currentColor;stroke:none;font:600 9px Inter,Arial,sans-serif;text-anchor:middle;letter-spacing:0}.diagram-part.is-active .part-marker circle{fill:#314327}.part-leader{opacity:.65;stroke-width:1}.door-panels{transition:transform 1.2s cubic-bezier(.45,0,.2,1)}.system-visual.is-open .door-panels{transform:translateY(-169px)}
.part-controls{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.part-controls :is(button,.as-button){display:flex;justify-content:center;align-items:center;gap:6px;background:transparent;border:1px solid #47555b;min-height:44px;padding:8px 5px;font-size:14px;font-weight:550;line-height:1.3}.part-controls :is(button,.as-button) span{font-size:14px;color:#a4b4bc}.part-controls :is(button,.as-button)[aria-pressed=true]{border-color:var(--green);background:#84b93516;color:#b5db7d}.part-controls :is(button,.as-button)[aria-pressed=true] span{color:inherit}.part-controls :is(button,.as-button):hover{background:#ffffff09}.part-description{font-size:14px!important;line-height:1.7;min-height:67px;margin-top:17px!important;color:#bbc7cc}.part-description strong{color:white;font-weight:600;display:block}.system-visual figcaption{font-size:14px;letter-spacing:.09em;border-top:1px solid #35434a;margin-top:17px;padding-top:14px;text-align:center;display:block;color:#91a4ae}
.method-layout{gap:60px}.method-steps li{padding-block:22px}.method-steps li:before{top:23px}.method-steps p{line-height:1.7}.cost-note{margin-top:44px}.process-grid{column-gap:30px}.process-grid li{border-top:1px solid #aab7a4;padding-top:24px}.process-art{justify-content:flex-start;gap:20px;margin-bottom:20px}.process-art .line-icon{width:54px;height:54px}.process-art>span{font-size:14px;letter-spacing:.1em;font-weight:600;order:-1;color:#56694e}.process-grid h3{font-size:17px;min-height:44px}.process-grid p{margin-top:12px;line-height:1.65}.process:before{background-size:13px 13px;background-image:radial-gradient(#202529 1.3px,transparent 1.3px);opacity:.09;mask-image:linear-gradient(105deg,#fff,transparent 56%)}
.text-link>span,.text-button>span,.button>span,.promise-foot>span,.review-card a>span{display:inline-block;transition:transform 160ms ease}.text-link:hover>span,.text-link:focus-visible>span,.text-button:hover>span,.text-button:focus-visible>span,.button:hover>span,.button:focus-visible>span,.review-card a:hover>span{transform:translate(2px,-2px)}.promise-foot:hover>span{transform:translateY(3px)}
@keyframes section-arrive{from{opacity:.65}to{opacity:1}}
@keyframes outline-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@media(prefers-reduced-motion:no-preference){.motion-arrive{animation:section-arrive 450ms cubic-bezier(.2,.7,.2,1) both}.system-visual.motion-arrive .draw-line{stroke-dasharray:1;animation:outline-draw 700ms ease both}}
@media(max-width:1100px){.hero-bottom-left{gap:12px}.hero-bottom-left>span{display:none}.services .section-heading{gap:32px}.system-visual{padding:17px}.part-controls :is(button,.as-button){font-size:14px;gap:4px}.part-controls :is(button,.as-button) span{display:none}.process-art{gap:14px}.process-grid h3{font-size:16px}}
@media(max-width:991px){.section{padding-block:72px}.system-visual{width:50%;padding:14px}.services .section-heading{gap:26px}.diagram-eyebrow{font-size:14px;letter-spacing:.08em}.door-toggle{font-size:14px;padding-inline:8px}.service{gap:17px}.service-art .line-icon{width:50px;height:50px}.part-description{min-height:90px}.process-grid h3{font-size:18px;min-height:0}.process-art .line-icon{width:54px;height:54px}}
@media(max-width:767px){.hero-video{display:none}.hero:after{display:block;bottom:auto;height:360px;opacity:.07;mask-image:linear-gradient(135deg,#fff,transparent 65%)}.hero-layout{padding-bottom:30px}.section{padding-block:58px}.services .section-heading{gap:25px;margin-bottom:25px}.system-visual{width:100%;padding:17px}.services-intro{max-width:none}.diagram-eyebrow{font-size:14px}.door-toggle{font-size:14px;padding-inline:11px}.door-diagram{margin-block:5px 12px;max-height:none}.door-diagram text{display:block}.part-controls :is(button,.as-button){font-size:14px}.part-description{min-height:66px;margin-top:16px!important}.system-visual figcaption{font-size:14px;line-height:1.5;margin-top:14px}.service{padding-block:23px;gap:18px}.service-art{padding-top:3px}.service-art .line-icon{width:48px;height:48px}.service p{margin-top:6px}.method-layout{gap:30px}.method-steps li{padding-block:23px}.method-steps li:first-child{padding-top:0}.cost-note{margin-top:20px}.process-grid{gap:24px}.process-grid li{grid-template-columns:54px 1fr;gap:8px 20px;padding-top:23px}.process-art{gap:8px;margin:0}.process-art>span{order:1;font-size:14px}.process-art .line-icon{width:50px;height:50px}.process-grid h3{font-size:18px}.process-grid p{margin-top:0}.reviews .section-heading{margin-bottom:25px}}
@media(max-width:360px){.system-visual{padding:13px}.diagram-eyebrow{font-size:14px;letter-spacing:.06em}.door-toggle{font-size:14px;padding-inline:8px}.part-controls{gap:4px}.part-controls :is(button,.as-button){font-size:14px}.part-description{font-size:14px!important;min-height:88px}.system-visual figcaption{font-size:14px}.service{gap:12px}.service-art .line-icon{width:43px;height:43px}.process-grid li{grid-template-columns:46px 1fr;gap:8px 15px}.process-art .line-icon{width:46px;height:46px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-arrive{opacity:1;transform:none}}
