/* ===== Home page redesign ===== */
:root{--g:#13a25d;--gd:#0b7a45;--ink:#0d1f17;--mut:#4d5f56;--mint:#e8f7ef;--org:#f39c12}
body.home{font-family:'Poppins','Roboto',sans-serif;color:var(--ink);background:#fff}
body.home *{box-sizing:border-box}
.home_main{display:flow-root;width:100%}
.home_main section{position:relative;padding:96px 0}
.home_main img{max-width:100%;height:auto}

/* header / nav */
.home_header{float:none;width:100%;background:#fff !important;background-image:none !important;position:relative}
.home_header .bg-light{position:relative;z-index:20}
.navbar-expand-lg .navbar-nav .nav-link{font-size:15px;font-weight:500;letter-spacing:.4px;position:relative;transition:color .25s}
.navbar-expand-lg .navbar-nav .nav-link::after{content:"";position:absolute;left:15px;right:15px;bottom:2px;height:2px;background:var(--g);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.navbar-expand-lg .navbar-nav .nav-link:hover::after,.navbar-expand-lg .navbar-nav .nav-link.active::after{transform:scaleX(1)}

/* hero */
.hero{position:relative;overflow:hidden;padding:70px 0 0;background:linear-gradient(135deg,#ffffff 0%,#effaf4 55%,#d8f1e4 100%)}
.hero .container{position:relative;z-index:2}
.hero_shape{position:absolute;border-radius:50%;filter:blur(2px);z-index:0}
.hs1{width:460px;height:460px;right:-120px;top:-140px;background:radial-gradient(circle,rgba(19,162,93,.22),rgba(19,162,93,0) 70%);animation:drift 14s ease-in-out infinite}
.hs2{width:320px;height:320px;left:-100px;bottom:40px;background:radial-gradient(circle,rgba(243,156,18,.18),rgba(243,156,18,0) 70%);animation:drift 17s ease-in-out infinite reverse}
.hs3{width:180px;height:180px;left:46%;top:60px;background:radial-gradient(circle,rgba(19,162,93,.16),rgba(19,162,93,0) 70%);animation:drift 11s ease-in-out infinite}
@keyframes drift{0%,100%{transform:translate(0,0)}50%{transform:translate(26px,-30px)}}
.hero_badge{display:inline-block;background:#fff;color:var(--gd);font-weight:600;font-size:13px;letter-spacing:.5px;padding:7px 16px;border-radius:30px;box-shadow:0 4px 16px rgba(11,122,69,.14);margin-bottom:22px;animation:fadeUp .8s both}
.hero_carousel .carousel-inner{min-height:330px;overflow:visible}
.carousel-fade .carousel-item{opacity:0;transition:opacity .7s ease;transform:none !important}
.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right{opacity:1}
.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{opacity:0}
.hero_title{font-size:48px;line-height:1.14;font-weight:700;color:var(--ink);margin:0 0 18px;letter-spacing:-.5px}
.hero_sub{font-size:17px;line-height:1.75;color:var(--mut);margin:0 0 30px;max-width:520px}
.carousel-item.active .hero_title{animation:fadeUp .8s .05s both}
.carousel-item.active .hero_sub{animation:fadeUp .8s .2s both}
.carousel-item.active .hero_btns{animation:fadeUp .8s .35s both}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.hero_btns{display:flex;flex-wrap:wrap;gap:14px}
.hbtn{display:inline-block;padding:13px 30px;border-radius:40px;font-weight:600;font-size:15px;text-decoration:none !important;transition:transform .25s,box-shadow .25s,background .25s,color .25s;border:2px solid transparent}
.hbtn:hover{transform:translateY(-3px)}
.hbtn_fill{background:var(--g);color:#fff !important;box-shadow:0 10px 24px rgba(19,162,93,.35)}
.hbtn_fill:hover{background:var(--gd);box-shadow:0 14px 28px rgba(19,162,93,.45)}
.hbtn_ghost{background:#fff;color:var(--ink) !important;border-color:#cfe6d9}
.hbtn_ghost:hover{border-color:var(--g);color:var(--g) !important}
.hbtn_dark{background:var(--ink);color:#fff !important}
.hbtn_dark:hover{background:var(--g)}
.hbtn_white{background:#fff;color:var(--gd) !important;box-shadow:0 10px 26px rgba(0,0,0,.25)}
.hbtn_white:hover{background:var(--ink);color:#fff !important}
.hero_dots{position:static;margin:34px 0 0;justify-content:flex-start;padding:0}
.hero_dots li{width:34px;height:6px;border-radius:6px;background:#bfdccc;margin:0 8px 0 0;border:0;opacity:1;transition:background .3s,width .3s}
.hero_dots li.active{background:var(--g);width:56px}
.hero_visual{position:relative;padding:20px;animation:fadeUp 1s .2s both}
.hero_img{display:block;width:100%;border-radius:28px;box-shadow:0 30px 60px rgba(11,60,40,.22);animation:floaty 7s ease-in-out infinite}
.hero_ring{position:absolute;inset:0;border-radius:34px;border:2px dashed rgba(19,162,93,.35);animation:spin 40s linear infinite;pointer-events:none;transform-origin:center}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}
@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}

/* ticker */
.ticker{margin-top:60px;background:#0a0a0a;overflow:hidden;white-space:nowrap;padding:16px 0;position:relative;z-index:2}
.ticker_track{display:inline-flex;animation:tick 32s linear infinite}
.ticker_track span{color:#fff;font-weight:600;font-size:16px;padding:0 34px;position:relative}
.ticker_track span::after{content:"\2726";position:absolute;right:-6px;color:#2fd283}
.ticker:hover .ticker_track{animation-play-state:paused}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* section heads */
.eyebrow{display:inline-block;color:var(--g);font-weight:700;font-size:13px;letter-spacing:2px;text-transform:uppercase;margin-bottom:12px;position:relative;padding-left:34px}
.eyebrow::before{content:"";position:absolute;left:0;top:50%;width:24px;height:2px;background:var(--g)}
.sec_head{text-align:center;max-width:720px;margin:0 auto 56px}
.sec_head .eyebrow{padding-left:0}.sec_head .eyebrow::before{display:none}
.sec_title{font-size:36px;line-height:1.25;font-weight:700;color:var(--ink);margin:0 0 18px;letter-spacing:-.3px}
.sec_text{font-size:16px;line-height:1.85;color:var(--mut);margin:0 0 22px}

/* scroll reveal */
.js .reveal{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0ms)}
.js .reveal.from_left{transform:translateX(-50px)}
.js .reveal.from_right{transform:translateX(50px)}
.js .reveal.in{opacity:1;transform:none}

/* about */
.home_about{background:#fff}
.about_visual{position:relative;padding:0 0 26px 0}
.about_visual img{background:#e8f7ef}
.about_visual img{position:relative;z-index:1;display:block;width:100%;border-radius:26px;box-shadow:0 26px 50px rgba(11,60,40,.18)}
.about_badge{position:absolute;z-index:2;right:-10px;bottom:0;background:var(--g);color:#fff;border-radius:18px;padding:16px 22px;box-shadow:0 16px 30px rgba(19,162,93,.4);animation:floaty 6s ease-in-out infinite}
.about_badge strong{display:block;font-size:17px}.about_badge span{font-size:13px;opacity:.9}
.check_list{list-style:none;padding:0;margin:0 0 30px}
.check_list li{position:relative;padding:8px 0 8px 36px;font-size:15.5px;color:var(--ink)}
.check_list li::before{content:"\2713";position:absolute;left:0;top:9px;width:24px;height:24px;border-radius:50%;background:var(--mint);color:var(--g);font-weight:700;font-size:13px;text-align:center;line-height:24px}

/* services */
.home_services{background:linear-gradient(180deg,#f4fbf7 0%,#fff 100%)}
.svc_row{margin-top:-4px}
.svc_row>div{margin-bottom:30px}
.svc_card{display:flex;flex-direction:column;height:100%;background:#fff;border-radius:22px;padding:34px 30px;border:1px solid #e3f0e9;text-decoration:none !important;position:relative;overflow:hidden;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s}
.svc_card::before{content:"";position:absolute;left:0;top:0;height:4px;width:100%;background:linear-gradient(90deg,var(--g),var(--org));transform:scaleX(0);transform-origin:left;transition:transform .45s}
.svc_card::after{content:"";position:absolute;right:-60px;top:-60px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(19,162,93,.14),rgba(19,162,93,0) 70%);transition:transform .5s}
.svc_card:hover{transform:translateY(-10px);box-shadow:0 26px 50px rgba(11,70,45,.16);border-color:#bfe3cf}
.svc_card:hover::before{transform:scaleX(1)}
.svc_card:hover::after{transform:scale(1.8)}
.svc_icon{display:flex;align-items:center;justify-content:center;width:76px;height:76px;border-radius:20px;background:var(--mint);margin-bottom:24px;overflow:hidden;transition:transform .45s cubic-bezier(.3,1.6,.5,1)}
.svc_icon img{width:76px !important;height:76px !important;max-width:none}
.svc_card:hover .svc_icon{transform:rotate(-8deg) scale(1.1)}
.svc_card h3{font-size:20px;font-weight:700;color:var(--ink);margin:0 0 12px;line-height:1.3}
.svc_card p{font-size:14.5px;line-height:1.8;color:var(--mut);margin:0 0 20px;flex:1}
.svc_more{color:var(--g);font-weight:700;font-size:14.5px}
.svc_more i{font-style:normal;display:inline-block;transition:transform .3s}
.svc_card:hover .svc_more i{transform:translateX(8px)}

/* process */
.home_process{background:var(--ink);color:#fff;overflow:hidden}
.home_process::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 10%,rgba(19,162,93,.35),transparent 45%),radial-gradient(circle at 5% 95%,rgba(243,156,18,.18),transparent 40%)}
.home_process .container{position:relative}
.home_process .sec_title{color:#fff}
.home_process .eyebrow{color:#5be3a0}
.proc_row{position:relative}
.proc_row>div{margin-bottom:24px}
.proc_step{height:100%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:32px 26px;backdrop-filter:blur(4px);transition:transform .35s,background .35s,border-color .35s}
.proc_step:hover{transform:translateY(-8px);background:rgba(255,255,255,.1);border-color:rgba(91,227,160,.6)}
.proc_no{display:flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:50%;background:var(--g);color:#fff;font-weight:700;font-size:20px;margin-bottom:20px;box-shadow:0 0 0 8px rgba(19,162,93,.2);transition:box-shadow .4s}
.proc_step:hover .proc_no{box-shadow:0 0 0 14px rgba(19,162,93,.22)}
.proc_step h4{font-size:19px;font-weight:700;color:#fff;margin:0 0 10px}
.proc_step p{font-size:14.5px;line-height:1.75;color:#c4d6cc;margin:0}

/* apps */
.home_apps{background:#fff}
.apps_visual img{display:block;width:100%;border-radius:26px;box-shadow:0 26px 50px rgba(7,70,42,.28);transition:transform .5s}
.apps_visual:hover img{transform:scale(1.025) rotate(-.6deg)}
.pill_row{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 28px}
.pill_row span{background:var(--mint);color:var(--gd);font-weight:600;font-size:13.5px;padding:8px 18px;border-radius:30px;transition:background .25s,color .25s,transform .25s}
.pill_row span:hover{background:var(--g);color:#fff;transform:translateY(-3px)}

/* CTA */
.home_cta{text-align:center;color:#fff;background:linear-gradient(rgba(6,50,32,.55),rgba(6,50,32,.55)),url(../images/cta-bg.jpg) center/cover no-repeat;padding:100px 0 !important}
.home_cta h2{font-size:40px;font-weight:700;margin:0 0 14px;color:#fff}
.home_cta p{font-size:17px;max-width:620px;margin:0 auto 32px;color:#e5f5ec;line-height:1.75}
.pulse{animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.55)}70%{box-shadow:0 0 0 22px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}

/* images of other pages: icon tile + header consistency */
.sd_hero_icon{background:var(--mint,#e8f7ef) !important;border-color:#cfe6d9 !important;overflow:hidden}
.sd_hero_icon img{width:84px !important}
.logo img{background:#fff}

/* responsive */
@media (max-width:991px){
  .home_main section{padding:72px 0}
  .hero{padding-top:46px}
  .hero_title{font-size:38px}
  .hero_carousel .carousel-inner{min-height:300px}
  .hero_visual{margin-top:30px;padding:0}
  .sec_title{font-size:30px}
  .about_visual{margin-bottom:40px}
  .home_apps .apps_visual{margin-bottom:36px}
}
@media (max-width:575px){
  .hero_title{font-size:31px}
  .hero_sub{font-size:15.5px}
  .hero_carousel .carousel-inner{min-height:300px}
  .sec_title{font-size:26px}
  .home_cta h2{font-size:30px}
  .about_badge{right:6px}
  .ticker_track span{font-size:14px;padding:0 22px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important}
  .js .reveal{opacity:1;transform:none}
}

/* after reveal: restore snappy hover transitions on cards */
.js .svc_card.reveal.in{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s;transition-delay:0ms}
.js .proc_step.reveal.in{transition:transform .35s,background .35s,border-color .35s;transition-delay:0ms}
