.site-loader{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;background:#f7f9f3;pointer-events:none;transition:opacity .3s ease;animation:loader-failsafe 0s 2.2s forwards}
.site-loader img{width:246px;max-width:70vw;height:auto}
.loader-plant{width:112px;height:112px;overflow:visible;animation:plant-sway 2s ease-in-out infinite;transform-origin:50% 88%}
.plant-stem{stroke-dasharray:80;stroke-dashoffset:0;animation:plant-grow 1.5s ease-in-out infinite}
.plant-leaf,.plant-vein{transform-box:view-box;animation:plant-unfold 1.5s ease-in-out infinite}
.plant-leaf-left{transform-origin:59px 79px}
.plant-leaf-right{transform-origin:60px 64px;animation-delay:.12s}
@keyframes plant-grow{0%{stroke-dashoffset:80}55%,100%{stroke-dashoffset:0}}
@keyframes plant-unfold{0%,15%{transform:scale(.12);opacity:0}65%,100%{transform:scale(1);opacity:1}}
@keyframes plant-sway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
@media(prefers-reduced-motion:reduce){.loader-plant,.plant-stem,.plant-leaf,.plant-vein{animation:none}}
.loader-track{width:160px;height:3px;background:#dce7d6;border-radius:4px;overflow:hidden}
.loader-track>span{display:block;width:45%;height:100%;background:#6b9638;border-radius:4px;animation:loader-progress 1s ease-in-out infinite}
.site-loader.is-complete{opacity:0}
.motion-reveal{opacity:0;translate:0 24px;transition:opacity .8s ease var(--reveal-delay,0ms),translate .8s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms),transform .3s ease,box-shadow .3s ease}
.motion-reveal.motion-visible{opacity:1;translate:0 0}
.btn,.about-button,.home-partner,.home-learn{transition:background .2s ease,box-shadow .2s ease,filter .2s ease}
.btn:hover,.about-button:hover,.home-partner:hover,.home-learn:hover{box-shadow:0 5px 18px #06382d25}
@keyframes loader-progress{from{transform:translateX(-110%)}to{transform:translateX(330%)}}
@keyframes loader-failsafe{to{opacity:0;visibility:hidden}}
@view-transition{navigation:auto}
::view-transition-old(root){animation:page-out .18s ease both}
::view-transition-new(root){animation:page-in .3s ease both}
@keyframes page-out{to{opacity:0}}
@keyframes page-in{from{opacity:0}to{opacity:1}}
.corporate-dialog[open]{animation:dialog-enter .3s cubic-bezier(.16,1,.3,1)}
@keyframes dialog-enter{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
.about-why-card>img,.offerings-grid-section .card img,.industries-grid-section .card>img{transition:scale .6s cubic-bezier(.16,1,.3,1)}
.btn>span,.about-button>span,.home-partner>span{transition:transform .25s ease}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .about-benefit:hover,.about-purpose:hover,.about-why-card:hover,.about-certification-card:hover,.offerings-grid-section .card:hover,.industries-grid-section .card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #06382d18}
 .about-why-card:hover>img,.offerings-grid-section .card:hover img,.industries-grid-section .card:hover>img{scale:1.025}
 .btn:hover>span,.about-button:hover>span,.home-partner:hover>span{transform:translateX(4px)}
}
@media(prefers-reduced-motion:reduce){
 @view-transition{navigation:none}
 ::view-transition-old(root),::view-transition-new(root),.corporate-dialog[open]{animation:none}
 .about-why-card>img,.offerings-grid-section .card img,.industries-grid-section .card>img,.btn>span,.about-button>span,.home-partner>span{transition:none}
}
@media(prefers-reduced-motion:reduce){.motion-reveal{opacity:1;translate:none;transition:none}.loader-track>span{animation:none;width:100%}.site-loader{transition:none}}

/* Industry cards: staggered entrance, gentle lift, and image zoom. */
@media(prefers-reduced-motion:no-preference){
 .page-we-serve .industries-grid-section .card{transition:opacity .7s ease var(--reveal-delay,0ms),translate .7s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms),transform .3s ease,box-shadow .3s ease,border-color .3s ease}
 .page-we-serve .industries-grid-section .card.motion-reveal:not(.motion-visible){translate:0 40px}
 .page-we-serve .industries-grid-section .card:focus-within{transform:translateY(-6px);box-shadow:none}
 .page-we-serve .industries-grid-section .card:focus-within>img{scale:1.04}
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .page-we-serve .industries-grid-section .card:hover{transform:translateY(-6px);box-shadow:none}
 .page-we-serve .industries-grid-section .card:hover>img{scale:1.04}
}

/* Borderless industry tiles retain their interactive 3D tilt. */
.page-we-serve .industries-grid-section>.grid{gap:44px 36px;padding:12px 0 28px}
.page-we-serve .industries-grid-section .card{
 position:relative;isolation:isolate;border:0;border-radius:22px;
 padding:0;background:#fff;
 box-shadow:none;
 transform:perspective(1100px) rotateX(3deg);transform-origin:center;
}
.page-we-serve .industries-grid-section .card::after{
 content:'';position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:inherit;
 box-shadow:none;
 background:radial-gradient(circle at var(--light-x,25%) var(--light-y,0%),#ffffff38,transparent 55%);
}
.page-we-serve .industries-grid-section .card>img{
 width:100%;border-radius:14px;border:0;
 box-shadow:none;scale:1;
}
.page-we-serve .industries-grid-section .card>div:last-child{
 position:relative;margin:14px 0 0;border:0;border-radius:14px;
 background:linear-gradient(145deg,#fff,#f5f8f0);box-shadow:none;
}
.page-we-serve .industries-grid-section .card .btn{box-shadow:none;border-radius:8px}
@media(hover:hover) and (pointer:fine) and (min-width:768px) and (prefers-reduced-motion:no-preference){
 .page-we-serve .industries-grid-section .card:hover,
 .page-we-serve .industries-grid-section .card:focus-within{
  z-index:3;transform:perspective(1100px) translateY(-14px) rotateX(var(--tilt-x,5deg)) rotateY(var(--tilt-y,-4deg));
  border:0;
  box-shadow:none;
 }
 .page-we-serve .industries-grid-section .card:hover>img,
 .page-we-serve .industries-grid-section .card:focus-within>img{scale:1.015}
}
@media(max-width:767px),(hover:none),(prefers-reduced-motion:reduce){
 .page-we-serve .industries-grid-section .card,
 .page-we-serve .industries-grid-section .card:hover,
 .page-we-serve .industries-grid-section .card:focus-within{transform:none}
 .page-we-serve .industries-grid-section .card>img{scale:1!important}
}

/* Live Offerings hero with a slow moving photograph and staggered text. */
.page-offerings .offerings-motion-hero>.container-page>div{max-width:760px}
.page-offerings .offerings-motion-hero h1{font-size:clamp(34px,4.4vw,60px);line-height:1.12;text-transform:none}
.page-offerings .offerings-motion-hero .offerings-hero-description{max-width:610px}
.offerings-motion-toggle{position:absolute;right:24px;bottom:20px;padding:8px 14px;border:1px solid #ffffff80;border-radius:20px;background:#033729bb;color:#fff;font-size:12px;min-height:40px}
.offerings-motion-toggle[hidden]{display:none}
@media(prefers-reduced-motion:no-preference){
 .offerings-motion-hero>img{animation:offerings-drift 16s ease-in-out infinite alternate;transform-origin:65% 45%}
 .offerings-motion-hero .eyebrow,.offerings-motion-hero h1,.offerings-motion-hero .offerings-hero-description,.offerings-motion-hero .btn{animation:offerings-enter .8s ease both}
 .offerings-motion-hero h1{animation-delay:.1s}
 .offerings-motion-hero .offerings-hero-description{animation-delay:.2s}
 .offerings-motion-hero .btn{animation-delay:.3s}
 .offerings-motion-hero.is-motion-paused>img{animation-play-state:paused}
}
@keyframes offerings-drift{from{transform:scale(1.03) translateX(-.5%)}to{transform:scale(1.13) translateX(1%)}}
@keyframes offerings-enter{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}

/* Keep cards shadow-free on touch and keyboard interaction as well. */
.page-we-serve .industries-grid-section .card:hover,.page-we-serve .industries-grid-section .card:focus-within{box-shadow:none}

/* Thin hover outline follows the rounded card without shifting its layout. */
@media(hover:hover){
 .page-we-serve .industries-grid-section .card:hover{outline:1px solid #88aa68;outline-offset:0}
}
