/* ─────────────────────────────────────────────────────────────
   Solomon design refresh (preview) — loads after site.css
   1. Typeface: Fraunces for headlines, Inter for body
   2. Bracket motif from the logo mark
   3. Photography: black-and-white house style
   4. Rhythm: break the dark/light zebra
   5. Sticky mobile CTA
   6. Exhibit lightbox
   7. Contrast lift on dark sections
   8. Nav at tablet widths
   ───────────────────────────────────────────────────────────── */

/* 1 ── Typeface ─────────────────────────────────────────────── */
@font-face{font-family:'Fraunces';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/fraunces-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/fraunces-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:600;font-display:swap;src:url(/assets/fonts/fraunces-latin-600-italic.woff2) format('woff2')}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/fraunces-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/inter-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/inter-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/inter-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/inter-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/inter-latin-800-normal.woff2) format('woff2')}

:root{--font-body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;--font-display:'Fraunces',Georgia,'Times New Roman',serif}
body{font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,.page-hero h1,.hero h1,.cta-banner h2,.engagement-card h3,.ar-page h1,.ar-page .ar-hero h1{font-family:var(--font-display);font-weight:600;letter-spacing:-0.015em;font-variation-settings:'opsz' 144}
h1{line-height:1.08}
h2{line-height:1.15;font-weight:600}
.hero h1 span,.page-hero h1 span{font-style:italic;font-weight:600}
h3,h4,.btn,.nav-link,.tag,.section-tag,.nav-logo-name{font-family:var(--font-body)}
.nav-logo-name{font-weight:800}
.faq-question,.faq-item h3,.faq-item button{font-family:var(--font-body)}
/* Keep the logo wordmark and small UI in the sans; display face is for headlines only */

/* 2 ── Bracket motif ────────────────────────────────────────── */
/* section tags get a single opening bracket, echoing the mark */
.tag,.section-tag{position:relative;padding-left:16px}
.tag::before,.section-tag::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:8px;height:12px;border:2px solid var(--gold);border-right:0}
.hero-eyebrow-line{width:8px;height:12px;border:2px solid var(--gold);border-right:0;background:transparent}

/* exhibits framed by four corner brackets */
.exhibit{position:relative;padding:18px}
.exhibit::before,.exhibit::after,.exhibit figcaption::before,.exhibit figcaption::after{content:'';position:absolute;width:26px;height:26px;border:3px solid var(--gold);pointer-events:none}
.exhibit::before{top:0;left:0;border-right:0;border-bottom:0}
.exhibit::after{top:0;right:0;border-left:0;border-bottom:0}
.exhibit figcaption{position:static}
.exhibit figcaption::before{bottom:0;left:0;border-right:0;border-top:0}
.exhibit figcaption::after{bottom:0;right:0;border-left:0;border-top:0}
.exhibit img{border-radius:6px}
.exhibit a{display:block;cursor:zoom-in}

/* cards: bracket corners appear on hover instead of the lift */
.service-card,.process-card,.engagement-card:not(.featured){position:relative}
.service-card::after,.process-card::after{content:'';position:absolute;inset:10px;border:2px solid var(--gold);border-radius:4px;opacity:0;transition:opacity .2s;pointer-events:none;
  -webkit-mask:linear-gradient(#000 0 0) top left/22px 22px no-repeat,linear-gradient(#000 0 0) top right/22px 22px no-repeat,linear-gradient(#000 0 0) bottom left/22px 22px no-repeat,linear-gradient(#000 0 0) bottom right/22px 22px no-repeat;
          mask:linear-gradient(#000 0 0) top left/22px 22px no-repeat,linear-gradient(#000 0 0) top right/22px 22px no-repeat,linear-gradient(#000 0 0) bottom left/22px 22px no-repeat,linear-gradient(#000 0 0) bottom right/22px 22px no-repeat}
.service-card:hover::after,.process-card:hover::after{opacity:1}
.service-card:hover{transform:none;box-shadow:0 8px 30px rgba(0,0,0,.06)}
.service-card::before{display:none}
.process-card:hover{border-color:rgba(255,255,255,.1)}

/* 3 ── Photography ──────────────────────────────────────────── */
img.photo,.photo img,.about-img-main img,.founder-img img,.founders-grid img{filter:grayscale(1) contrast(1.05)}
.photo-band{position:relative;min-height:340px;background-size:cover;background-position:center;filter:grayscale(1)}
.photo-band::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,14,31,.2),rgba(5,14,31,.75))}

