@import url('https://fonts.googleapis.com/css2?family=Archivo:wdth,wght@125,400;125,500;125,600;125,700;125,800&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{--paper:#fbfbf8;--ink:#16181d;--orange:#ff4d00;--rust:#c23a00;--muted:#5c616b;--line:#d6d6cf;--soft:#ffede3;--light:#c9ccd2;--mono:'IBM Plex Mono',monospace}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 Archivo,Arial,sans-serif}
a{color:inherit;text-underline-offset:5px}
button,input,textarea,select{font:inherit}
a,button,input,select,textarea,summary{outline-offset:5px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--rust)}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-stretch:125%;font-weight:800;line-height:1.06;letter-spacing:-.04em}
h1{font-size:clamp(44px,5.4vw,78px)}
h2{font-size:clamp(32px,3.7vw,52px)}
p{max-width:65ch}
p+p{margin-top:18px}
.wrap{max-width:1320px;margin:auto;padding:0 56px}
.mono,.eyebrow,.section-label,.button,label,summary{font-family:var(--mono)}
.eyebrow,.section-label{font-size:12px;text-transform:uppercase;letter-spacing:.12em}
.eyebrow{color:var(--rust);margin-bottom:26px}
.section-label{display:flex;gap:25px;border-top:1px solid var(--orange);padding-top:16px;margin-bottom:32px}
.section-label span{color:var(--rust)}
.skip{position:absolute;left:20px;top:-80px;padding:12px;background:var(--paper);z-index:10}
.skip:focus{top:10px}
header{border-bottom:1px solid var(--orange);background:var(--paper)}
.nav{min-height:100px;display:flex;align-items:center;gap:32px}
.wordmark{font-size:34px;font-weight:800;letter-spacing:-2px;text-decoration:none;line-height:1;white-space:nowrap}
.wordmark:after{content:'';display:inline-block;width:11px;height:11px;background:var(--orange);margin-left:8px}
.nav nav{display:flex;gap:28px;margin-left:auto;align-items:center;font:12px var(--mono);text-transform:uppercase;letter-spacing:.06em}
.nav nav>a{text-decoration:none}
.nav details{position:relative}
.nav summary{cursor:pointer;font-size:12px;padding:12px 0}
.dropdown{position:absolute;z-index:4;top:44px;right:0;min-width:220px;background:var(--paper);border:1px solid var(--ink);padding:10px}
.dropdown a{display:block;padding:10px;text-decoration:none}
.dropdown a:hover,.dropdown a:focus-visible{background:var(--soft)}
.button{display:inline-flex;justify-content:center;align-items:center;gap:22px;min-height:48px;padding:13px 20px;text-transform:uppercase;font-size:12px;letter-spacing:.045em;border:1px solid var(--ink);background:transparent;color:var(--ink);text-decoration:none;cursor:pointer}
.button.primary{background:var(--orange);border-color:var(--orange)}
.button:hover{background:var(--ink);color:var(--paper)}
.button.primary:hover{background:var(--rust);border-color:var(--rust);color:white}
.button:disabled{opacity:.6;cursor:wait}
.button,.card>a,.dropdown a{transition:color 180ms ease,background-color 180ms ease,border-color 180ms ease}
.button span,.card>a span{display:inline-block;transition:transform 180ms ease}
.button:is(:hover,:focus-visible) span,.card>a:is(:hover,:focus-visible) span{transform:translateX(4px)}

