:root{
    --blue:#102a86;
    --blue-dark:#0b1c69;
    --red:#ef4b2f;
    --paper:#f7f5ef;
    --ink:#0d1b4d;
    --muted:#6b6f80;
    --line:#d9d7d0;
    --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--paper);color:var(--ink);line-height:1.5}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
.site-header{position:absolute;z-index:20;top:0;left:0;right:0;max-width:var(--max);margin:auto;padding:24px 32px;display:flex;align-items:center;justify-content:space-between;color:#fff}
.brand{font-size:13px;font-weight:800;letter-spacing:.16em}
.site-nav{display:flex;gap:22px;font-size:12px}
.site-nav a{opacity:.86}.site-nav a:hover{opacity:1}
.nav-toggle{display:none;background:transparent;border:1px solid rgba(255,255,255,.5);color:#fff;padding:8px 10px}
.section-blue{background:var(--blue);color:#fff}
.section-red{background:var(--red);color:#fff}
.section-white{background:var(--paper)}
.hero{min-height:620px;padding-top:110px;display:flex;flex-direction:column;justify-content:space-between}
.hero-inner{width:min(760px,calc(100% - 64px));margin:0 auto;padding:60px 0}
.eyebrow{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.eyebrow.red{color:var(--red)}
.hero h1{font-size:clamp(48px,7vw,92px);line-height:.94;letter-spacing:-.045em;margin:20px 0;max-width:900px}
.lead{font-size:18px;max-width:700px;color:rgba(255,255,255,.86)}
.text-link{display:inline-block;margin-top:20px;font-weight:700}
.hero-band{margin-left:auto;background:var(--red);display:grid;grid-template-columns:repeat(3,1fr);gap:1px;width:min(680px,88%);padding:24px 28px;font-size:12px}
.hero-band span{padding:8px 18px;border-left:1px solid rgba(255,255,255,.25)}
.editorial-section{position:relative;padding:100px 40px 110px}
.section-content{max-width:var(--max);margin:auto;padding-left:72px}
.section-content.narrow{max-width:980px}
.vertical-title{position:absolute;left:14px;top:50%;transform:translateY(-50%) rotate(-90deg);transform-origin:center;font-size:42px;letter-spacing:.05em;color:var(--red);font-weight:300}
.vertical-title.light{color:rgba(255,255,255,.8)}
h2{font-size:clamp(32px,4.5vw,62px);line-height:1.02;letter-spacing:-.035em;margin:12px 0 36px;max-width:850px}
.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;align-items:start}
.service-card,.rse-card{padding:20px;min-height:420px;border:1px solid var(--line);background:#fff}
.service-card.featured{background:var(--blue);color:#fff;border-color:var(--blue)}
.card-kicker{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--red)}
.service-card.featured .card-kicker{color:#fff}
.service-card h3,.rse-card h3{font-size:28px;line-height:1.05;margin:16px 0 14px}
.service-card p,.rse-card p{font-size:14px}
.image-placeholder{display:grid;place-items:center;min-height:150px;background:#fff;border:1px solid var(--line);color:#7b7b7b;font-size:12px;text-transform:uppercase;letter-spacing:.12em}
.image-placeholder.dark{background:var(--blue);border-color:var(--blue);color:#fff;min-height:230px}
.experience-grid{display:grid;grid-template-columns:1.15fr .9fr .9fr;grid-auto-rows:180px;gap:8px;max-width:880px}
.experience-grid .photo{min-height:unset;background:#f2eee7}
.experience-grid .photo:nth-child(1){grid-row:span 2}
.experience-grid .photo:nth-child(4){grid-column:span 2}
.decibels{background:
    radial-gradient(circle at 90% 40%,rgba(255,255,255,.08),transparent 25%),
    linear-gradient(135deg,var(--blue-dark),var(--blue))}
.decibels p{max-width:800px;color:rgba(255,255,255,.88)}
.rse-grid .rse-card{border:none;padding:0;background:transparent}
.rse-grid h3{color:var(--red)}
.forest-strip{background:var(--blue-dark);padding:0}
.image-placeholder.forest{min-height:420px;border:none;color:rgba(255,255,255,.7);background:
    linear-gradient(rgba(7,20,87,.4),rgba(7,20,87,.4)),
    repeating-linear-gradient(90deg,#132d82 0 4%,#0d246f 4% 8%)}
.team-list{display:grid;gap:36px}
.team-card{display:grid;grid-template-columns:minmax(260px,420px) 1fr;gap:50px;align-items:center}
.image-placeholder.portrait{min-height:480px;background:var(--blue);border-color:var(--blue);color:#fff}
.team-copy h3{font-size:34px;margin:10px 0}
.team-copy p{max-width:660px}
.contact-panel{margin-top:100px;padding-top:56px;border-top:1px solid rgba(255,255,255,.4);display:grid;grid-template-columns:.9fr 1.1fr;gap:60px}
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.contact-form label{display:grid;gap:7px;font-size:12px;font-weight:700;letter-spacing:.05em}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);color:#fff;padding:13px 14px;outline:none}
.contact-form select option{color:#111}
.contact-form .full{grid-column:1/-1}
.checkbox{grid-template-columns:auto 1fr!important;align-items:start;font-weight:400!important}
.checkbox input{width:auto}
.button{border:0;background:var(--blue);color:#fff;padding:15px 20px;cursor:pointer;font-weight:800}
.hp{position:absolute!important;left:-9999px!important}
.form-success,.form-error{padding:12px;background:rgba(255,255,255,.14)}
.site-footer{display:flex;justify-content:space-between;gap:40px;padding:44px max(30px,calc((100% - var(--max))/2));background:var(--blue);color:#fff}
.site-footer div:last-child{display:flex;gap:24px;align-items:flex-start}
@media (max-width:900px){
    .site-header{padding:20px}
    .nav-toggle{display:block}
    .site-nav{display:none;position:absolute;right:20px;top:64px;flex-direction:column;background:var(--blue-dark);padding:18px;min-width:190px}
    .site-nav.is-open{display:flex}
    .hero-inner{width:calc(100% - 40px)}
    .hero-band{width:100%;grid-template-columns:1fr}
    .hero-band span{border-left:0;border-top:1px solid rgba(255,255,255,.25)}
    .editorial-section{padding:80px 20px}
    .vertical-title{display:none}
    .section-content{padding-left:0}
    .cards-grid{grid-template-columns:1fr}
    .service-card,.rse-card{min-height:unset}
    .experience-grid{grid-template-columns:1fr 1fr;grid-auto-rows:150px}
    .experience-grid .photo:nth-child(1){grid-row:auto}
    .experience-grid .photo:nth-child(4){grid-column:auto}
    .team-card{grid-template-columns:1fr}
    .contact-panel{grid-template-columns:1fr}
}
@media (max-width:620px){
    .hero{min-height:560px}
    .hero-inner{padding-top:35px}
    .hero h1{font-size:48px}
    .hero-band{padding:14px 20px}
    .experience-grid{grid-template-columns:1fr}
    .contact-form{grid-template-columns:1fr}
    .site-footer{flex-direction:column}
    .site-footer div:last-child{flex-direction:column}
}
