:root{--bg:#F7F6F1;--ink:#0B3B36;--text:#3E4E49;--muted:#56655F;--line:#D3DDD7;--soft:#E4EEE8;--green:#1E7A50;--sun:#F4B400;--on-dark:#CFE0D9}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.6 'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased}
h1,h2{font-family:'Newsreader',Georgia,serif;font-weight:400;letter-spacing:-.02em;margin:0;text-wrap:balance}
h3{margin:0;font-weight:600;letter-spacing:-.01em}p{margin:0}
a{color:var(--ink)}a:hover{color:var(--green)}
img{display:block;max-width:100%;height:auto}
.wrap{max-width:1248px;margin:0 auto;padding-inline:clamp(16px,5vw,48px)}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;background:var(--sun);padding:8px 12px;z-index:9}
.btn{display:inline-block;background:var(--sun);color:var(--ink);text-decoration:none;font-weight:600;font-size:15px;padding:11px 18px;border-radius:2px;white-space:nowrap}
.btn:hover{background:#FFC72C;color:var(--ink)}
.eyebrow{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--green);font-weight:600}
.top{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:14px;padding-inline:max(clamp(16px,5vw,48px),calc((100% - 1248px)/2 + clamp(16px,5vw,48px)));border-bottom:1px solid var(--line)}
.brand img{height:40px;width:auto}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:600;font-size:22px;letter-spacing:-.02em}
.top nav{display:flex;gap:32px}.top nav a{text-decoration:none;font-size:15px}
.right{display:flex;align-items:center;gap:20px}
.langs{display:flex;gap:10px;font-size:13px}.langs a{text-decoration:none;color:var(--muted);padding:6px 2px}.langs a[aria-current]{color:var(--ink);font-weight:600;border-bottom:2px solid var(--sun)}
.hero{display:flex;flex-direction:column;gap:22px;padding-block:clamp(32px,4.5vw,56px) 44px}
.hero h1{font-size:clamp(30px,3.4vw,46px);line-height:1.12;margin-top:14px;max-width:24em}
.hero-side{display:flex;flex-direction:column;gap:22px;color:var(--text);font-size:18px;max-width:52em}.hero-side .btn{align-self:flex-start}
.photo{margin-block:0}.photo img{width:100%;aspect-ratio:16/7;object-fit:cover;background:var(--line)}
.stats{display:grid;grid-template-columns:minmax(0,420px);gap:24px;padding-top:48px}
.stat{border-top:1px solid var(--ink);padding-top:18px;display:flex;flex-direction:column;gap:6px}
.stat strong{font-family:'Newsreader',Georgia,serif;font-weight:400;font-size:clamp(36px,4.5vw,56px);line-height:1}.stat span{color:var(--muted);font-size:15px}
.block{padding-block:clamp(72px,9vw,112px)}.block h2{font-size:clamp(34px,4vw,52px);line-height:1.08}
.svcs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 64px;margin-top:48px}
.svc{border-top:2px solid var(--ink);padding-top:24px;display:flex;flex-direction:column;gap:12px}
.svc .num{color:var(--green);font-size:14px;font-weight:600}.svc h3{font-size:24px}.svc p{color:var(--text)}
.life-h{margin-top:88px}
.life{list-style:none;padding:0;margin:24px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.life li{background:var(--soft);padding:24px;display:flex;flex-direction:column;gap:10px}.life li strong{font-size:19px}.life li em{font-style:normal;font-weight:600;font-size:15px;line-height:1.4;color:var(--green)}.life li span{font-size:15px;line-height:1.55;color:var(--text)}
.life li.on{background:var(--ink);color:var(--bg)}.life li.on em{color:var(--sun)}.life li.on span{color:var(--on-dark)}
.projects{display:grid;grid-template-columns:4fr 7fr;gap:clamp(32px,6vw,96px);border-top:1px solid var(--line)}
.projects>div{display:flex;flex-direction:column;gap:18px;color:var(--text)}.projects h2{color:var(--ink)}
.projects img{margin-top:12px;aspect-ratio:4/3;object-fit:cover;background:var(--line)}
table{width:100%;border-collapse:collapse;font-size:17px}
th{text-align:left;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:0 0 12px;border-bottom:1px solid var(--ink)}
td{padding:16px 0;border-bottom:1px solid var(--line)}td:first-child{font-weight:600;white-space:nowrap;padding-right:16px}
.dark{background:var(--ink);color:var(--bg)}.dark .eyebrow{color:var(--sun)}.dark h2{margin-top:16px;max-width:860px}
.ms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px;margin-top:56px}
.m{border-top:1px solid #2A5C54;padding-top:22px;display:flex;flex-direction:column;gap:12px}.m h3{font-size:20px}.m p{color:var(--on-dark)}
.cta{display:flex;justify-content:space-between;align-items:flex-end;gap:48px;background:var(--soft);padding:clamp(40px,6vw,88px);margin-block:clamp(64px,8vw,112px)}
.cta h2{font-size:clamp(34px,4.5vw,56px);line-height:1.05;max-width:720px}.cta p{margin-top:16px;color:var(--text);font-size:18px}
.contact{display:flex;flex-direction:column;gap:10px;min-width:260px}.contact .btn{text-align:center}.contact a:not(.btn){text-decoration:none}.contact span{color:var(--muted)}
.foot a{color:inherit}.foot{flex-wrap:wrap;display:flex;justify-content:space-between;gap:16px;padding-block:32px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.chooser main{padding-block:96px;display:flex;flex-direction:column;gap:32px}.chooser ul{list-style:none;padding:0;margin:0;display:flex;gap:24px;font-size:20px}
@media (max-width:1100px){.life{grid-template-columns:1fr 1fr}}
@media (max-width:960px){.top nav{display:none}.hero{gap:18px}.cta{flex-direction:column;align-items:flex-start}
.svcs,.ms,.projects{grid-template-columns:1fr}.life{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.right .btn{display:none}.life{grid-template-columns:1fr}.photo img{aspect-ratio:4/3}table{font-size:15px}}
.svc h3 a{text-decoration:none}.svc h3 a:hover{color:var(--green)}
.more{align-self:flex-start;font-weight:600;font-size:15px;color:var(--green);text-decoration:none;border-bottom:2px solid var(--sun);padding-bottom:2px}.more:hover{color:var(--ink)}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:14px;color:var(--muted)}.crumbs a{color:var(--muted)}
.sv-hero{display:flex;flex-direction:column;gap:22px;padding-block:clamp(32px,4.5vw,56px) clamp(40px,5vw,64px)}
.sv-hero h1{font-size:clamp(30px,3.4vw,46px);line-height:1.12;max-width:22em}
.sv-intro{font-size:19px;line-height:1.6;color:var(--text);max-width:46em}.sv-hero .btn{align-self:flex-start}
.sv-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);padding-block:clamp(48px,6vw,80px);border-top:1px solid var(--line)}
.sv-col{display:flex;flex-direction:column;gap:20px}.sv-col h2{font-size:clamp(28px,3vw,38px);line-height:1.1}
.sv-when,.sv-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.sv-when li{padding:16px 0 16px 28px;border-bottom:1px solid var(--line);position:relative;color:var(--text)}
.sv-when li::before{content:"";position:absolute;left:0;top:29px;width:14px;height:2px;background:var(--green)}
.sv-what{background:var(--soft);padding:clamp(24px,3vw,40px)}
.sv-list li{padding:12px 0 12px 26px;border-bottom:1px solid var(--line);position:relative}.sv-list li:last-child{border-bottom:0}
.sv-list li::before{content:"";position:absolute;left:0;top:21px;width:12px;height:2px;background:var(--green)}
.sv-how h2{font-size:clamp(30px,3.4vw,44px)}
.sv-steps{list-style:none;margin:40px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;counter-reset:st}
.sv-steps li{counter-increment:st;border-top:1px solid #2A5C54;padding-top:18px;color:var(--on-dark);display:flex;flex-direction:column;gap:10px}
.sv-steps li::before{content:counter(st,decimal-leading-zero);font-family:'Newsreader',Georgia,serif;font-size:34px;line-height:1;color:var(--sun)}
.sv-others{padding-block:clamp(48px,6vw,72px) 0;display:flex;flex-direction:column;gap:16px}
.sv-links{display:flex;flex-wrap:wrap;gap:12px 32px}.sv-links a{font-size:20px;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:4px}.sv-links a:hover{border-color:var(--green);color:var(--green)}
@media (max-width:960px){.sv-body{grid-template-columns:1fr}.sv-steps{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.sv-steps{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
