/* Refined motion, larger type and interactive details. */
@property --frame-angle{syntax:'<angle>';initial-value:0deg;inherits:false}
:root{--reading-progress:0}
body{font-size:17px}
.primary-nav,.primary-nav>a:not(.button),.nav-group summary{font-size:13px}
.nav-dropdown a{font-size:13px}
.eyebrow{font-size:12px}
.button{font-size:13px;position:relative;overflow:hidden;isolation:isolate}
.button:after{content:'';position:absolute;inset:-45% auto -45% -70%;width:45%;background:linear-gradient(90deg,transparent,#ffffff30,transparent);transform:skewX(-22deg);pointer-events:none;transition:left .7s ease}
.button:hover:after,.button:focus-visible:after{left:140%}
.site-header:after{content:'';position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:linear-gradient(90deg,#4e912b,#a7d17f);transform-origin:left;transform:scaleX(var(--reading-progress));pointer-events:none}
.core-content p,.card-body p,.service-feature p,.form-panel>p,.value-card p{font-size:15px}
.detail-intro p,.copy-block p,.contact-copy p{font-size:16px}
.core-content .check-list,.parts-copy .check-list{font-size:15px}
.text-link,.section-topline,.footer-grid>div:not(.footer-brand) a,.footer-grid address{font-size:13px}
.enquiry-form label{font-size:12px}
.enquiry-form input:not([type=hidden]),.enquiry-form textarea{font-size:16px}
.form-note{font-size:12px!important}
.core-content h3,.card-body h3{font-size:26px}
.team-info h3{font-size:18px}.team-info p{font-size:12px}
.service-links a>span:last-child{font-size:14px}
.tile-copy h3{font-size:20px}
.topbar{font-size:12px}.hero-footnote{font-size:11px}.hero-scroll{font-size:11px}
.hero-content h1{font-size:clamp(48px,6.15vw,85px)}
.home-hero p{font-size:17px;max-width:470px}
.core-card,.solution-card,.product-tile,.form-panel{position:relative}
.core-card,.solution-card,.product-tile{--lift:0px;transform:perspective(1100px) translateY(var(--lift)) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .3s ease,box-shadow .3s ease,background .3s ease}
.core-card:hover,.solution-card:hover,.product-tile:hover{--lift:-5px;box-shadow:0 18px 40px #17241e12}
.core-card:after,.solution-card:after,.product-tile:after,.form-panel:after{content:'';position:absolute;inset:0;padding:1px;border-radius:inherit;background:conic-gradient(from var(--frame-angle),transparent 56%,#a8d27e 75%,#4e912b 86%,transparent 98%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:0;transition:opacity .3s;animation:frame-orbit 6s linear infinite;animation-play-state:paused}
.core-card:hover:after,.core-card:focus-within:after,.solution-card:hover:after,.solution-card:focus-visible:after,.product-tile:hover:after,.product-tile:focus-visible:after,.form-panel:focus-within:after{opacity:1;animation-play-state:running}
.form-panel:after{opacity:.6;animation-play-state:running;animation-duration:10s}
@supports not ((mask-composite:exclude) or (-webkit-mask-composite:xor)){.core-card:after,.solution-card:after,.product-tile:after,.form-panel:after{display:none}}
.card-photo img,.core-image img,.tile-photo img,.service-thumb img{transition:transform .75s cubic-bezier(.2,.65,.3,1),filter .5s}
.solution-card:hover .card-photo img,.core-card:hover .core-image img,.product-tile:hover .tile-photo img,.service-links a:hover .service-thumb img{transform:scale(1.065);filter:saturate(1.04)}
.tile-copy:before{content:'';position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .4s ease}
.product-tile:hover .tile-copy:before{transform:scaleX(1)}
.service-links a{transition:color .25s,background .25s}.service-links a:hover{color:var(--bright);background:#ffffff04}
.brand-links a{transition:color .25s,background .25s,box-shadow .25s}.brand-links a:hover{box-shadow:inset 0 -2px var(--green)}
.why-list li{transition:padding .3s,background .3s}.why-list li:hover{padding-left:10px;background:linear-gradient(90deg,#edf3e760,transparent)}
.js-motion .reveal{transition:opacity .8s cubic-bezier(.2,.65,.3,1),translate .8s cubic-bezier(.2,.65,.3,1),transform .3s ease,box-shadow .3s ease;transition-delay:var(--reveal-delay,0ms),var(--reveal-delay,0ms),0ms,0ms}
.js-motion .reveal.await-reveal{translate:0 30px}
.page-hero-image img{animation:category-arrival 1.2s cubic-bezier(.2,.65,.3,1) both}
@keyframes frame-orbit{to{--frame-angle:360deg}}
@keyframes category-arrival{from{opacity:.5;transform:scale(1.045)}to{opacity:1;transform:scale(1)}}
@media(max-width:1100px){.primary-nav{gap:18px}.tile-copy h3{font-size:19px}}
@media(max-width:850px){.primary-nav,.primary-nav>a:not(.button),.nav-group summary{font-size:14px}.hero-content h1{font-size:69px}.core-content p{font-size:15px}}
@media(max-width:600px){body{font-size:16px}.home-hero h1{font-size:60px}.home-hero p{font-size:15px;max-width:340px}.hero-actions .button{font-size:11px}.eyebrow{font-size:11px}.topbar-inner{font-size:11px}.intro-grid p,.inquiry-grid>div>p,.detail-intro p,.copy-block p,.contact-copy p,.core-content p,.card-body p{font-size:15px}.tile-copy h3{font-size:18px}.service-links a>span:last-child{font-size:13px}.team-info h3{font-size:16px}.team-info p{font-size:11px}.footer-grid>div:not(.footer-brand) a{font-size:12px}.hero-scroll,.hero-footnote{font-size:10px}.hero-content{padding-bottom:100px}.core-card:hover,.solution-card:hover,.product-tile:hover{--lift:0px}}
@media(prefers-reduced-motion:reduce){.core-card,.solution-card,.product-tile{transform:none}.form-panel:after{animation:none;opacity:.35}.js-motion .reveal{transition:none}.js-motion .reveal.await-reveal{opacity:1;translate:0 0}.page-hero-image img{opacity:1;transform:none;animation:none}.button:after{display:none}}