.hero{padding:64px 0;background-image:linear-gradient(#eceee780 1px,transparent 1px),linear-gradient(90deg,#eceee780 1px,transparent 1px);background-size:24px 24px}
.hero-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.4fr);gap:48px;align-items:center}
.hero-copy{min-width:0}
.hero h1 em{font-style:normal;color:var(--rust)}
.hero .lead{font-size:19px;line-height:1.65}
.hero-bottom{display:flex;justify-content:space-between;align-items:center;gap:48px;margin-top:38px}
.hero-bottom .lead{max-width:720px}
.hero-bottom .button{flex-shrink:0}
.home-hero{padding:40px 0}
.compact-hero{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:26px 40px;align-items:center}
.compact-hero .hero-copy{grid-column:1;grid-row:1}
.compact-hero .hero-bottom{grid-column:1;grid-row:2;margin:0;flex-direction:column;align-items:flex-start;gap:22px}
.compact-hero>.graphic-panel{grid-column:2;grid-row:1 / 3}
.home-hero h1{font-size:clamp(42px,4.7vw,68px)}
.section-heading{margin-bottom:32px}
.card .service-label{font:12px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--rust);margin:0 0 12px}
.card h3{font-size:30px;margin-bottom:18px}
.partners{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:40px;border-top:1px solid #454850;padding-top:32px}
.partner{min-width:0;display:flex;gap:18px;align-items:flex-start}
.partner img{width:88px;height:88px;object-fit:cover;flex-shrink:0}
.partner h3{font-size:21px;line-height:1.2;letter-spacing:-.02em}
.partner p{color:var(--light);font-size:13px;margin:8px 0}
.partner a{font:12px var(--mono);text-transform:uppercase}
.dark-band a:focus-visible{outline-color:#ff9060}
.graphic-panel{position:relative;aspect-ratio:1;background-color:var(--ink);color:var(--paper);border-top:3px solid var(--orange);display:flex;align-items:center;justify-content:center;background-image:linear-gradient(#ffffff0d 1px,transparent 1px),linear-gradient(90deg,#ffffff0d 1px,transparent 1px);background-size:24px 24px}
.motif{display:block;width:100%;height:auto}
.graphic-panel .motif{width:78%}
.graphic-number{position:absolute;top:13px;left:17px;font-size:42px;font-weight:800;line-height:1;letter-spacing:-.06em;color:#777b85}
.service-hero{padding:36px 0 56px}
.breadcrumb{font:12px var(--mono);text-transform:uppercase;margin-bottom:40px}
.service-hero .hero-layout{grid-template-columns:minmax(0,1fr) minmax(220px,.36fr)}
.service-hero h1{font-size:clamp(42px,4.5vw,64px);max-width:860px}
.service-hero .lead{max-width:710px;margin:26px 0 30px}
.service-hero .graphic-panel{align-self:center}
.service-hero .graphic-panel .motif{width:66%;margin-top:30px}

section.content{padding:64px 0}
.cards{display:grid;gap:0;border:1px solid var(--ink)}
.service-grid,.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.card{padding:32px;display:flex;flex-direction:column;border-right:1px solid var(--ink);min-width:0}
.card:last-child{border-right:0}
.service-grid .card:nth-child(2n){border-right:0}
.service-grid .card:nth-child(-n+2){border-bottom:1px solid var(--ink)}
.card-identity{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}
.card-number{font-size:64px;font-weight:800;line-height:1;letter-spacing:-.06em;color:#747982}
.card-identity .motif{width:80px;height:80px}
.card h2{font-size:30px;margin-bottom:18px;letter-spacing:-.035em}
.card p{font-size:16px;color:var(--muted)}
.card>a{align-self:flex-start;margin-top:auto;padding-top:28px;font:12px var(--mono);text-transform:uppercase}
.card>a:hover{color:var(--rust)}
.service-options .cards{border-top:0}
.service-options .card{border-top:3px solid var(--orange)}
.service-options .card-number{font-size:52px;margin-bottom:28px}
.service-options .card h2{font-size:27px;min-height:2.16em}
.card .example{font-size:14px;border-top:1px solid var(--line);padding-top:18px;margin-top:24px}

.dark-band{background:var(--ink);color:var(--paper)}
.dark-band .section-label span{color:#ff9060}
.dark-band .section-label{border-color:var(--orange)}
.about-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:70px}
.about-grid h2{max-width:480px}
.about-grid p{color:var(--light)}
.about-grid .team-scale{color:var(--paper);font-size:clamp(22px,2vw,28px);font-weight:700;line-height:1.3}
.about-grid .certification{border-left:3px solid var(--orange);padding-left:22px;margin:28px 0;color:var(--paper)}
.compact-deliverables ul{list-style:none;margin:0;padding:0;max-width:960px}
.compact-deliverables li{display:flex;gap:24px;align-items:baseline;font-size:clamp(18px,1.7vw,24px);line-height:1.5;padding:22px 0;border-bottom:1px solid #454850}
.compact-deliverables li:first-child{padding-top:0}
.compact-deliverables li:before{content:'';width:9px;height:9px;flex:0 0 9px;background:var(--orange)}
.service-note{color:var(--light);margin-top:28px;max-width:850px}
.faq-block{padding-top:30px;padding-bottom:30px}
.faq{padding:20px 0}
.faq summary{font-size:14px;cursor:pointer;padding-right:8px}
.faq p{margin-top:18px;color:var(--muted);max-width:850px}
.faq summary:hover{color:var(--rust)}

.contact{padding:64px 0;background:var(--orange)}
.contact-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:70px;align-items:start}
.contact h2{font-size:clamp(48px,5vw,72px);margin-bottom:28px}
.contact a{font-weight:600}
.contact> .wrap>div>p{max-width:390px}
.contact a:focus-visible,.service-contact a:focus-visible{outline-color:var(--ink)}
.form{padding:30px;background:var(--paper);border:1px solid var(--ink)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
label{display:block;font-size:12px;letter-spacing:.05em;text-transform:uppercase;margin-bottom:7px}
input,select,textarea{width:100%;min-width:0;border:1px solid var(--ink);border-radius:0;background:white;color:var(--ink);padding:12px;font-size:16px}
textarea{resize:vertical;min-height:110px}
.field{margin-bottom:18px}
.form .button{width:100%}
.form .privacy{font-size:12px;color:var(--muted);margin:15px 0}
.form [role=status]{font-size:14px;margin-top:16px}
.trap{position:absolute;left:-10000px}
.service-contact{padding:46px 0;background:var(--orange)}
.service-contact .wrap{display:flex;align-items:center;justify-content:space-between;gap:48px}
.service-contact h2{font-size:clamp(30px,3vw,42px);margin-bottom:18px}
.service-contact p{max-width:670px;font-size:16px}
.service-contact .button{flex-shrink:0;background:var(--ink);color:var(--paper);border-color:var(--ink)}
.service-contact .button:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}
footer{padding:35px 0}
.footer-row{display:flex;align-items:center;justify-content:space-between;gap:25px}
footer .mono{font-size:12px;text-transform:uppercase;color:var(--muted)}

@media(max-width:1100px){
 .wrap{padding-left:32px;padding-right:32px}
 .nav{gap:24px}.nav nav{gap:22px}.nav>.button{display:none}
 .hero-layout{grid-template-columns:minmax(0,1fr) 220px;gap:32px}
 h1{font-size:clamp(44px,5.4vw,64px)}
 .hero-bottom{gap:30px}.hero-bottom .lead{max-width:520px}
 .service-hero .hero-layout{grid-template-columns:minmax(0,1fr) 210px;gap:32px}
 .service-hero h1{font-size:46px}
 .card{padding:26px}.card h2{font-size:28px}
 .service-options .card h2{font-size:23px}
 .about-grid{gap:40px}.contact-grid{gap:36px}
 .service-contact .wrap{gap:32px}
}
@media(max-width:900px){
 .compact-hero{grid-template-columns:minmax(0,1fr) 180px;gap:24px}
 .partners{gap:24px}.partner{flex-direction:column}
 .three{grid-template-columns:1fr}
 .three .card{border-right:0;border-bottom:1px solid var(--ink)}
 .three .card:last-child{border-bottom:0}
 .service-options .card h2{min-height:0}
 .hero-bottom{align-items:flex-start;flex-direction:column;gap:24px;margin-top:30px}
 .about-grid{grid-template-columns:1fr 1.2fr}
 .about-grid h2{font-size:36px}
 .contact-grid{grid-template-columns:1fr;gap:32px}
 .form-grid{grid-template-columns:1fr;gap:0}
 .service-contact .wrap{align-items:flex-start;flex-direction:column;gap:24px}
}
@media(max-width:700px){
 .compact-hero{display:flex;flex-direction:column;align-items:stretch;gap:26px}
 .home-hero h1{font-size:clamp(36px,9.5vw,60px)}
 .partners{grid-template-columns:1fr;gap:24px}.partner{flex-direction:row}
 .partner img{width:80px;height:80px}
 .wrap{padding-left:20px;padding-right:20px}
 .nav{min-height:78px;gap:18px}.wordmark{font-size:29px}
 .nav nav{gap:18px}.nav nav>a[href='/#about']{display:none}
 .dropdown{right:-45px}
 .hero,.service-hero{padding:32px 0}
 .hero-layout,.service-hero .hero-layout{grid-template-columns:minmax(0,1fr);gap:24px}
 h1{font-size:clamp(40px,10.8vw,64px)}
 .service-hero h1{font-size:40px}
 .hero .lead{font-size:17px}
 .eyebrow{margin-bottom:22px}
 .graphic-panel{aspect-ratio:auto;width:100%;height:112px;justify-content:flex-end;padding-right:22px}
 .graphic-panel .motif,.service-hero .graphic-panel .motif{width:102px;height:102px;margin:0}
 .graphic-number{font-size:64px;top:22px;left:22px}
 .hero-bottom{margin-top:26px}
 .service-hero .lead{margin:22px 0 26px}
 .breadcrumb{margin-bottom:28px}
 section.content{padding:44px 0}
 .section-label{margin-bottom:28px}
 .service-grid,.two{grid-template-columns:1fr}
 .card,.service-grid .card:nth-child(2n){border-right:0;border-bottom:1px solid var(--ink)}
 .card:last-child{border-bottom:0}
 .card{padding:26px}
 .card-number{font-size:56px}
 .card-identity{margin-bottom:24px}
 .card-identity .motif{width:64px;height:64px}
 .card h2{font-size:28px}
 .service-options .card h2{font-size:26px}
 .service-options .card-number{font-size:44px;margin-bottom:22px}
 .about-grid,.contact-grid{grid-template-columns:1fr;gap:32px}
 .about-grid h2{font-size:38px}
 .compact-deliverables li{gap:18px;font-size:19px;padding:20px 0}
 .contact{padding:44px 0}.contact h2{font-size:54px}
 .form{padding:22px}
 .service-contact{padding:38px 0}
 .footer-row{align-items:flex-start;flex-direction:column}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*:before,*:after{transition:none!important;animation:none!important}
 .button:is(:hover,:focus-visible) span,.card>a:is(:hover,:focus-visible) span{transform:none}
}

/* Legal navigation follows the green marker at the right of the footer. */
.footer-row{flex-wrap:wrap}
.footer-legal{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px 20px;margin-left:auto;font-size:12px}
.footer-light{width:8px;height:8px;border-radius:50%;background:#23864b;flex-shrink:0}
.legal-page{max-width:920px;padding-top:80px;padding-bottom:80px}
.legal-page h1{font-size:clamp(38px,5vw,64px);overflow-wrap:break-word}
.legal-date{margin-top:24px;color:var(--muted);font-family:var(--mono);font-size:12px}
.legal-page section{margin-top:36px}
.legal-page h2{font-size:24px;line-height:1.25;letter-spacing:-.025em;margin-bottom:14px}
.legal-page p{max-width:none}
.legal-back{display:inline-block;margin-top:40px}
@media(max-width:700px){.footer-legal{margin-left:0;justify-content:flex-start}.legal-page{padding-top:48px;padding-bottom:48px}}
