:root{
  --green-700:#146A47;
  --green-600:#1F8A5F;
  --green-500:#2FA873;
  --lime-400:#C8E75A;
  --lime-500:#B3D93F;
  --ink:#10241C;
  --ink-dim:#5A6B60;
  --paper:#F7F9F2;
  --paper-2:#ECF1DE;
  --line:#DCE4CB;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',Arial,sans-serif;background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.55}
a{text-decoration:none;color:inherit}
img,svg{max-width:100%;display:block}
ul{list-style:none}
.disp{font-family:'Sora',sans-serif}
.w{max-width:1180px;margin:0 auto;padding:0 44px}
section{padding:92px 0}
.section{padding:92px 0}
.section-alt{background:var(--paper-2)}
:focus-visible{outline:2px solid var(--green-600);outline-offset:2px}
@media (max-width:860px){ .w{padding:0 24px} section{padding:56px 0} .section{padding:56px 0} }

.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease, transform .6s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){ .reveal{opacity:1;transform:none} }

/* ---------- header / mega nav ---------- */
header{background:var(--paper);position:sticky;top:0;z-index:100;border-bottom:1px solid var(--line)}
nav{display:flex;align-items:center;gap:0;height:88px}
.logo{font-family:'Sora',sans-serif;font-size:21px;font-weight:700;color:var(--green-700);display:flex;align-items:center;gap:8px;white-space:nowrap}
.logo .dot{width:9px;height:9px;border-radius:50%;background:var(--lime-500)}
.nav-links{display:flex;gap:2px;margin-left:16px;height:100%}
.nav-item{position:relative;height:100%;display:flex;align-items:center}
.nav-links a.nav-link{position:relative;font-size:14.5px;font-weight:600;color:var(--ink);padding:9px 15px;border-radius:20px;transition:.2s;display:inline-block}
.nav-links a.nav-link:hover,.nav-links a.nav-link.active{background:var(--paper-2);color:var(--green-700)}
.nav-right{margin-left:auto;display:flex;align-items:center;gap:14px}
.btn-lime{background:var(--lime-400);color:var(--ink);font-weight:700;font-size:14.5px;padding:12px 22px;border-radius:30px;display:inline-block;transition:.2s;border:1px solid var(--lime-400)}
.btn-lime:hover{background:var(--lime-500);border-color:var(--lime-500)}
.btn-outline-dark{border:1.5px solid var(--green-700);color:var(--green-700);font-weight:600;font-size:14.5px;padding:10.5px 22px;border-radius:30px;display:inline-block}
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.hamburger span{width:22px;height:2px;background:var(--green-700);display:block}
.mob-nav{display:none;flex-direction:column;padding:8px 24px 20px;background:var(--paper);border-bottom:1px solid var(--line)}
.mob-nav a{padding:12px 0;font-weight:600;border-bottom:1px solid var(--line)}
.mob-nav.open{display:flex}
@media (max-width:960px){ .nav-links{display:none} .hamburger{display:flex} }

/* mega dropdown */
.dropdown-panel{position:absolute;top:100%;left:0;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 26px 50px -22px rgba(20,36,28,.28);padding:26px;opacity:0;visibility:hidden;transform:translateY(8px);transition:.18s ease;z-index:50}
.nav-item:hover .dropdown-panel,.nav-item.dd-open .dropdown-panel{opacity:1;visibility:visible;transform:none}
.dd-flyout{display:flex;gap:30px;min-width:560px}
.dd-left{width:230px;flex-shrink:0;border-right:1px solid var(--line);padding-right:26px}
.dd-left h4{font-family:'Sora',sans-serif;font-size:16px;font-weight:700;margin-bottom:8px}
.dd-sub{font-size:13px;color:var(--ink-dim);margin-bottom:16px;line-height:1.5}
.dd-find{display:inline-block;background:var(--lime-400);color:var(--ink);font-weight:700;font-size:13px;padding:9px 16px;border-radius:20px;margin-bottom:16px}
.dd-simple{min-width:280px}
.dd-simple h4{font-family:'Sora',sans-serif;font-size:16px;font-weight:700;margin-bottom:8px}
.dd-simple a{display:block;padding:9px 0;font-size:14px;font-weight:600;color:var(--ink);border-bottom:1px solid var(--line)}
.dd-simple a:last-child{border-bottom:0}
.dd-simple a:hover{color:var(--green-700)}
.dd-right{flex:1;display:flex;flex-direction:column;gap:2px}
.dd-right a{display:flex;justify-content:space-between;align-items:center;padding:9px 10px;border-radius:8px;font-size:14px;font-weight:600;color:var(--ink)}
.dd-right a:hover{background:var(--paper-2);color:var(--green-700)}
.dd-chev{color:var(--ink-dim);font-size:13px}

