/* Shared motion and compact editorial rhythm. No sticky sections or scroll effects. */
:root{--v2-space:40px;--mc-motion-fast:180ms;--mc-motion:260ms;--mc-ease:cubic-bezier(.2,.7,.25,1)}
#content :is(.section,.revision-section,.v2-editorial,.home-welcome,.factory-estimator){padding-block:var(--v2-space)}
main .factory-service-strip{padding-block:24px!important}
main .factory-numbers{padding-block:32px!important}
main .revision-hero{padding-block:56px}
main .v2-editorial{border-bottom:1px solid #e1e9e3}
main .v2-editorial:not(.v2-editorial--final){background:#fff}
main .v2-editorial.is-reversed:not(.v2-editorial--final){background:#f2f6f3}
main .v2-editorial__grid{gap:36px;align-items:start}
main .v2-editorial h2{margin-block:8px 18px}
main .v2-editorial .revision-prose h3{margin-block:22px 10px}
main .v2-editorial .revision-prose p{margin-bottom:14px}
main .v2-editorial .revision-prose>:last-child{margin-bottom:0}
main .v2-editorial-image{align-self:start;aspect-ratio:4/3;min-height:0;max-height:none}
main .v2-editorial-image img{min-height:0;height:100%;width:100%;object-fit:cover}
main .v2-editorial--final .v2-editorial-image{min-height:0;max-height:300px}
main .v2-editorial .revision-list{gap:12px;margin-block:18px}
main .v2-editorial .revision-list li{padding:14px 18px 14px 30px;box-shadow:0 3px 14px #14352205}
main .v2-editorial .revision-list li:before{top:24px}
main .v2-editorial.v3-editorial-panel:not(.v2-editorial--final){background:#eaf2ed;border-bottom:0}
main .v2-editorial.v3-editorial-panel .v2-editorial__grid{grid-template-columns:72px minmax(0,1fr);gap:26px}
main .v3-editorial-panel .v2-editorial__copy{order:2;min-width:0}
main .v3-editorial-mark{order:1;display:grid;place-items:center;width:64px;height:64px;background:#fff;border:1px solid #cbded1;color:#0b8f3a}
main .v3-editorial-mark svg{width:30px;height:30px}
main .v3-editorial-panel .revision-prose{max-width:1000px}
main .v3-editorial-panel .revision-list{grid-template-columns:repeat(3,minmax(0,1fr))}
main .v3-copy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}
main .v3-info-card{padding:22px 24px;background:#fff;border:1px solid #d2e2d7;border-top:2px solid #0b8f3a;min-width:0}
main .v2-editorial .v3-info-card>h3:first-child{margin-top:0}
main .v3-info-card>p:last-child{margin-bottom:0}
main .revision-banner{margin-block:24px 40px}
main .v2-home-flow .revision-banner{margin-block:0}
main .v2-property-banner{margin-block:32px}
main .revision-form-section{padding:32px;margin-bottom:40px}
main .source-heading{margin-bottom:28px}
main .breadcrumbs{margin-bottom:22px}
main .section-nav{margin-bottom:28px}
main .article-cover{margin-bottom:28px;max-height:420px}
main .source-content{max-width:960px;line-height:1.65}
main .source-content--article{max-width:850px}
main .source-content p{margin-bottom:16px}
main .source-content h2,main .prose>h2{margin-block:28px 14px;padding-left:18px;border-left:3px solid #0b8f3a}
main .source-content h3{margin-block:22px 12px}
main .source-block--text-editor{padding-block:10px}
main .source-block--text-editor:nth-of-type(even){padding:22px;background:#f2f6f3;border-left:2px solid #d2e4d8}
main .source-content blockquote,main .source-cta,main .notice{margin-block:22px;padding:22px 26px;background:#edf4ef;border-left:3px solid #0b8f3a}
main .source-gallery{gap:18px;margin-block:24px}
main .source-back{margin-top:32px}

/* Interactions are perceptible but never move or resize entire page sections. */
main :is(.project-card,.news-card,.service-card,.revision-team-card,.revision-property-card,.revision-job-card,.team-card,.job-card,.certificate-card,.revision-offices article,.revision-list>li,.v3-info-card){transition:transform var(--mc-motion) var(--mc-ease),box-shadow var(--mc-motion),border-color var(--mc-motion),background var(--mc-motion)}
:is(.button,.mce-button,.source-block--button>a){transition:background var(--mc-motion-fast),color var(--mc-motion-fast),box-shadow var(--mc-motion),transform var(--mc-motion) var(--mc-ease)}
:is(.button,.mce-button)>span[aria-hidden=true]{display:inline-block;transition:transform var(--mc-motion) var(--mc-ease)}
:is(.service-card,.factory-service-strip a,.v2-service-tabs a,.feature-grid>a,.revision-person-links a,.revision-footer__social a,.button) svg{transition:transform var(--mc-motion) var(--mc-ease),color var(--mc-motion)}
:is(.text-link,.sites-text-link,.project-detail,.section-nav a,.revision-footer a:not(.brand)){text-decoration-color:transparent;text-underline-offset:5px;transition:color var(--mc-motion-fast),text-decoration-color var(--mc-motion),transform var(--mc-motion)}
:is(.v2-editorial-image,.home-careers__image,.revision-property-card,.news-card,.project-card){overflow:hidden}
:is(.v2-editorial-image,.home-careers__image,.news-card,.project-card,.revision-property-card) img{transition:transform 600ms var(--mc-ease)}
@media(hover:hover) and (pointer:fine){
 main :is(.project-card,.news-card,.service-card,.revision-team-card,.revision-property-card,.revision-job-card,.team-card,.job-card,.certificate-card,.revision-offices article):hover{transform:translateY(-3px);box-shadow:0 10px 26px #153d2415;border-color:#a8cbb5}
 main .revision-list>li:hover{background:#fff;border-color:#a8cbb5;transform:translateY(-2px)}
 main .v3-info-card:hover{border-color:#0b8f3a;box-shadow:0 5px 18px #153d2410}
 :is(.button,.mce-button,.source-block--button>a):not(:disabled):hover{transform:translateY(-2px);box-shadow:0 6px 18px #1738231a}
 :is(.button,.mce-button):hover>span[aria-hidden=true]{transform:translateX(3px)}
 :is(.service-card,.factory-service-strip a,.v2-service-tabs a,.feature-grid>a,.revision-person-links a,.revision-footer__social a,.button):hover svg{transform:translateY(-2px) rotate(-3deg)}
 :is(.v2-editorial-image,.home-careers__image,.news-card,.project-card,.revision-property-card):hover img{transform:scale(1.025)}
 :is(.text-link,.sites-text-link,.project-detail,.section-nav a,.revision-footer a:not(.brand)):hover{text-decoration:underline;text-decoration-color:currentColor;transform:translateX(2px)}
}
:is(.button,.mce-button,.source-block--button>a):not(:disabled):active{transform:translateY(0);box-shadow:none}
main :is(.project-card,.news-card,.service-card,.revision-team-card,.revision-property-card,.revision-job-card):focus-within{border-color:#0b8f3a;box-shadow:0 0 0 2px #0b8f3a22}
:is(.text-link,.sites-text-link,.project-detail,.section-nav a):focus-visible{text-decoration:underline;text-decoration-color:currentColor}
@media(max-width:900px){main .v2-editorial__grid{gap:26px}main .v3-editorial-panel .revision-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){
 :root{--v2-space:28px}
 main .revision-hero{padding-block:40px}
 main .factory-service-strip{padding-block:18px!important}
 main .factory-numbers{padding-block:24px!important}
 main .v2-editorial__grid{gap:22px}
 main .v2-editorial-image{aspect-ratio:16/10;max-height:300px}
 main .v2-editorial.v3-editorial-panel .v2-editorial__grid{grid-template-columns:1fr;gap:18px}
 main .v3-editorial-panel .v2-editorial__copy{order:2}
 main .v3-editorial-mark{width:48px;height:48px}
 main .v3-editorial-mark svg{width:24px;height:24px}
 main .v3-editorial-panel .revision-list{grid-template-columns:1fr}
 main .v3-copy-grid{grid-template-columns:1fr;gap:12px}
 main .v3-info-card{padding:18px}
 main .revision-banner{margin-block:20px 28px}
 main .revision-form-section{padding:24px 18px;margin-bottom:28px}
 main .source-block--text-editor:nth-of-type(even){padding:18px}
 main .source-content blockquote,main .source-cta,main .notice{padding:18px}
}
@media(prefers-reduced-motion:reduce){
 [data-mc-motion]{animation:none!important;transition:none!important}
 :is(.button,.mce-button,.source-block--button>a,.project-card,.news-card,.service-card,.revision-team-card,.revision-property-card,.revision-job-card,.team-card,.job-card,.certificate-card,.revision-offices article,.revision-list>li,.text-link,.sites-text-link,.project-detail,.section-nav a,.v2-service-tabs a,.revision-person-links a,.revision-footer a):is(:hover,:active,:focus-visible){transform:none!important}
 :is(.v2-editorial-image,.home-careers__image,.news-card,.project-card,.revision-property-card):hover img,:is(.service-card,.factory-service-strip a,.v2-service-tabs a,.feature-grid>a,.revision-person-links a,.revision-footer__social a,.button):hover svg,:is(.button,.mce-button):hover>span[aria-hidden=true]{transform:none!important}
 .v2-certificate-preview a:hover img{transform:none!important}
}
@media print{[data-mc-motion]{opacity:1!important;transform:none!important;animation:none!important;box-shadow:none!important}}

/* Home section links: one clear interaction, without shifting the layout. */
#content .section-heading>.home-section-link{
 display:inline-flex;align-items:center;justify-content:center;gap:8px;
 min-height:44px;max-width:100%;padding:10px 12px;flex-shrink:0;white-space:nowrap;text-align:center;
 color:#087b34;background:transparent;border-bottom:2px solid #a4cab1;
 text-decoration:none;transform:none;
 transition:background-color var(--mc-motion-fast),color var(--mc-motion-fast),border-color var(--mc-motion-fast);
}
#content .home-section-link>span{display:inline-block;flex-shrink:0;transition:transform var(--mc-motion-fast) var(--mc-ease)}
@media(hover:hover) and (pointer:fine){
 #content .section-heading>.home-section-link:hover{color:#fff;background:#087b34;border-color:#087b34;text-decoration:none;transform:none}
 #content .home-section-link:hover>span{transform:translateX(3px)}
}
#content .section-heading>.home-section-link:focus-visible{color:#fff;background:#087b34;border-color:#087b34;text-decoration:none;transform:none;outline:2px solid #087b34;outline-offset:4px}
#content .section-heading>.home-section-link:active{color:#fff;background:#055825;border-color:#055825;text-decoration:none;transform:none}
@media(prefers-reduced-motion:reduce){
 #content .section-heading>.home-section-link,#content .home-section-link>span{transition:none}
 #content .home-section-link>span{transform:none!important}
}

/* Process timeline: a visible track, sequential connections and numbered milestones. */
#content .revision-process{gap:30px;--process-line-reveal:mc-process-line-x}
#content .revision-process li{--process-delay:0ms}
#content .revision-process li:nth-child(2){--process-delay:700ms}
#content .revision-process li:nth-child(3){--process-delay:1400ms}
#content .revision-process li:nth-child(4){--process-delay:2100ms}
#content .revision-process li>span{
 position:relative;z-index:1;background:#087b34;color:#fff;
 border:2px solid #fff;box-shadow:0 0 0 7px #cde5d5;
 font-weight:700;animation:none;
}
#content .revision-process li:not(:last-child)::before,
#content .revision-process li:not(:last-child)::after{
 content:"";display:block;position:absolute;pointer-events:none;
 top:28px;left:calc(50% + 42px);right:auto;bottom:auto;
 width:calc(100% - 54px);height:4px;border-radius:4px;
 background:#cbded1;transform:none;transform-origin:left center;
 transition:none;animation:none;
}
#content .revision-process li:not(:last-child)::after{background:linear-gradient(90deg,#087b34,#49b87a);box-shadow:0 0 8px #0b8f3a22}
#content .revision-process.is-process-ready:not(.is-visible) li>span{background:#e4eee8;color:#365a43;box-shadow:0 0 0 7px #eaf2ec}
#content .revision-process.is-process-ready:not(.is-visible) li::after{transform:scaleX(0)}
#content .revision-process.is-process-ready.is-visible li>span{animation:mc-process-node 550ms ease-out var(--process-delay) both}
#content .revision-process.is-process-ready.is-visible li:not(:last-child)::after{animation:var(--process-line-reveal) 700ms cubic-bezier(.3,.1,.25,1) calc(var(--process-delay) + 200ms) both}
@keyframes mc-process-line-x{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes mc-process-line-y{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes mc-process-node{
 0%{background:#e4eee8;color:#365a43;box-shadow:0 0 0 7px #eaf2ec}
 65%{background:#087b34;color:#fff;box-shadow:0 0 0 12px #0b8f3a22}
 100%{background:#087b34;color:#fff;box-shadow:0 0 0 7px #cde5d5}
}
@media(max-width:900px){
 #content .revision-process{grid-template-columns:1fr;gap:28px;text-align:left;max-width:580px;--process-line-reveal:mc-process-line-y}
 #content .revision-process li{display:grid;grid-template-columns:60px minmax(0,1fr);column-gap:24px;align-content:start;min-height:96px}
 #content .revision-process li>span{grid-row:1/3;margin:0}
 #content .revision-process h3{margin:4px 0 10px}
 #content .revision-process p{grid-column:2;margin:0}
 #content .revision-process li:not(:last-child)::before,
 #content .revision-process li:not(:last-child)::after{left:28px;top:72px;bottom:-16px;width:4px;height:auto;transform-origin:center top}
 #content .revision-process.is-process-ready:not(.is-visible) li::after{transform:scaleY(0)}
}
@media(prefers-reduced-motion:reduce){
 #content .revision-process li>span{animation:none!important;background:#087b34!important;color:#fff!important;box-shadow:0 0 0 7px #cde5d5!important}
 #content .revision-process li::after{animation:none!important;transform:none!important}
}
@media print{#content .revision-process li>span,#content .revision-process li::after{animation:none!important;transform:none!important}}
