/* Interaction polish; content remains available without JavaScript. */
.button,.navtoggle{position:relative;overflow:hidden;transition:background .2s,color .2s,box-shadow .2s,transform .2s;min-height:44px}
.button:active,.navtoggle:active{transform:scale(.97)}
.button:focus-visible,.navtoggle:focus-visible{outline:3px solid #78a957;outline-offset:4px}
nav a,footer a{transition:color .2s}nav a:hover,footer a:hover{color:#497d2d}
.card{transition:transform .25s,box-shadow .25s,border-color .25s}
.card:focus-within{border-color:#6b984d;box-shadow:0 8px 24px #193c3512}
@media(hover:hover){.button:hover{background:#36744c;box-shadow:0 7px 18px #163f3626;transform:translateY(-3px)}.button.secondary:hover{background:#235644;color:white}.band .button:hover{background:#f0f9df;color:#163f36}.navtoggle:hover{background:#edf3e9}.card:hover{transform:translateY(-5px);border-color:#a3bf91;box-shadow:0 12px 30px #193c3512}}
.click-wave{position:absolute;pointer-events:none;width:120px;height:120px;border-radius:50%;background:currentColor;opacity:0;transform:translate(-50%,-50%) scale(0);animation:wave .55s ease-out}
@keyframes wave{from{opacity:.2;transform:translate(-50%,-50%) scale(0)}to{opacity:0;transform:translate(-50%,-50%) scale(3)}}
@keyframes enter{from{opacity:.2;transform:translateY(18px)}to{opacity:1;transform:none}}
.reveal-now{animation:enter .6s ease-out both}.product.filter-match{animation:enter .3s ease-out both}
.back-top{position:fixed;bottom:24px;right:24px;z-index:9;width:48px;height:48px;border:1px solid #d2e0cf;border-radius:50%;background:#235644;color:#fff;font-size:24px;cursor:pointer;box-shadow:0 5px 20px #163f3626;transition:transform .2s,background .2s}.back-top:hover{transform:translateY(-3px);background:#36744c}
@media(max-width:780px){nav.open{animation:enter .2s ease-out}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.button:hover,.card:hover,.button:active{transform:none}}
/* Rounded, softly elevated surfaces. */
.button,.navtoggle{border-radius:16px;box-shadow:0 5px 12px rgba(22,63,54,.13),0 1px 3px rgba(22,63,54,.06)}
.card{border-radius:24px;box-shadow:0 8px 24px rgba(22,63,54,.08),0 2px 5px rgba(22,63,54,.035);transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;position:relative}
.filterbar input,.filterbar select{border-radius:14px;box-shadow:0 4px 12px rgba(22,63,54,.06)}
.empty{border-radius:20px}.card:focus-within{box-shadow:0 16px 34px rgba(22,63,54,.15);border-color:#89ab75}
@media(hover:hover) and (pointer:fine){
 .button:hover{transform:translateY(-4px);box-shadow:0 12px 22px rgba(22,63,54,.22)}
 .card:hover{transform:translateY(-7px);box-shadow:0 18px 38px rgba(22,63,54,.15);border-color:#b0c79d}
 .product:hover{transform:translateY(-8px) scale(1.025);z-index:1;box-shadow:0 22px 44px rgba(22,63,54,.18)}
}
@media(prefers-reduced-motion:reduce){.button:hover,.card:hover,.product:hover{transform:none!important}}

/* Seven gently orbiting points represent the therapeutic areas. */
.stamp{position:relative;isolation:isolate;box-shadow:0 12px 36px #477c3512}
.stamp::after{content:"";position:absolute;inset:-8px;border:1px solid #88aa6c55;border-radius:50%;pointer-events:none;animation:stamp-breathe 4s ease-in-out infinite}
.stamp-orbit{position:absolute;inset:-20px;border:1px solid #88aa6c40;border-radius:50%;pointer-events:none}
.stamp-orbit i{position:absolute;left:50%;top:50%;width:10px;height:10px;margin:-5px;border-radius:50%;background:#7fa65d;box-shadow:0 0 0 5px #7fa65d12;transform:rotate(var(--angle)) translateY(-165px)}

@keyframes stamp-dot-orbit{from{transform:rotate(var(--angle)) translateY(-165px)}to{transform:rotate(calc(var(--angle) + 360deg)) translateY(-165px)}}
@keyframes stamp-breathe{0%,100%{transform:scale(1);opacity:.45}50%{transform:scale(1.045);opacity:.9}}
@media(hover:hover){.stamp:hover .stamp-orbit,.stamp:hover::after{animation-play-state:paused}}
@media(prefers-reduced-motion:reduce){.stamp-orbit,.stamp::after{animation:none!important}}

/* Crop the text-free upper molecular band of the supplied video. */
.stamp-video{position:absolute;inset:0;overflow:hidden;border-radius:50%;z-index:-1;pointer-events:none;background:#e3eddc}
.stamp-video video{position:absolute;width:640%;height:360%;max-width:none;left:-270%;top:0;object-fit:fill;filter:saturate(.65)}
.stamp-video::after{content:"";position:absolute;inset:0;background:rgba(227,237,220,.58)}
.stamp strong,.stamp>span{position:relative;text-shadow:0 1px 8px #e3eddc}
.stamp>span{color:#163f36;font-weight:600}



.stamp-orbit i{animation:stamp-dot-orbit var(--orbit-duration) linear infinite!important}

@keyframes mobile-fade-up{from{opacity:.15;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:780px){.mobile-reveal{animation:mobile-fade-up .65s cubic-bezier(.2,.65,.3,1) both!important}}

@media(max-width:780px){.mobile-pending{opacity:0!important;transform:translateY(26px)!important}.mobile-visible{opacity:1;transform:translateY(0);transition:opacity .8s ease-out,transform .8s cubic-bezier(.2,.65,.3,1)!important}}