/* ---------- buttons ---------- */
.btn-row{display:flex;gap:14px;flex-wrap:wrap}
.btn-solid{background:var(--green-700);color:#fff;font-weight:700;font-size:14.5px;padding:13px 24px;border-radius:30px;display:inline-block;transition:.2s}
.btn-solid:hover{background:var(--green-600)}
.btn-line{border:1.5px solid var(--green-700);color:var(--green-700);font-weight:600;font-size:14.5px;padding:11.5px 22px;border-radius:30px;display:inline-block}
.btn-line:hover{background:var(--paper-2)}

/* ---------- hero (home) ---------- */
.hero{position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;width:520px;height:520px;border-radius:50%;background:var(--lime-400);opacity:.35;top:-180px;right:-140px;filter:blur(10px)}
.hero::after{content:'';position:absolute;width:360px;height:360px;border-radius:50%;background:var(--green-500);opacity:.18;bottom:-160px;left:-100px}
.hero-inner{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding:88px 44px 80px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--green-700);background:#fff;border:1px solid var(--line);padding:8px 16px;border-radius:30px}
.eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--lime-500)}
.hero h1{font-family:'Sora',sans-serif;font-size:50px;font-weight:700;color:var(--ink);line-height:1.12;margin:22px 0 20px}
.hero .lead{font-size:17px;color:var(--ink-dim);max-width:480px;margin-bottom:30px}
@media (max-width:860px){ .hero-inner{grid-template-columns:1fr;padding:52px 24px 60px} .hero h1{font-size:34px} }