/* 4 ── Rhythm ───────────────────────────────────────────────── */
/* quiet section: no card, no band, generous space, left-aligned heading with a rule */
.section--quiet{background:var(--white);padding:96px 0}
.section--quiet .section-head{text-align:left;max-width:720px;margin:0}
.section--quiet h2{font-size:clamp(1.9rem,3.6vw,2.9rem)}
.section--quiet .rule{width:64px;height:3px;background:var(--gold);margin:22px 0 28px}
/* split section: heading left, content right */
.section--split .container{display:grid;grid-template-columns:5fr 7fr;gap:64px;align-items:start}
.section--split .section-head{text-align:left;margin:0;position:sticky;top:96px}
@media(max-width:960px){.section--split .container{grid-template-columns:1fr;gap:32px}.section--split .section-head{position:static}}
/* full-bleed exhibit band */
.section--bleed{padding:0}
.section--bleed .exhibit{max-width:none;margin:0;padding:0;border-radius:0}
.section--bleed .exhibit::before,.section--bleed .exhibit::after,.section--bleed .exhibit figcaption::before,.section--bleed .exhibit figcaption::after{display:none}
.section--bleed .exhibit img{border-radius:0;box-shadow:none}
.section--bleed .exhibit figcaption{padding:18px 24px 28px}

/* 7 ── Contrast ─────────────────────────────────────────────── */
.section--dark p,.section--dark li,.hero p,.page-hero p,.cta-banner p{color:rgba(255,255,255,.84)}
.process-card p{color:rgba(255,255,255,.74)}
.engagement-card.featured p,.engagement-card.featured .engagement-features li{color:rgba(255,255,255,.84)}
.exhibit figcaption{opacity:1;color:rgba(255,255,255,.78)}
.hero-stats .hero-stat-label,.proof-lbl{color:rgba(255,255,255,.72)}
.hero-proof{color:rgba(255,255,255,.78)}
.footer,.footer p,.footer a,.footer li{color:rgba(255,255,255,.8)}
[style*="rgba(255,255,255,0.7)"]{color:rgba(255,255,255,.84)!important}
[style*="rgba(255,255,255,0.6)"]{color:rgba(255,255,255,.78)!important}
[style*="rgba(255,255,255,0.5)"]{color:rgba(255,255,255,.72)!important}

/* 8 ── Nav at tablet widths ─────────────────────────────────── */
.nav-more{display:none}
@media(max-width:1180px){.nav-links{gap:22px}.nav-link{font-size:.86rem}.nav-cta{padding:11px 18px;font-size:.86rem}}
@media(max-width:1060px) and (min-width:961px){
  .nav-links{gap:18px}
  .nav-link[href="/our-approach"],.nav-link[href="/case-studies"]{display:none}
  .nav-more{display:inline-flex}
}
.nav-more .nav-menu{min-width:220px}

/* 5 ── Sticky mobile CTA ────────────────────────────────────── */
.sticky-cta{display:none}
@media(max-width:960px){
  .sticky-cta{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:300;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(5,14,31,.96);backdrop-filter:blur(8px);border-top:1px solid rgba(255,255,255,.12);gap:10px;align-items:center;transform:translateY(100%);transition:transform .25s}
  .sticky-cta.show{transform:translateY(0)}
  .sticky-cta .btn{flex:1;justify-content:center;padding:13px 16px;font-size:.92rem}
  .sticky-cta .btn-outline{flex:0 0 auto;color:#fff;border-color:rgba(255,255,255,.35)}
  body.has-sticky-cta{padding-bottom:72px}
}

/* 6 ── Lightbox ─────────────────────────────────────────────── */
.lb{position:fixed;inset:0;z-index:1000;background:rgba(5,14,31,.94);display:none;align-items:center;justify-content:center;padding:28px;cursor:zoom-out}
.lb.open{display:flex}
.lb img{max-width:min(1400px,96vw);max-height:84vh;width:auto;height:auto;border-radius:8px;box-shadow:0 40px 80px -20px rgba(0,0,0,.7);cursor:default}
.lb .lb-cap{position:absolute;left:0;right:0;bottom:22px;text-align:center;color:rgba(255,255,255,.84);font-size:.9rem;padding:0 24px}
.lb .lb-close{position:absolute;top:18px;right:22px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;font-size:22px;line-height:1;cursor:pointer}
.lb .lb-tag{position:absolute;top:26px;left:28px;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
img[src="/bill-sullivan.jpeg"],img[src="/joe-marr.jpeg"]{filter:grayscale(1) contrast(1.05)}
