/*
  Typography
  ----------
  This version uses Aptos as the primary typeface.
  Aptos is a Microsoft font family and is available in current Microsoft 365 / Windows environments.

  No font files are bundled in this package. The CSS uses a safe font stack:
  Aptos -> Aptos Display -> Segoe UI -> system sans-serif.

  If Aptos is not installed on a visitor's device, the page falls back gracefully to Segoe UI or another system font.
*/

:root{
  --bg:#f7f8f6;
  --paper:#ffffff;
  --ink:#203040;
  --muted:#66727a;
  --line:#dce2df;
  --green:#587867;
  --soft:#eef2ef;
  --shadow:0 18px 50px rgba(32,48,64,.10);
  --max:1440px;
  --font:Aptos, "Aptos Display", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, Arial, sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-y:auto;overflow-x:hidden;scroll-padding-top:96px}
body{margin:0;min-height:100%;overflow-x:hidden;overflow-y:auto;font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.6}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}
.site-header{min-height:84px;padding:0 clamp(24px,4vw,56px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(255,255,255,.9);backdrop-filter:blur(14px);position:sticky;top:0;z-index:20}
.brand{display:flex;align-items:center;gap:18px;min-width:360px}.brand-logo{width:178px;height:auto;display:block;object-fit:contain}.brand-line{width:1px;height:42px;background:var(--green)}.brand-text{font-size:14px;color:#2d3d4b;line-height:1.45;font-weight:500}.site-nav{display:flex;gap:clamp(22px,3vw,48px);font-size:15px;font-weight:500}.language-switch{display:flex;align-items:center;gap:6px;margin-left:auto;margin-right:26px}.lang-btn{font:inherit;font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--ink);background:transparent;border:1px solid var(--line);padding:6px 9px;cursor:pointer;transition:.2s ease}.lang-btn:hover,.lang-btn.is-active{border-color:var(--green);background:var(--green);color:#fff}.site-nav a{color:#263441}.site-nav a:hover{color:var(--green)}.nav-toggle{display:none;background:none;border:0;font-size:28px;color:var(--ink);cursor:pointer}
.hero{min-height:560px;display:grid;grid-template-columns:minmax(360px,43%) 1fr;max-width:var(--max);margin:0 auto;background:linear-gradient(90deg,#fff 0%,#fff 38%,rgba(255,255,255,.75) 55%,rgba(255,255,255,0) 78%);border-bottom:1px solid var(--line)}.hero-copy{padding:clamp(48px,7vw,86px) clamp(24px,6vw,96px);position:relative;z-index:2}.eyebrow{margin:0 0 18px;text-transform:uppercase;letter-spacing:.12em;color:var(--green);font-size:12px;font-weight:700}.hero h1{font-size:clamp(39px,5vw,58px);line-height:1.12;letter-spacing:-.035em;margin:0;font-weight:650}.short-line{width:54px;height:2px;background:var(--green);margin:28px 0}.lead{max-width:570px;font-size:17px;color:#344452;margin:0 0 32px}.actions{display:flex;gap:18px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;gap:16px;padding:12px 22px;border:1px solid var(--green);min-width:175px;justify-content:center;transition:.2s ease;font-size:15px;font-weight:600}.button.primary{background:var(--green);color:white}.button.secondary{background:rgba(255,255,255,.7);color:var(--green)}.button:hover{transform:translateY(-1px);box-shadow:0 8px 25px rgba(32,48,64,.08)}.hero-visual{position:relative;min-height:560px;overflow:hidden}.hero-visual img{width:100%;height:100%;object-fit:cover;filter:saturate(.86) contrast(.96);opacity:.94}.hero-visual:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.78) 12%,rgba(255,255,255,.1) 45%,rgba(255,255,255,.02) 100%);z-index:1;pointer-events:none}
.intro-section,.about-section,.experience-section,.contact-section{max-width:var(--max);margin:0 auto;padding:clamp(52px,7vw,86px) clamp(24px,6vw,96px);border-bottom:1px solid var(--line);background:rgba(255,255,255,.62)}.intro-section{display:grid;grid-template-columns:30% 1fr;gap:64px}.section-title p{margin:0 0 18px;text-transform:uppercase;letter-spacing:.1em;color:var(--green);font-size:12px;font-weight:700}.section-title h2,.about-section h2,.experience-section h2,.contact-section h2{margin:0;font-size:clamp(28px,3.4vw,38px);line-height:1.3;letter-spacing:-.025em;font-weight:650}.expertise-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}.expertise-item{padding:0 28px;border-left:1px solid var(--line)}.expertise-item:first-child{border-left:0}.icon{font-size:14px;color:var(--green);display:block;margin-bottom:18px;font-weight:700;letter-spacing:.08em}.expertise-item h3{font-size:16px;margin:0 0 12px}.expertise-item p{margin:0;color:#52616b;font-size:14px}.about-section{display:grid;grid-template-columns:42% 1fr;gap:72px}.about-text p{margin:0 0 18px;color:#3d4b56;font-size:17px}.experience-section .narrow{max-width:760px;margin-bottom:34px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card{background:var(--paper);border:1px solid var(--line);padding:30px;box-shadow:0 8px 30px rgba(32,48,64,.04)}.card h3{margin:0 0 12px;font-size:19px}.card p{margin:0;color:#52616b}.tech-strip{max-width:var(--max);margin:0 auto;padding:24px clamp(24px,6vw,96px);display:flex;gap:40px;align-items:center;border-bottom:1px solid var(--line);background:#fff}.tech-strip span{text-transform:uppercase;letter-spacing:.1em;color:var(--green);font-size:12px;font-weight:700;white-space:nowrap}.tech-strip ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:20px 34px;color:#33414c;font-size:14px}.tech-strip li:not(:last-child)::after{content:"•";color:var(--green);margin-left:28px}.contact-section{text-align:center}.contact-section h2{max-width:760px;margin:0 auto 28px}.site-footer{max-width:var(--max);margin:0 auto;padding:28px clamp(24px,6vw,96px);display:flex;justify-content:space-between;color:#66727a;font-size:14px}.reveal{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease}.reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.button:hover{transform:none}}
@media (max-width:1100px){html{scroll-padding-top:86px}.brand{min-width:auto}.brand-logo{width:148px}.hero{grid-template-columns:1fr;background:#fff}.hero-visual{min-height:320px;order:-1}.hero-copy{padding-top:46px}.intro-section,.about-section{grid-template-columns:1fr}.expertise-grid{grid-template-columns:repeat(2,1fr);gap:28px}.expertise-item{border-left:0;border-top:1px solid var(--line);padding:24px 0 0}.site-nav{gap:22px}.language-switch{margin-right:18px}.brand-text{display:none}.hero-visual:before{background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.2))}}
@media (max-width:760px){html{scroll-padding-top:78px}.site-header{min-height:76px;align-items:flex-start;padding:18px 22px;flex-wrap:wrap}.nav-toggle{display:block;margin-left:auto}.language-switch{order:3;width:100%;justify-content:flex-start;margin:14px 0 0}.site-nav{order:4;display:none;flex-direction:column;width:100%;gap:14px;padding:20px 0 6px}.site-nav.open{display:flex}.brand-logo{width:132px}.brand-line,.brand-text{display:none}.hero-copy{padding:40px 24px}.hero h1{font-size:36px}.lead{font-size:16px}.hero-visual{min-height:260px}.intro-section,.about-section,.experience-section,.contact-section{padding:44px 24px}.expertise-grid,.cards{grid-template-columns:1fr}.tech-strip{display:block}.tech-strip ul{margin-top:18px;gap:12px}.tech-strip li:not(:last-child)::after{display:none}.site-footer{display:block}.site-footer a{display:block;margin-top:12px}}

/* Legal pages */
.legal-main{max-width:980px;margin:0 auto;padding:clamp(48px,7vw,86px) clamp(24px,6vw,96px);background:rgba(255,255,255,.72);border-left:1px solid var(--line);border-right:1px solid var(--line);min-height:calc(100vh - 170px)}
.legal-header{margin-bottom:42px}.legal-header h1{font-size:clamp(38px,5vw,56px);line-height:1.12;letter-spacing:-.035em;margin:0 0 18px}.legal-header p{font-size:17px;color:#52616b;max-width:760px}.legal-block{background:#fff;border:1px solid var(--line);padding:28px 30px;margin:18px 0;box-shadow:0 8px 30px rgba(32,48,64,.035)}.legal-block h2{font-size:20px;margin:0 0 10px}.legal-block p{margin:0;color:#3d4b56;white-space:pre-line}.footer-links{display:flex;gap:22px;flex-wrap:wrap}.footer-links a:hover{color:var(--green)}@media (max-width:760px){.legal-main{padding:40px 24px;border:0}.legal-block{padding:24px}.footer-links{margin-top:12px;display:flex;flex-direction:column;gap:10px}}

/* Contact page */
.contact-page{max-width:var(--max);margin:0 auto;background:rgba(255,255,255,.68);border-left:1px solid var(--line);border-right:1px solid var(--line);min-height:calc(100vh - 170px)}
.contact-hero{padding:clamp(48px,7vw,86px) clamp(24px,6vw,96px) 36px;max-width:980px}
.contact-hero h1{font-size:clamp(38px,5vw,56px);line-height:1.12;letter-spacing:-.035em;margin:0 0 20px;font-weight:650}.contact-hero p:not(.eyebrow){font-size:18px;color:#52616b;max-width:760px;margin:0}
.contact-layout{display:grid;grid-template-columns:minmax(320px,1fr) 380px;gap:36px;padding:0 clamp(24px,6vw,96px) clamp(52px,7vw,86px)}
.contact-form{background:#fff;border:1px solid var(--line);box-shadow:0 8px 30px rgba(32,48,64,.035);padding:30px;display:grid;gap:12px}.contact-form label{font-weight:650;font-size:14px;color:#2d3d4b}.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--line);background:#fbfcfb;color:var(--ink);font:inherit;font-size:16px;padding:13px 14px;outline:none}.contact-form textarea{resize:vertical;min-height:190px}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(88,120,103,.14)}.contact-form .button{margin-top:10px;justify-self:start;cursor:pointer}.form-note{font-size:13px;color:#66727a;margin:8px 0 0}.contact-aside{display:grid;gap:18px;align-content:start}.text-link{color:var(--green);font-weight:650}.text-link:hover{text-decoration:underline}
@media (max-width:900px){.contact-layout{grid-template-columns:1fr}.contact-aside{grid-template-columns:1fr 1fr}.contact-aside .legal-block:last-child{grid-column:1 / -1}}
@media (max-width:760px){.contact-page{border:0}.contact-hero{padding:40px 24px 24px}.contact-layout{padding:0 24px 44px}.contact-form{padding:24px}.contact-aside{grid-template-columns:1fr}}