.strip{background:var(--green-700);padding:16px 0;overflow:hidden}
.strip-track{display:flex;flex-wrap:nowrap;width:max-content;animation:ticker 26s linear infinite}
.strip:hover .strip-track{animation-play-state:paused}
.strip-track span{flex:0 0 auto;color:#fff;font-size:13px;font-weight:600;padding:0 28px;white-space:nowrap;border-right:1px solid rgba(255,255,255,.25)}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){ .strip-track{animation:none} }

/* signature: live roster ring */
.ring-card{background:#fff;border-radius:24px;padding:30px;box-shadow:0 24px 50px -20px rgba(20,106,71,.28);position:relative}
.ring-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.ring-top h4{font-family:'Sora',sans-serif;font-size:15px;font-weight:700;color:var(--ink)}
.ring-top span{font-size:11.5px;color:var(--ink-dim)}
.ring-wrap{display:flex;align-items:center;gap:24px}
.ring-list{flex:1;display:flex;flex-direction:column;gap:12px}
.ring-row{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--ink)}
.ring-row .bar{flex:1;height:6px;border-radius:4px;background:var(--paper-2);overflow:hidden}
.ring-row .bar i{display:block;height:100%;background:var(--green-500);border-radius:4px}
.ring-row .lbl{width:96px;flex-shrink:0;color:var(--ink-dim)}
.ring-foot{margin-top:22px;padding-top:16px;border-top:1px dashed var(--line);font-size:12.5px;color:var(--ink-dim);display:flex;justify-content:space-between}
@media (max-width:500px){ .ring-wrap{flex-direction:column} }

/* ---------- page hero (subpages) ---------- */
.page-hero{background:var(--paper-2);padding:64px 0 56px;border-bottom:1px solid var(--line)}
.breadcrumb{font-size:13px;color:var(--ink-dim);margin-bottom:16px}
.breadcrumb a{color:var(--green-700);font-weight:600}
.page-hero h1{font-family:'Sora',sans-serif;font-size:40px;font-weight:700;color:var(--ink);margin:14px 0 14px;line-height:1.15}
.page-hero .lead{font-size:16.5px;color:var(--ink-dim);max-width:600px;margin-bottom:22px}
@media (max-width:860px){ .page-hero h1{font-size:29px} }

/* jobs/solutions style hero with image panel */
.jobs-hero{padding:70px 0 0}
.jobs-hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center}
.jobs-hero-text h1{font-family:'Sora',sans-serif;font-size:42px;font-weight:700;line-height:1.15;margin-top:14px}
.jobs-hero-text h1 em{font-style:normal;color:var(--green-700)}
.jobs-hero-img{border-radius:20px;overflow:hidden;background:var(--paper-2);min-height:260px;display:flex;align-items:center;justify-content:center}
.jobs-hero-img svg{width:120px;height:120px;stroke:var(--green-600)}
@media (max-width:860px){ .jobs-hero-grid{grid-template-columns:1fr} .jobs-hero-text h1{font-size:28px} }
.jobs-intro{display:grid;grid-template-columns:1fr 1fr;gap:50px}
.jobs-intro h2{font-family:'Sora',sans-serif;font-size:26px;font-weight:700;line-height:1.3}
.jobs-intro strong{color:var(--green-700)}
@media (max-width:860px){ .jobs-intro{grid-template-columns:1fr} }

