
:root { --green:#8abe53; --forest:#297442; --ink:#171a18; --paper:#f5f4ef; --line:rgba(23,26,24,.17); --header:82px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:calc(var(--header) + 22px); }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial, Helvetica, sans-serif; }
button,input,textarea { font:inherit; }
a { color:inherit; text-decoration:none; }
.site { min-width:320px; overflow:clip; background:var(--paper); }
.concept-switcher { position:fixed; z-index:100; right:18px; bottom:18px; display:flex; align-items:center; padding:6px; border:1px solid rgba(255,255,255,.25); background:rgba(15,18,16,.91); color:white; backdrop-filter:blur(14px); box-shadow:0 12px 40px rgba(0,0,0,.22); }
.concept-switcher>span { padding:0 12px; color:#aaa; font-size:10px; letter-spacing:.16em; text-transform:uppercase; }
.concept-switcher button { width:44px; height:38px; border:0; border-left:1px solid #454745; background:transparent; color:#aaa; cursor:pointer; }
.concept-switcher button b { display:none; }
.concept-switcher button[aria-pressed="true"] { background:var(--green); color:#10130f; }
.main-header { position:sticky; top:0; z-index:90; height:var(--header); display:flex; align-items:center; justify-content:space-between; padding:10px clamp(20px,4vw,68px); border-bottom:1px solid var(--line); background:rgba(245,244,239,.93); backdrop-filter:blur(18px); }
.brand { display:block; width:83px; height:61px; overflow:hidden; }
.brand img { width:83px; height:auto; transform:translateY(-1px); }
.main-header nav { display:flex; gap:clamp(18px,2.2vw,40px); align-items:center; }
.main-header nav a { position:relative; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.main-header nav a:after { content:""; position:absolute; left:0; bottom:-9px; width:100%; height:2px; background:var(--green); transform:scaleX(0); transform-origin:left; transition:.25s; }
.main-header nav a:hover:after,.main-header nav a:focus-visible:after { transform:scaleX(1); }
.menu-toggle { display:none; border:0; background:none; }
.hero { position:relative; min-height:calc(100vh - var(--header)); isolation:isolate; display:grid; align-items:center; padding:clamp(50px,7vw,110px) clamp(22px,7vw,110px); }
.hero-image,.hero-overlay { position:absolute; inset:0; z-index:-2; }
.hero-image { background:center/cover no-repeat url('./hero-editorial.png'); }
.hero-overlay { z-index:-1; background:linear-gradient(90deg,rgba(246,245,240,.96) 0%,rgba(246,245,240,.77) 37%,rgba(246,245,240,.03) 70%); }
.hero-copy { max-width:760px; }
.eyebrow { margin:0 0 34px; color:var(--forest); font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.hero h1 { margin:0; font-size:clamp(61px,8.8vw,142px); line-height:.79; letter-spacing:-.071em; font-weight:800; }
.hero h1 em { color:var(--green); font-style:normal; }
.hero-lead { max-width:565px; margin:46px 0 32px; font-size:clamp(17px,1.35vw,22px); line-height:1.55; }
.text-link { display:inline-flex; gap:42px; align-items:center; padding-bottom:8px; border-bottom:1px solid currentColor; font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.text-link span { color:var(--green); font-size:19px; }
.hero-index { position:absolute; right:34px; bottom:30px; margin:0; font-size:9px; letter-spacing:.18em; writing-mode:vertical-rl; }
.section { padding:clamp(90px,12vw,180px) clamp(22px,7vw,110px); }
.section-heading { display:grid; grid-template-columns:70px minmax(150px,1fr) minmax(420px,1.5fr); gap:24px; align-items:start; border-top:1px solid var(--line); padding-top:20px; }
.section-heading>span { color:var(--green); font-size:11px; font-weight:700; }
.section-heading>p { margin:0; font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.section-heading h2 { margin:0; font-size:clamp(38px,5.1vw,78px); line-height:.97; letter-spacing:-.045em; }
.intro-body { display:grid; grid-template-columns:1fr 1fr; gap:8vw; margin-top:110px; margin-left:calc(70px + 24px); }
.large-copy { margin:0; font-size:clamp(28px,3.2vw,48px); line-height:1.18; letter-spacing:-.035em; }
.body-copy { max-width:610px; }
.body-copy p,.careers>div p { margin:0 0 22px; font-size:15px; line-height:1.75; }
.dark-section { --line:rgba(255,255,255,.2); background:#171a18; color:#f2f1eb; }
.service-list { margin:100px 0 0 calc(70px + 24px); }
.service-list details { border-top:1px solid var(--line); }
.service-list details:last-child { border-bottom:1px solid var(--line); }
.service-list summary { list-style:none; display:grid; grid-template-columns:62px minmax(200px,1fr) minmax(300px,1.2fr) 30px; gap:24px; align-items:center; padding:28px 4px; cursor:pointer; }
.service-list summary::-webkit-details-marker { display:none; }
.service-list summary span { color:var(--green); font-size:11px; }
.service-list summary h3 { margin:0; font-size:clamp(23px,2.2vw,35px); letter-spacing:-.03em; }
.service-list summary p { margin:0; color:#bbbdb9; font-size:14px; line-height:1.45; }
.service-list summary i { font-size:28px; font-style:normal; font-weight:200; transition:transform .3s; }
.service-list details[open] summary i { transform:rotate(45deg); }
.service-detail { display:grid; grid-template-columns:1fr 1.2fr; gap:8vw; padding:20px 50px 65px 86px; color:#ccc; }
.service-detail>p { margin:0; max-width:550px; line-height:1.7; }
.service-detail b { display:block; margin-bottom:18px; color:white; font-size:11px; letter-spacing:.1em; text-transform:uppercase; }
.service-detail ul { columns:2; gap:40px; margin:0; padding:0; list-style:none; }
.service-detail li { break-inside:avoid; padding:8px 0; border-bottom:1px solid rgba(255,255,255,.1); font-size:13px; }
.section-intro { max-width:720px; margin:90px 0 50px calc(70px + 24px); font-size:25px; line-height:1.42; }
.industry-grid,.reason-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-left:calc(70px + 24px); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.industry-grid article,.reason-grid article { min-height:300px; padding:24px 25px 35px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.industry-grid article>span,.reason-grid article>span { color:var(--green); font-size:10px; }
.industry-grid h3,.reason-grid h3 { margin:74px 0 18px; font-size:23px; line-height:1.08; letter-spacing:-.025em; }
.industry-grid p,.reason-grid p { margin:0; color:#60645f; font-size:13px; line-height:1.65; }
.image-section { display:grid; grid-template-columns:.95fr 1.05fr; gap:0; padding:0; background:#dfe1dc; }
.image-panel { min-height:960px; background:center/cover no-repeat url('./hero-cinematic.png'); }
.engagement-copy { padding:clamp(80px,8vw,130px) clamp(22px,6vw,90px); }
.engagement-copy .section-heading { display:block; }
.engagement-copy .section-heading>span { display:block; margin-bottom:30px; }
.engagement-copy .section-heading>p { margin-bottom:60px; }
.engagement-copy .section-heading h2 { font-size:clamp(42px,5vw,72px); }
.engagement-copy>p { max-width:560px; margin:60px 0 25px; line-height:1.7; }
.engagement-copy ol { margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
.engagement-copy li { display:grid; grid-template-columns:48px 1fr; padding:15px 0; border-bottom:1px solid var(--line); font-size:13px; line-height:1.4; }
.engagement-copy li span { color:var(--forest); font-size:10px; }
.reason-grid { grid-template-columns:repeat(5,1fr); margin-top:100px; }
.reason-grid article { min-height:380px; }
.reason-grid h3 { margin-top:90px; }
.careers { display:grid; grid-template-columns:1fr 2fr 1.2fr; gap:50px; align-items:start; background:var(--green); }
.careers .eyebrow { color:var(--ink); }
.careers h2 { margin:0; font-size:clamp(42px,4vw,65px); line-height:1; letter-spacing:-.045em; }
.contact { background:#171a18; color:white; display:grid; grid-template-columns:.7fr 1.3fr 1fr; gap:40px 7vw; }
.contact .eyebrow { color:var(--green); }
.contact h2 { margin:0; font-size:clamp(58px,7vw,108px); line-height:.88; letter-spacing:-.06em; }
.contact-intro { max-width:500px; margin:0; color:#c8cac7; line-height:1.7; }
.contact form { grid-column:2 / 4; display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:50px; }
.contact label { color:#9c9f9b; font-size:10px; letter-spacing:.14em; text-transform:uppercase; }
.contact input,.contact textarea { display:block; width:100%; margin-top:8px; border:0; border-bottom:1px solid #656864; background:transparent; color:white; outline:none; padding:12px 0; resize:vertical; }
.contact label:nth-child(3) { grid-column:1 / 3; }
.contact button { justify-self:start; border:1px solid var(--green); background:var(--green); padding:15px 22px; cursor:pointer; font-weight:700; }
.contact button span { margin-left:70px; }
.locations { grid-column:2 / 4; display:grid; grid-template-columns:1fr 1fr; gap:30px; margin-top:80px; border-top:1px solid #555; padding-top:25px; }
.locations span { display:block; margin-bottom:12px; color:#8c8f8b; font-size:10px; letter-spacing:.13em; text-transform:uppercase; }
.locations b { font-size:13px; }
footer { padding:60px clamp(22px,7vw,110px) 35px; background:#0d0f0e; color:#b5b7b4; display:grid; grid-template-columns:120px 1fr 2fr; gap:30px; align-items:start; font-size:11px; line-height:1.7; }
footer .brand { filter:grayscale(1); opacity:.85; }
footer p { margin:0; }
footer small { grid-column:2 / 4; padding-top:45px; border-top:1px solid #333; color:#727572; }

/* Concept 2 */
.concept-cinematic { --paper:#151816; --ink:#f1f0eb; --line:rgba(255,255,255,.18); background:#151816; color:var(--ink); }
.concept-cinematic .main-header { background:rgba(17,20,18,.9); }
.concept-cinematic .brand { filter:none; }
.concept-cinematic .main-header nav a { color:white; }
.concept-cinematic .hero-image { background-image:url('./hero-cinematic.png'); }
.concept-cinematic .hero-overlay { background:linear-gradient(90deg,rgba(8,11,10,.92),rgba(8,11,10,.54) 45%,rgba(8,11,10,.08) 78%); }
.concept-cinematic .hero { color:white; }
.concept-cinematic .hero .eyebrow { color:var(--green); }
.concept-cinematic .intro,.concept-cinematic .industries,.concept-cinematic .reasons { background:#eeeee9; color:#171a18; --line:rgba(23,26,24,.17); }
.concept-cinematic .image-panel { background-image:url('./hero-editorial.png'); }

/* Concept 3 */
.concept-precision { --paper:#edf0ee; }
.concept-precision .site,.concept-precision { background-color:var(--paper); }
.concept-precision .hero-image { background-image:url('./hero-precision.png'); }
.concept-precision .hero-overlay { background:linear-gradient(90deg,rgba(239,242,240,.98) 0%,rgba(239,242,240,.84) 39%,rgba(239,242,240,.06) 72%); }
.concept-precision .hero,.concept-precision .intro,.concept-precision .industries,.concept-precision .reasons { background-image:linear-gradient(rgba(23,26,24,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(23,26,24,.035) 1px,transparent 1px); background-size:80px 80px; }
.concept-precision .hero h1 { font-weight:500; letter-spacing:-.055em; }
.concept-precision .hero h1 em { font-weight:800; }
.concept-precision .dark-section { background:#222825; }
.concept-precision .image-panel { background-image:url('./hero-precision.png'); }
.concept-precision .industry-grid article,.concept-precision .reason-grid article { background:rgba(255,255,255,.44); }

@media(max-width:1100px){
  .section-heading { grid-template-columns:50px 150px 1fr; }
  .reason-grid { grid-template-columns:repeat(3,1fr); }
  .careers { grid-template-columns:1fr 2fr; }
  .careers>div { grid-column:2; }
  .contact { grid-template-columns:1fr 2fr; }
  .contact-intro { grid-column:2; }
  .contact form,.locations { grid-column:2; }
}
@media(max-width:820px){
  :root { --header:70px; }
  .main-header { padding:8px 20px; }
  .brand { width:70px; height:52px; }
  .brand img { width:70px; }
  .menu-toggle { display:flex; align-items:center; gap:11px; color:inherit; cursor:pointer; }
  .menu-toggle span { font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
  .menu-toggle i,.menu-toggle i:before { display:block; width:25px; height:1px; background:currentColor; content:""; transition:.2s; }
  .menu-toggle i:before { transform:translateY(6px); }
  .menu-toggle[aria-expanded="true"] i { transform:rotate(45deg); }
  .menu-toggle[aria-expanded="true"] i:before { transform:rotate(90deg); }
  .main-header nav { position:absolute; top:100%; left:0; right:0; display:none; flex-direction:column; align-items:stretch; padding:20px; background:inherit; border-bottom:1px solid var(--line); }
  .main-header nav.open { display:flex; }
  .main-header nav a { padding:12px 0; }
  .concept-switcher { right:10px; bottom:10px; }
  .concept-switcher>span,.concept-switcher button b { display:none; }
  .hero { min-height:820px; align-items:end; padding-bottom:90px; }
  .hero-overlay { background:linear-gradient(0deg,rgba(246,245,240,.98) 0%,rgba(246,245,240,.78) 52%,rgba(246,245,240,.04) 85%); }
  .concept-cinematic .hero-overlay { background:linear-gradient(0deg,rgba(8,11,10,.97),rgba(8,11,10,.55) 58%,rgba(8,11,10,.05)); }
  .concept-precision .hero-overlay { background:linear-gradient(0deg,rgba(239,242,240,.98),rgba(239,242,240,.72) 58%,rgba(239,242,240,.03)); }
  .hero h1 { font-size:clamp(55px,16vw,90px); }
  .hero-lead { margin-top:34px; }
  .section-heading { display:block; }
  .section-heading>span { display:inline-block; margin-right:25px; }
  .section-heading>p { display:inline-block; }
  .section-heading h2 { margin-top:55px; }
  .intro-body,.service-list,.section-intro,.industry-grid,.reason-grid { margin-left:0; }
  .intro-body { grid-template-columns:1fr; margin-top:70px; gap:50px; }
  .service-list { margin-top:70px; }
  .service-list summary { grid-template-columns:38px 1fr 25px; gap:12px; }
  .service-list summary p { display:none; }
  .service-detail { grid-template-columns:1fr; padding:10px 0 45px 50px; gap:35px; }
  .industry-grid { grid-template-columns:1fr 1fr; }
  .image-section { grid-template-columns:1fr; }
  .image-panel { min-height:520px; }
  .reason-grid { grid-template-columns:1fr 1fr; }
  .careers { grid-template-columns:1fr; }
  .careers>div { grid-column:auto; }
  .contact { grid-template-columns:1fr; }
  .contact-intro,.contact form,.locations { grid-column:auto; }
  footer { grid-template-columns:1fr; }
  footer small { grid-column:auto; }
}
@media(max-width:520px){
  .hero { min-height:740px; }
  .section { padding-left:20px; padding-right:20px; }
  .industry-grid,.reason-grid { grid-template-columns:1fr; }
  .industry-grid article,.reason-grid article { min-height:250px; }
  .contact form { grid-template-columns:1fr; }
  .contact label:nth-child(3) { grid-column:auto; }
  .locations { grid-template-columns:1fr; }
  footer { padding-left:20px; padding-right:20px; }
}
@media(prefers-reduced-motion:reduce){ html{scroll-behavior:auto} *{transition:none!important;animation:none!important} }
