*{font-family:'Plus Jakarta Sans',sans-serif;}
html{scroll-behavior:smooth;}

/* ── Public site animations ── */
@keyframes fadeUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
@keyframes bounce-dot{0%,100%{transform:translateY(0)}50%{transform:translateY(12px)}}
@keyframes scroll-track{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes pulse-ring{0%{transform:scale(.9);opacity:.6}70%{transform:scale(1.15);opacity:0}100%{transform:scale(.9);opacity:0}}
@keyframes slideIn{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

.anim-fade-up{opacity:0;animation:fadeUp .7s ease forwards;}
.anim-delay-1{animation-delay:.1s}.anim-delay-2{animation-delay:.2s}
.anim-delay-3{animation-delay:.3s}.anim-delay-4{animation-delay:.4s}
.anim-delay-5{animation-delay:.5s}
.bounce-dot{animation:bounce-dot 1.5s ease infinite;}
.trip-track{display:flex;gap:2rem;width:max-content;animation:scroll-track 50s linear infinite;}
.trip-track:hover{animation-play-state:paused;}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease;}
.reveal.visible{opacity:1;transform:none;}
.reveal-left{opacity:0;transform:translateX(-30px);transition:opacity .6s ease,transform .6s ease;}
.reveal-left.visible{opacity:1;transform:none;}
.reveal-right{opacity:0;transform:translateX(30px);transition:opacity .6s ease,transform .6s ease;}
.reveal-right.visible{opacity:1;transform:none;}
#navbar{transition:box-shadow .3s;}
#navbar.scrolled{box-shadow:0 2px 20px rgba(0,0,0,.08);}
.hero-overlay{background:linear-gradient(to bottom,rgba(8,148,135,.88) 0%,rgba(8,148,135,.65) 60%,rgba(8,148,135,.85) 100%);}
@media(min-width:768px){.hero-overlay{background:linear-gradient(to right,rgba(8,148,135,.92) 0%,rgba(8,148,135,.8) 25%,rgba(8,148,135,.3) 45%,transparent 60%);}}
.service-card:hover .service-icon{background:#076d63;}
.service-card:hover .service-icon svg{color:#fff;}
#mobile-menu{display:none;}
#mobile-menu.open{display:block;}
.pulse-ring::before{content:'';position:absolute;inset:0;border-radius:50%;background:#089487;animation:pulse-ring 2s ease infinite;z-index:-1;}

/* Input focus */
input:focus,select:focus,textarea:focus{outline:none;border-color:#089487;box-shadow:0 0 0 3px rgba(8,148,135,.15);}
input,select,textarea{transition:border-color .2s,box-shadow .2s;}