/* ---------- section heads ---------- */
.eyebrow-sm{font-size:12.5px;font-weight:700;letter-spacing:1.5px;color:var(--green-600);text-transform:uppercase}
.sec-head{max-width:620px;margin-bottom:42px}
.sec-head h2{font-family:'Sora',sans-serif;font-size:32px;font-weight:700;color:var(--ink);margin:12px 0 14px;line-height:1.2}
.sec-head p{color:var(--ink-dim);font-size:15.5px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
@media (max-width:860px){ .two-col{grid-template-columns:1fr;gap:30px} .sec-head h2{font-size:26px} }

/* ---------- bullets ---------- */
.bullets{display:flex;flex-direction:column;gap:16px}
.bullets li{display:flex;gap:12px;align-items:flex-start;font-size:15.5px}
.bullets .tick,.bullets .dot{width:22px;height:22px;border-radius:7px;background:var(--lime-400);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.bullets .tick svg{stroke:var(--ink);width:12px;height:12px}
.bullets .dot::after{content:'';width:6px;height:6px;border-radius:50%;background:var(--ink)}

/* ---------- industries grid (home + index) ---------- */
.ind-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ind-card{display:block;background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px 24px;transition:transform .2s ease, box-shadow .2s ease;color:inherit;text-decoration:none}
.ind-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px -22px rgba(20,106,71,.35)}
.ind-icon{width:44px;height:44px;border-radius:12px;background:var(--paper-2);display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.ind-icon svg{stroke:var(--green-700)}
.ind-card h3{font-family:'Sora',sans-serif;font-size:17px;font-weight:700;margin-bottom:6px}
.ind-card p{font-size:13.5px;color:var(--ink-dim);margin-bottom:14px}
.ind-arrow{font-size:13px;font-weight:700;color:var(--green-700)}
@media (max-width:860px){ .ind-grid{grid-template-columns:1fr} }

/* industries index page - photo-style cards using icon tiles instead of real photos */
.industry-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:transform .2s ease, box-shadow .2s ease}
.card:hover{transform:translateY(-5px);box-shadow:0 20px 40px -22px rgba(20,106,71,.3)}
.card .thumb{aspect-ratio:3/2;background:linear-gradient(135deg,var(--green-700),var(--green-500));display:flex;align-items:center;justify-content:center;overflow:hidden}
.card .thumb img{width:100%;height:100%;object-fit:cover;display:block}
.card .thumb svg{width:52px;height:52px;stroke:var(--lime-400)}
.card .body{padding:22px}
.card .body h3{font-family:'Sora',sans-serif;font-size:17px;font-weight:700;margin-bottom:8px}
.card .body p{font-size:13.5px;color:var(--ink-dim);margin-bottom:14px}
.card .link{font-size:13px;font-weight:700;color:var(--green-700)}
@media (max-width:860px){ .industry-grid{grid-template-columns:1fr} }

/* ---------- solutions grid ---------- */
.sol-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:6px}
.sol-card{background:var(--paper-2);border-radius:18px;padding:26px 22px}
.sol-icon{width:38px;height:38px;border-radius:10px;background:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.sol-icon svg{stroke:var(--green-700)}
.sol-card h3{font-size:16px;font-weight:700;margin-bottom:6px}
.sol-card p{font-size:13.5px;color:var(--ink-dim)}
@media (max-width:860px){ .sol-grid{grid-template-columns:1fr} }

/* solutions rotating showcase (gm) */
.gm-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:40px;align-items:center}
.gm-list{display:flex;flex-direction:column}
.gm-item{display:flex;justify-content:space-between;align-items:center;padding:16px 4px;border-bottom:1px solid var(--line);font-weight:600;font-size:15px;color:var(--ink-dim);cursor:default}
.gm-item.active{color:var(--green-700)}
.gm-ring{width:10px;height:10px;border-radius:50%;border:2px solid var(--line)}
.gm-item.active .gm-ring{border-color:var(--green-600);background:var(--lime-400)}
.gm-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;display:flex;flex-direction:column;gap:18px}
.gm-img-wrap{height:220px;border-radius:14px;background:linear-gradient(135deg,var(--green-700),var(--green-500));display:flex;align-items:center;justify-content:center;transition:opacity .2s ease}
.gm-img-wrap.is-changing{opacity:0}
.gm-img-wrap svg{width:56px;height:56px;stroke:var(--lime-400)}
.gm-info h3{font-family:'Sora',sans-serif;font-size:20px;font-weight:700;margin-bottom:8px}
.gm-info p{font-size:14px;color:var(--ink-dim);margin-bottom:16px}
@media (max-width:860px){ .gm-grid{grid-template-columns:1fr} }

/* about teaser strip (gtk) */
.gtk-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.gtk-tag{font-size:12.5px;font-weight:700;letter-spacing:1.5px;color:var(--green-600);text-transform:uppercase}
.gtk-text h3{font-family:'Sora',sans-serif;font-size:28px;font-weight:700;margin:12px 0 14px}
.gtk-text p{color:var(--ink-dim);font-size:15px;margin-bottom:22px}
.gtk-img{height:260px;border-radius:20px;background:linear-gradient(135deg,var(--green-700),var(--green-500));display:flex;align-items:center;justify-content:center}
.gtk-img svg{width:80px;height:80px;stroke:var(--lime-400)}
@media (max-width:860px){ .gtk-grid{grid-template-columns:1fr} }

