:root { --ink:#17241f; --muted:#637069; --paper:#fdfdfb; --soft:#f1f5ef; --line:#dce6dc; --green:#1f6b50; --green-dark:#123f31; --lime:#c2d948; --shadow:0 18px 48px rgba(23,36,31,.09); --radius:20px; --shell:min(1180px, calc(100% - 48px)); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:88px; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"Noto Sans SC","DM Sans",sans-serif; font-size:16px; line-height:1.7; }
button,input,select,textarea { font:inherit; } a { color:inherit; text-decoration:none; } img { display:block; max-width:100%; } button,a { -webkit-tap-highlight-color:transparent; }
.page-shell { width:var(--shell); margin-inline:auto; }.skip-link { position:fixed; z-index:100; top:8px; left:8px; padding:10px 14px; background:#fff; transform:translateY(-150%); border-radius:8px; }.skip-link:focus { transform:translateY(0); outline:3px solid var(--lime); }
.site-header { position:sticky; top:0; z-index:30; border-bottom:1px solid rgba(220,230,220,.82); background:rgba(253,253,251,.92); backdrop-filter:blur(14px); }.header-inner { height:80px; display:flex; align-items:center; justify-content:space-between; gap:24px; }.brand { display:inline-flex; align-items:center; gap:10px; flex-shrink:0; }.brand-mark { position:relative; display:grid; place-items:center; width:37px; height:42px; overflow:hidden; border-radius:0 0 14px 14px; background:linear-gradient(145deg,#cfdb53,#8bb637); }.brand-mark:before,.brand-mark:after,.brand-mark span:before { position:absolute; content:""; background:#fff; border-radius:20px; }.brand-mark:before { width:5px; height:26px; transform:rotate(30deg) translate(-3px,-1px); }.brand-mark:after { width:5px; height:26px; transform:rotate(-30deg) translate(3px,-1px); }.brand-mark span:before { width:5px; height:21px; transform:translateY(6px); }.brand-text { display:grid; line-height:1; gap:4px; }.brand-text strong { font-size:18px; letter-spacing:1px; }.brand-text small { font-family:"DM Sans",sans-serif; font-size:7px; letter-spacing:.85px; color:#657169; }.primary-nav { display:flex; align-items:center; gap:26px; font-size:14px; font-weight:500; }.primary-nav > a:not(.nav-cta) { position:relative; padding:8px 0; }.primary-nav > a:not(.nav-cta):after { position:absolute; content:""; left:0; right:0; bottom:2px; height:2px; background:var(--green); transform:scaleX(0); transition:transform .25s ease; }.primary-nav > a:hover:after,.primary-nav > a.active:after { transform:scaleX(1); }.nav-cta,.button { display:inline-flex; min-height:44px; align-items:center; justify-content:center; gap:9px; border-radius:10px; font-weight:700; cursor:pointer; transition:transform .25s ease,background .25s ease,box-shadow .25s ease; }.nav-cta { padding:0 16px; color:#fff; background:var(--green); }.nav-cta:hover,.button-primary:hover { transform:translateY(-2px); box-shadow:0 12px 24px rgba(31,107,80,.22); }.menu-toggle { display:none; align-items:center; justify-content:center; width:44px; height:44px; padding:0; color:var(--green); border:1px solid var(--line); border-radius:10px; background:#fff; cursor:pointer; }.menu-toggle { font-size:12px; font-weight:700; }
.hero { position:relative; min-height:650px; display:grid; align-items:center; overflow:hidden; color:#fff; }.hero-image,.hero-scrim { position:absolute; inset:0; width:100%; height:100%; }.hero-image { object-fit:cover; object-position:center 38%; filter:saturate(.82) contrast(.96); }.hero-scrim { background:linear-gradient(90deg,rgba(13,29,22,.8) 0%,rgba(13,29,22,.57) 42%,rgba(13,29,22,.1) 72%),linear-gradient(0deg,rgba(13,29,22,.45),transparent 45%); }.hero-content { position:relative; z-index:1; padding-block:90px; }.eyebrow { margin:0 0 16px; font-family:"DM Sans",sans-serif; font-size:12px; line-height:1.2; font-weight:700; letter-spacing:1.7px; color:var(--green); }.eyebrow.light { color:#d9e4aa; }.hero h1 { max-width:740px; margin:0; font-size:clamp(38px,5vw,64px); line-height:1.2; letter-spacing:0; }.hero-copy { max-width:540px; margin:24px 0 0; color:rgba(255,255,255,.88); font-size:18px; }.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:35px; }.button { padding:0 20px; border:1px solid transparent; }.button svg { width:17px; }.button-primary { color:#fff; background:var(--green); }.hero .button-primary { background:var(--lime); color:#183e2d; }.button-quiet { border-color:rgba(255,255,255,.6); color:#fff; }.button-quiet:hover { background:rgba(255,255,255,.1); }.hero-note { display:flex; gap:8px; align-items:center; margin:36px 0 0; font-size:13px; color:rgba(255,255,255,.8); }.hero-note svg { width:16px; }.scroll-cue { position:absolute; right:max(24px,calc((100% - 1180px)/2)); bottom:32px; z-index:1; display:grid; place-items:center; gap:6px; font:700 9px/1 "DM Sans",sans-serif; letter-spacing:1.4px; }.scroll-cue svg { width:18px; animation:bob 2.2s ease-in-out infinite; }
.section { padding:110px 0; }.soft-surface { background:var(--soft); }.section-heading { margin-bottom:48px; }.split-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,460px); align-items:end; gap:70px; }.section-heading h2,.journey h2,.global h2,.standards h2,.consult h2 { margin:0; font-size:clamp(29px,3.5vw,44px); line-height:1.28; }.section-heading > p,.journey-copy > p,.global-content > p,.standards-copy > p,.consult-copy > p { margin:0; color:var(--muted); }.centered { text-align:center; }.centered > p { max-width:630px; margin-inline:auto; }.metrics { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.metrics article { padding:28px 20px; border-right:1px solid var(--line); }.metrics article:last-child { border-right:0; }.metrics strong { display:block; font-family:"DM Sans",sans-serif; color:var(--green); font-size:42px; line-height:1.1; letter-spacing:-1.5px; }.metrics strong span { font-size:20px; letter-spacing:0; }.metrics p { margin:10px 0 0; font-size:15px; font-weight:700; }.metrics small { color:#87918b; font-size:12px; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }.service-card { position:relative; min-height:315px; padding:32px; overflow:hidden; border:1px solid var(--line); border-radius:var(--radius); background:#fff; transition:transform .25s ease,box-shadow .25s ease; }.service-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }.service-card > svg { width:30px; height:30px; color:var(--green); stroke-width:1.5; }.service-number { position:absolute; top:20px; right:24px; color:#d2ded1; font:700 34px/1 "DM Sans",sans-serif; }.service-card h3 { margin:10px 0 12px; font-size:21px; }.service-card p { margin:0; color:var(--muted); font-size:14px; }.service-card ul { margin:20px 0 0; padding:0; list-style:none; color:var(--green); font-size:13px; }.service-card li { margin-top:6px; }
.journey-layout { display:grid; grid-template-columns:.88fr 1.12fr; gap:100px; align-items:start; }.journey-copy { position:sticky; top:112px; }.journey-copy > p { margin-top:22px; }.text-link { display:inline-flex; align-items:center; gap:8px; margin-top:26px; color:var(--green); font-weight:700; }.text-link svg { width:18px; transition:transform .25s ease; }.text-link:hover svg { transform:translateX(4px); }.journey-steps { display:grid; gap:0; margin:0; padding:0; list-style:none; }.journey-steps li { display:grid; grid-template-columns:78px 1fr; gap:18px; padding:0 0 30px; position:relative; }.journey-steps li:not(:last-child):before { position:absolute; top:47px; bottom:4px; left:20px; width:1px; content:""; background:var(--line); }.journey-steps span { display:grid; place-items:center; width:42px; height:42px; border:1px solid #b5cbba; border-radius:50%; color:var(--green); background:#f8fbf8; font:700 14px/1 "DM Sans",sans-serif; }.journey-steps h3 { margin:7px 0 7px; font-size:20px; }.journey-steps p { margin:0; color:var(--muted); font-size:14px; }
.dark-surface { color:#fff; background:var(--green-dark); }.global-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:70px; align-items:center; }.global h2 { color:#fff; }.global-content > p { margin-top:21px; color:#c5d0c9; }.global-data { display:flex; flex-wrap:wrap; gap:14px 22px; margin-top:29px; font-size:13px; color:#d0ded3; }.global-data b { color:var(--lime); font:700 22px/1 "DM Sans",sans-serif; }.global-image { margin:0; border-radius:16px; overflow:hidden; box-shadow:0 22px 50px rgba(0,0,0,.22); }.global-image img { width:100%; aspect-ratio:3/4; object-fit:cover; object-position:center; }
.team-layout { display:grid; grid-template-columns:1fr 1fr; gap:66px; align-items:center; }.team-image { margin:0; overflow:hidden; border-radius:var(--radius); box-shadow:var(--shadow); }.team-image img { width:100%; aspect-ratio:3/4; object-fit:cover; object-position:top; }.team-list { display:grid; gap:0; }.team-list article { display:block; padding:24px 0; border-bottom:1px solid var(--line); }.team-list article:first-child { padding-top:0; }.team-list svg { width:26px; color:var(--green); stroke-width:1.55; }.team-list h3 { margin:0 0 7px; font-size:18px; }.team-list p { margin:0; color:var(--muted); font-size:14px; }.standards-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:100px; align-items:center; }.standards-copy > p { margin-top:20px; }.standards-list { border-top:1px solid var(--line); }.standards-list article { display:block; padding:20px 0; border-bottom:1px solid var(--line); }.standards-list svg { width:25px; color:var(--green); stroke-width:1.5; }.standards-list b,.standards-list span { display:block; }.standards-list span { margin-top:3px; color:var(--muted); font-size:14px; }
.timeline { display:grid; grid-template-columns:repeat(5,1fr); gap:0; margin:0; padding:0; list-style:none; }.timeline li { position:relative; padding:28px 22px 0; border-top:1px solid #b9cbba; }.timeline li:before { position:absolute; top:-5px; left:22px; width:9px; height:9px; content:""; border-radius:50%; background:var(--lime); }.timeline time { color:var(--green); font:700 27px/1 "DM Sans",sans-serif; }.timeline p { margin:15px 0 0; color:var(--muted); font-size:14px; }
.consult { padding-block:100px; color:#fff; background:linear-gradient(120deg,#143f32,#1f6b50); }.consult-wrap { display:grid; grid-template-columns:.86fr 1.14fr; gap:80px; align-items:center; }.consult h2 { color:#fff; }.consult-copy > p { margin-top:20px; color:#d1dfd5; }.consult-copy .consult-disclaimer { margin-top:34px; font-size:12px; color:#b7cabd; }.consult-form { padding:28px; border:1px solid rgba(255,255,255,.24); border-radius:16px; background:rgba(255,255,255,.09); backdrop-filter:blur(8px); }.consult-form label { display:grid; gap:7px; margin-top:14px; color:#ecf4ee; font-size:13px; font-weight:700; }.consult-form label:first-child { margin-top:0; }.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }.consult-form input,.consult-form select,.consult-form textarea { width:100%; min-height:44px; padding:10px 12px; color:#fff; border:1px solid rgba(255,255,255,.28); border-radius:8px; outline:0; background:rgba(6,32,22,.18); transition:border-color .2s ease,background .2s ease; }.consult-form select option { color:var(--ink); }.consult-form textarea { min-height:84px; resize:vertical; }.consult-form input::placeholder,.consult-form textarea::placeholder { color:#c2d2c7; }.consult-form input:focus,.consult-form select:focus,.consult-form textarea:focus { border-color:var(--lime); background:rgba(6,32,22,.3); box-shadow:0 0 0 3px rgba(194,217,72,.2); }.form-submit { width:100%; margin-top:20px; border:0; background:var(--lime); color:#183e2d; }.form-feedback { min-height:22px; margin:10px 0 0; color:#edf4cb; font-size:13px; }.site-footer { padding:27px 0 max(27px,env(safe-area-inset-bottom)); color:#dae4dd; background:#0e2e24; }.footer-inner { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:18px; }.footer-brand { color:#fff; }.footer-brand .brand-text small { color:#a4b8ab; }.site-footer p { margin:0; font-size:13px; }.back-top { justify-self:end; display:grid; place-items:center; width:44px; height:44px; border:1px solid rgba(255,255,255,.25); border-radius:10px; transition:background .25s ease; }.back-top:hover { background:rgba(255,255,255,.12); }.back-top { font-size:12px; font-weight:700; }
.reveal { transition:opacity .5s ease,transform .5s ease; }.reveal.is-hidden { opacity:0; transform:translateY(14px); } :focus-visible { outline:3px solid var(--lime); outline-offset:3px; } @keyframes bob { 50% { transform:translateY(5px); } } @media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*:before,*:after { animation-duration:.01ms!important; transition-duration:.01ms!important; } }
@media (max-width:800px) { :root { --shell:min(100% - 36px, 1180px); } .header-inner { height:70px; }.menu-toggle { display:inline-flex; }.primary-nav { position:absolute; top:calc(100% + 1px); left:0; right:0; display:none; padding:14px 18px 20px; border-bottom:1px solid var(--line); background:var(--paper); box-shadow:var(--shadow); }.primary-nav.is-open { display:grid; }.primary-nav > a:not(.nav-cta) { min-height:44px; display:flex; align-items:center; }.nav-cta { margin-top:5px; }.hero { min-height:630px; }.hero-image { object-position:60% center; }.hero-content { padding-block:110px 80px; }.hero-copy { font-size:16px; }.scroll-cue { display:none; }.section { padding:74px 0; }.split-heading,.journey-layout,.global-layout,.team-layout,.standards-layout,.consult-wrap { grid-template-columns:1fr; gap:36px; }.section-heading { margin-bottom:34px; }.section-heading h2,.journey h2,.global h2,.standards h2,.consult h2 { font-size:31px; }.metrics { grid-template-columns:1fr 1fr; }.metrics article:nth-child(2) { border-right:0; }.metrics article:nth-child(-n+2) { border-bottom:1px solid var(--line); }.metrics strong { font-size:34px; }.service-grid { grid-template-columns:1fr; }.service-card { min-height:auto; padding:26px; }.journey-copy { position:static; }.journey-steps li { grid-template-columns:60px 1fr; }.global-image { max-width:480px; }.team-image { max-width:480px; }.timeline { grid-template-columns:1fr; gap:0; border-left:1px solid #b9cbba; }.timeline li { padding:0 0 25px 24px; border:0; }.timeline li:before { top:4px; left:-5px; }.timeline p { margin-top:8px; }.consult { padding-block:72px; }.form-row { grid-template-columns:1fr; gap:0; }.footer-inner { grid-template-columns:1fr auto; }.site-footer p { display:none; } }
@media (max-width:430px) { :root { --shell:min(100% - 30px, 1180px); }.brand-text strong { font-size:16px; }.hero h1 { font-size:37px; }.hero-actions { display:grid; }.hero-actions .button { width:100%; }.metrics article { padding:22px 12px; }.metrics strong { font-size:29px; }.metrics p { font-size:13px; }.metrics small { font-size:11px; }.consult-form { padding:20px; }.global-data { display:grid; }.footer-inner { gap:12px; } }
