/* Bennett Search Group — production stylesheet (direction 1c) */
:root{--ink:oklch(0.18 0.01 40);--ink-2:oklch(0.30 0.01 40);--ink-3:oklch(0.36 0.01 40);--ink-4:oklch(0.48 0.01 40);--paper:oklch(0.99 0.003 85);--paper-dim:oklch(0.82 0.006 85);--paper-mute:oklch(0.65 0.006 85);--rule:oklch(0.18 0.01 40 / 0.12);--accent:oklch(0.42 0.14 25);--serif:'Source Serif 4',Georgia,'Times New Roman',serif;--sans:'IBM Plex Sans','Helvetica Neue',Helvetica,Arial,sans-serif;--mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;--gutter:clamp(20px,4.4vw,56px)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:hover{opacity:.72}
h1,h2,h3{font-family:var(--serif);font-weight:300;letter-spacing:-.02em;margin:0;text-wrap:balance}
p{margin:0;text-wrap:pretty}
.wrap{padding-left:var(--gutter);padding-right:var(--gutter)}
.eyebrow{font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.eyebrow.mute{color:var(--ink-4)}
.rule-b{border-bottom:1px solid var(--rule)}
.rule-t{border-top:1px solid var(--rule)}

/* nav */
.nav{display:flex;justify-content:space-between;align-items:center;padding-top:22px;padding-bottom:22px;border-bottom:1px solid var(--rule)}
.nav .brand{font-family:var(--serif);font-size:20px;font-weight:500;letter-spacing:0}
.nav ul{display:flex;gap:28px;list-style:none;margin:0;padding:0;font-size:14.5px;color:var(--ink-3)}
.nav ul a[aria-current]{color:var(--ink);border-bottom:1px solid var(--ink)}
.nav ul .cta{color:var(--accent);font-weight:500}
.nav .menu{display:none;background:none;border:0;padding:12px 0;cursor:pointer;width:22px;flex-direction:column;gap:5px}
.nav .menu span{display:block;height:1px;background:var(--ink)}
@media (max-width:820px){
  .nav ul{display:none;position:absolute;left:0;right:0;top:64px;background:var(--paper);flex-direction:column;gap:0;padding:8px 0 16px;border-bottom:1px solid var(--rule);z-index:10}
  .nav ul li a{display:block;padding:14px var(--gutter);font-size:17px}
  .nav ul a[aria-current]{border:0;font-weight:500}
  .nav.open ul{display:flex}
  .nav .menu{display:flex}
  header.site{position:relative}
}

/* two-lane hero */
.lanes{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--rule)}
.lanes>div{padding:clamp(44px,7vw,96px) var(--gutter) clamp(36px,5vw,72px)}
.lanes>div:first-child{border-right:1px solid var(--rule)}
.lanes .eyebrow{display:block;margin-bottom:clamp(18px,2vw,28px)}
.lanes h1{font-size:clamp(38px,4.8vw,62px);line-height:1.04}
@media (max-width:820px){.lanes{grid-template-columns:1fr}.lanes>div:first-child{border-right:0;border-bottom:1px solid var(--rule)}}

/* single header */
.head{padding-top:clamp(44px,7vw,88px);padding-bottom:clamp(36px,5vw,64px);border-bottom:1px solid var(--rule);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:end}
.head h1{font-size:clamp(38px,4.8vw,62px);line-height:1.04}
.head p{font-size:18px;color:var(--ink-2)}
.head.top{align-items:start}
@media (max-width:820px){.head{grid-template-columns:1fr;gap:24px}.head p{font-size:16.5px}}

/* intro + button row */
.intro{padding-top:clamp(32px,4vw,56px);padding-bottom:clamp(40px,5vw,72px);display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:80px;align-items:start;border-bottom:1px solid var(--rule)}
.intro p{font-size:18px;color:var(--ink-2);max-width:64ch}
@media (max-width:820px){.intro{grid-template-columns:1fr;gap:24px}.intro p{font-size:16.5px}}

.btn{display:inline-flex;justify-content:space-between;align-items:center;gap:12px;font-size:15.5px;font-weight:500;padding:16px 20px;background:var(--accent);color:var(--paper)}
.btn.block{display:flex}
.btn.light{background:var(--paper);color:var(--ink)}
@media (max-width:820px){.btn{display:flex}}

/* proof strip */
.proof{display:grid;grid-template-columns:1.4fr 1fr 1fr;border-bottom:1px solid var(--rule)}
.proof>div{padding:40px var(--gutter)}
.proof>div+div{border-left:1px solid var(--rule)}
.proof .n{font-family:var(--serif);font-weight:300;letter-spacing:-.03em;line-height:1;font-size:60px;padding-top:20px}
.proof .n.lead{font-size:clamp(88px,9.6vw,128px);line-height:.85;letter-spacing:-.035em;color:var(--accent);padding-top:0}
.proof p{font-size:15px;color:var(--ink-3);margin-top:18px;max-width:34ch}
@media (max-width:820px){
  .proof{grid-template-columns:1fr 1fr}
  .proof>div:first-child{grid-column:1/-1;border-bottom:1px solid var(--rule)}
  .proof>div:nth-child(3){border-left:1px solid var(--rule)}
  .proof>div:nth-child(2){border-left:0}
  .proof .n{font-size:44px;padding-top:0}.proof .n.lead{font-size:104px}
  .proof p{font-size:14px;margin-top:12px}
}
.footnote{font-family:var(--mono);font-size:11.5px;line-height:1.6;color:var(--ink-4);margin-top:16px;max-width:110ch}

/* thesis / two-col text */
.two{padding-top:clamp(56px,8vw,112px);padding-bottom:clamp(48px,7vw,96px);display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.two h2{font-size:clamp(30px,3.4vw,44px);line-height:1.1}
.two p{font-size:18px;color:var(--ink-2)}
.two .more{margin-top:28px;font-size:16px}
.two .more a{color:var(--accent);font-weight:500}
@media (max-width:820px){.two{grid-template-columns:1fr;gap:24px}.two p{font-size:16.5px}}

/* prose blocks */
.prose{max-width:66ch;display:flex;flex-direction:column;gap:18px}
.prose p{font-size:17px;color:var(--ink-2)}
.prose strong{font-weight:500;color:var(--ink)}

/* quote */
.quote{margin-left:var(--gutter);margin-right:var(--gutter);padding:clamp(48px,5.6vw,72px) 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:end}
.quote blockquote{margin:0;font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(24px,2.4vw,30px);line-height:1.35}
.quote cite{font-style:normal;font-size:14.5px;line-height:1.55;color:var(--ink-4);max-width:48ch;display:block}
@media (max-width:820px){.quote{grid-template-columns:1fr;gap:20px}}

/* close */
.close{background:var(--ink);color:var(--paper);padding-top:clamp(64px,8vw,104px);padding-bottom:clamp(56px,8vw,104px);display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.close h2{font-size:clamp(34px,3.4vw,44px);line-height:1.1}
.close .col{display:flex;flex-direction:column;gap:28px;align-items:flex-start}
.close p{font-size:18px;color:var(--paper-dim);max-width:56ch}
@media (max-width:820px){.close{grid-template-columns:1fr;gap:24px}.close p{font-size:16.5px}.close .col{align-items:stretch}}

footer.site{background:var(--ink);color:var(--paper-mute);padding-bottom:32px;display:flex;justify-content:space-between;gap:16px;font-size:13px}
footer.site nav{display:flex;gap:24px}
@media (max-width:820px){footer.site{flex-direction:column;gap:10px;font-size:12.5px}}

/* columns (expertise / markets / approach) */
.cols{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--rule)}
.cols>div{padding:clamp(48px,5.6vw,72px) var(--gutter);display:flex;flex-direction:column;gap:28px}
.cols>div+div{border-left:1px solid var(--rule)}
.cols h2{font-size:clamp(30px,3.3vw,42px);line-height:1.08}
.cols p{font-size:17px;color:var(--ink-2)}
.cols .proof-note{border-top:1px solid var(--rule);padding-top:24px}
.cols .proof-note p{font-size:15.5px;color:var(--ink-3);margin-top:14px}
@media (max-width:820px){.cols{grid-template-columns:1fr}.cols>div+div{border-left:0;border-top:1px solid var(--rule)}}

.grid4{padding-top:clamp(56px,7.5vw,96px);padding-bottom:clamp(56px,7.5vw,96px);border-bottom:1px solid var(--rule)}
.grid4 h2{font-size:clamp(30px,3.4vw,44px);line-height:1.1;margin-bottom:clamp(28px,4vw,48px)}
.grid4 .items{display:grid;grid-template-columns:repeat(4,1fr);gap:40px}
.grid4 .items>div{border-top:1px solid var(--ink);padding-top:20px}
.grid4 .items h3{font-size:24px;letter-spacing:0;margin-bottom:10px}
.grid4 .items p{font-size:15.5px;color:var(--ink-3)}
@media (max-width:1000px){.grid4 .items{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.grid4 .items{grid-template-columns:1fr;gap:28px}}

/* stacked sections */
.sec{padding-top:clamp(56px,7.5vw,96px);padding-bottom:clamp(56px,7.5vw,96px);border-bottom:1px solid var(--rule);display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:48px;align-items:start}
.sec h2{font-size:clamp(30px,3.4vw,44px);line-height:1.1}
.sec h3{font-family:var(--serif);font-size:24px;letter-spacing:0;margin-bottom:8px}
.sec .list{display:flex;flex-direction:column;gap:28px}
.sec .list>div{border-top:1px solid var(--rule);padding-top:20px}
.sec .list>div:first-child{border-top:0;padding-top:0}
.sec .sponsors{font-size:15px;color:var(--ink-3);line-height:1.8}
.sec .small{font-size:13.5px;color:var(--ink-4)}
@media (max-width:820px){.sec{grid-template-columns:1fr;gap:24px}}

/* mandates */
.cards{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--rule)}
.cards>a{padding:clamp(36px,4vw,48px) var(--gutter);display:flex;flex-direction:column;gap:14px;border-bottom:1px solid var(--rule)}
.cards>a:nth-child(odd){border-right:1px solid var(--rule)}
.cards>a:hover{opacity:1;background:oklch(0.97 0.004 85)}
.cards h2{font-size:clamp(22px,2vw,26px);line-height:1.2;letter-spacing:-.01em}
.cards p{font-size:15.5px;color:var(--ink-3)}
.cards .read{color:var(--accent);font-weight:500;font-size:14.5px;margin-top:auto;padding-top:6px}
@media (max-width:820px){.cards{grid-template-columns:1fr}.cards>a:nth-child(odd){border-right:0}}
.detail{padding-top:clamp(48px,6vw,80px);padding-bottom:clamp(56px,7.5vw,96px);border-bottom:1px solid var(--rule);display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:48px}
.detail .situation{font-size:16px;color:var(--ink-3);line-height:1.6}
.detail .glance{grid-column:1;display:flex;flex-direction:column;gap:0;margin-top:0;border-top:1px solid var(--rule)}
.detail .body{grid-column:2;grid-row:1}
@media (max-width:820px){.detail .glance,.detail .body{grid-column:1;grid-row:auto}}
.detail .glance>div{display:grid;grid-template-columns:88px minmax(0,1fr);gap:16px;padding:12px 0;border-bottom:1px solid var(--rule);font-size:14.5px;line-height:1.5}
.detail .glance dt{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4);padding-top:3px}
.detail .glance dd{color:var(--ink-2)}
.count{display:flex;flex-direction:column;gap:14px;max-width:66ch}
.count p{font-size:15px;color:var(--ink-3);line-height:1.6}
.count strong{font-weight:500;color:var(--ink)}
.intro .scope{font-family:var(--mono);font-size:12.5px;letter-spacing:.02em;color:var(--ink-4);margin-top:18px}
.detail .body p{font-size:18px;color:var(--ink-2)}
.detail .body{display:flex;flex-direction:column;gap:20px}
@media (max-width:820px){.detail{grid-template-columns:1fr;gap:20px}.detail .body p{font-size:16.5px}}
.pager{padding-top:28px;padding-bottom:28px;display:flex;justify-content:space-between;gap:24px;font-size:14.5px;color:var(--ink-3);border-bottom:1px solid var(--rule)}
.pager a{color:var(--accent);font-weight:500}

/* form */
.form{padding-top:clamp(40px,5vw,64px);padding-bottom:clamp(56px,7.5vw,96px);border-bottom:1px solid var(--rule);display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:48px}
.form form{display:flex;flex-direction:column;gap:22px;max-width:640px}
.form label{display:flex;flex-direction:column;gap:8px;font-size:14.5px;color:var(--ink-3)}
.form input,.form textarea,.form select{font:inherit;font-size:16.5px;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--ink);padding:10px 0;border-radius:0;outline:0}
.form textarea{min-height:88px;resize:vertical}
.form input:focus,.form textarea:focus,.form select:focus{border-bottom-color:var(--accent)}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.form button{align-self:flex-start;font:inherit;border:0;cursor:pointer;min-height:48px}
.form .aside{font-size:16px;color:var(--ink-3);display:flex;flex-direction:column;gap:12px}
@media (max-width:820px){.form{grid-template-columns:1fr;gap:28px}.form .row{grid-template-columns:1fr}.form button{align-self:stretch}}
.thanks{padding:clamp(64px,10vw,140px) var(--gutter);border-bottom:1px solid var(--rule)}
.thanks h1{font-size:clamp(34px,4vw,52px)}
.thanks p{font-size:18px;color:var(--ink-2);margin-top:20px;max-width:56ch}

@media print{.nav ul,.nav .menu{display:none}.close,footer.site{background:none;color:var(--ink)}}