/* ---------- process ---------- */
.proc-row{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:16px}
.proc-item{background:#fff;border-radius:16px;padding:24px 20px;border:1px solid var(--line)}
.proc-badge{width:30px;height:30px;border-radius:50%;background:var(--green-700);color:#fff;font-family:'Sora',sans-serif;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.proc-item h4{font-size:15.5px;font-weight:700;margin-bottom:6px}
.proc-item p{font-size:13px;color:var(--ink-dim)}
@media (max-width:860px){ .proc-row{grid-template-columns:1fr 1fr} }

/* ---------- why-wrap (two col: form/detail + sidebar) ---------- */
.why-wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:50px;align-items:start}
@media (max-width:860px){ .why-wrap{grid-template-columns:1fr} }

/* ---------- chips ---------- */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{background:var(--paper-2);color:var(--ink);font-size:13px;font-weight:600;padding:8px 14px;border-radius:20px}

/* ---------- forms ---------- */
.form-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:32px;max-width:640px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.form-group{display:flex;flex-direction:column;gap:6px}
.form-group label{font-size:13px;font-weight:700;color:var(--ink)}
.form-group input,.form-group select,.form-group textarea{border:1px solid var(--line);border-radius:10px;padding:11px 14px;font-family:'Inter',sans-serif;font-size:14.5px;color:var(--ink);background:var(--paper)}
.form-group textarea{min-height:110px;resize:vertical}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:2px solid var(--green-600);outline-offset:1px}
.submit{background:var(--green-700);color:#fff;font-weight:700;font-size:15px;padding:14px 28px;border-radius:30px;border:0;cursor:pointer;transition:.2s}
.submit:hover{background:var(--green-600)}
.form-note{font-size:12.5px;color:var(--ink-dim);margin-top:14px}
.form-banner{border-radius:14px;padding:16px 20px;font-size:14.5px;font-weight:600;margin-bottom:22px}
.form-banner.success{background:#E4F3E9;color:var(--green-700);border:1px solid var(--green-500)}
.form-banner.error{background:#FBEAE6;color:#9A3B23;border:1px solid #E4A88F}
@media (max-width:600px){ .form-row{grid-template-columns:1fr} .form-card{padding:24px} }

/* contact info list */
.contact-info{display:flex;flex-direction:column;gap:16px;margin-top:6px}
.contact-info .item{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}
.contact-info .k{font-size:12px;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.contact-info .v{font-size:15px;font-weight:600;color:var(--ink)}

/* ---------- prev/next ---------- */
.prevnext{display:flex;justify-content:space-between;padding:36px 0;border-top:1px solid var(--line);font-weight:700;color:var(--green-700);font-size:14.5px}

/* ---------- cta band ---------- */
.cta-band{background:var(--green-700);border-radius:24px;padding:50px 54px;display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap;position:relative;overflow:hidden}
.cta-band::before{content:'';position:absolute;width:260px;height:260px;background:var(--lime-400);opacity:.25;border-radius:50%;right:-80px;top:-100px}
.cta-band h3{font-family:'Sora',sans-serif;font-size:25px;color:#fff;font-weight:700;margin-bottom:6px;position:relative}
.cta-band p{color:rgba(255,255,255,.75);font-size:14.5px;position:relative}
.cta-band a{position:relative}
@media (max-width:860px){ .cta-band{padding:34px 26px;flex-direction:column;align-items:flex-start} }

/* ---------- acknowledgement strip ---------- */
.ack{background:var(--paper-2);padding:26px 0;border-top:1px solid var(--line)}
.ack h4{font-family:'Sora',sans-serif;font-size:14px;font-weight:700;margin-bottom:6px;color:var(--green-700)}
.ack p{font-size:13px;color:var(--ink-dim);max-width:760px;line-height:1.6}

/* ---------- footer ---------- */
footer{background:var(--ink);color:rgba(255,255,255,.72);padding:64px 0 24px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:34px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.12)}
.foot-col .logo-f{font-family:'Sora',sans-serif;font-size:19px;font-weight:700;color:#fff;margin-bottom:12px}
.foot-col p{font-size:13.5px;line-height:1.7}
.foot-col h5{font-size:12px;letter-spacing:1.4px;text-transform:uppercase;color:var(--lime-400);margin-bottom:14px}
.foot-col a{display:block;font-size:14px;padding:5px 0;color:rgba(255,255,255,.72)}
.foot-col a:hover{color:#fff}
.foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding-top:20px;font-size:12.5px;color:rgba(255,255,255,.45)}
@media (max-width:860px){ .foot-grid{grid-template-columns:1fr 1fr} }