/* ============================================================
   bm-sections.css — content sections
   ============================================================ */
.section{padding-block:var(--section-y);position:relative}
.section--alt{background:var(--bg-soft)}
.section__head{margin-bottom:clamp(48px,8vh,110px)}
.section__idx{display:block;margin-bottom:20px}
.section__title{font-size:var(--fs-h2);max-width:18ch}

/* ---------- work ---------- */
.worklist{border-top:1px solid var(--hair)}
.workrow{display:grid;grid-template-columns:60px 1fr auto;gap:var(--gap);align-items:start;
  padding-block:clamp(28px,5vh,56px);border-bottom:1px solid var(--hair);transition:background .4s var(--ease)}
.workrow:hover{background:rgba(255,255,255,.02)}
.workrow__no{padding-top:8px;color:var(--fg-mute)}
.workrow__title{font-size:var(--fs-h3);margin-bottom:14px}
.workrow__desc{max-width:52ch;color:var(--fg-dim);margin-bottom:14px}
.workrow__metric{text-align:right;min-width:160px;padding-left:24px}
.workrow__num{display:block;font-family:var(--font-display);font-weight:700;font-size:clamp(2.5rem,5vw,4rem);line-height:1;color:var(--accent)}
.workrow__label{display:block;margin-top:8px;max-width:20ch;margin-left:auto}
/* full-width service card: content in two columns so it's not stretched */
.servicecard:last-child:nth-child(odd){display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,4vw,64px);align-items:baseline}
.servicecard:last-child:nth-child(odd) .servicecard__no{grid-row:1 / span 2}
.servicecard:last-child:nth-child(odd) .servicecard__desc{max-width:60ch}
@media(max-width:760px){
  .servicecard:last-child:nth-child(odd){grid-template-columns:1fr}
  .servicecard:last-child:nth-child(odd) .servicecard__no{grid-row:auto}
}
@media(max-width:760px){
  .workrow{grid-template-columns:1fr;gap:14px}
  .workrow__metric{text-align:left}
  .workrow__label{margin-left:0}
}

/* ---------- services ---------- */
.servicegrid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair)}
.servicecard{background:var(--bg);padding:clamp(28px,4vw,56px);transition:background .4s var(--ease)}
.section--alt .servicecard{background:var(--bg-soft)}
.servicecard:hover{background:var(--surface)}
/* last card spans full width when odd count (no empty cell) */
.servicecard:last-child:nth-child(odd){grid-column:1 / -1}
.servicecard__no{display:block;margin-bottom:28px;color:var(--accent)}
.servicecard__title{font-size:var(--fs-h3);margin-bottom:14px}
.servicecard__desc{color:var(--fg-dim);max-width:40ch}
@media(max-width:760px){.servicegrid{grid-template-columns:1fr}}

/* ---------- about ---------- */
.about__grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,6vw,90px);align-items:start}
.about__media{border-radius:var(--radius);overflow:hidden;aspect-ratio:4/5}
.about__media img{width:100%;height:100%;object-fit:cover}
.about__lead{font-family:var(--font-display);font-weight:500;font-size:var(--fs-lead);line-height:1.3;margin-bottom:28px}
.about__text{color:var(--fg-dim);max-width:52ch;margin-bottom:40px}
.about__facts{display:grid;grid-template-columns:1fr 1fr;gap:24px;border-top:1px solid var(--hair);padding-top:32px}
.about__facts dt{margin-bottom:6px;color:var(--fg-mute)}
.about__facts dd{font-family:var(--font-display);font-weight:500}
@media(max-width:860px){.about__grid{grid-template-columns:1fr}.about__media{max-width:360px}}

/* ---------- ventures ---------- */
.ventures{border-top:1px solid var(--hair)}
.ventrow{display:grid;grid-template-columns:60px 1fr 1fr auto;gap:var(--gap);align-items:center;
  padding-block:clamp(28px,5vh,56px);border-bottom:1px solid var(--hair);transition:background .4s var(--ease)}
.ventrow:hover{background:rgba(255,255,255,.02)}
.ventrow__no{color:var(--fg-mute)}
.ventrow__name{font-size:var(--fs-h3)}
.ventrow__role{color:var(--fg-mute)}
.ventrow__desc{color:var(--fg-dim);max-width:40ch}
.ventrow__link{color:var(--accent)}
@media(max-width:860px){
  .ventrow{grid-template-columns:1fr;gap:10px}
}

/* ---------- articles ---------- */
.articlelist{border-top:1px solid var(--hair)}
.artrow{display:grid;grid-template-columns:60px 1fr auto;gap:var(--gap);align-items:center;
  padding-block:clamp(24px,4vh,44px);border-bottom:1px solid var(--hair);transition:padding-left .4s var(--ease),background .4s var(--ease)}
.artrow:hover{padding-left:16px;background:rgba(255,255,255,.02)}
.artrow__no{color:var(--fg-mute)}
.artrow__title{font-size:clamp(1.25rem,2.2vw,1.9rem);font-weight:500}
.artrow__meta{color:var(--fg-mute);text-align:right}
@media(max-width:760px){
  .artrow{grid-template-columns:40px 1fr;gap:16px}
  .artrow__meta{grid-column:2;text-align:left}
}

/* ---------- contact ---------- */
.contact{border-top:1px solid var(--hair)}
.contact__big{display:inline-block}
.contact__headline{font-size:clamp(3.5rem,13vw,12rem);line-height:.9;margin:24px 0 clamp(48px,8vh,100px);transition:color .3s var(--ease)}
.contact__big:hover .contact__headline{color:var(--accent)}
.contact__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);border-top:1px solid var(--hair);padding-top:40px}
.contact__col{display:flex;flex-direction:column;gap:8px}
.contact__col .mono{color:var(--fg-mute)}
.contact__col a:hover{color:var(--accent)}
@media(max-width:760px){.contact__grid{grid-template-columns:1fr;gap:24px}}

/* ---------- post/page prose ---------- */
.post-body{font-size:var(--fs-lead);line-height:1.7;color:var(--fg-dim)}
.post-body h2{font-size:var(--fs-h3);color:var(--fg);margin:40px 0 16px}
.post-body h3{font-size:1.4rem;color:var(--fg);margin:32px 0 12px}
.post-body p{margin-bottom:20px}
.post-body a{color:var(--accent);text-decoration:underline}
.post-body ul,.post-body ol{margin:0 0 20px 24px}
.post-body li{margin-bottom:8px}
.post-body img{border-radius:2px;margin:32px 0}
.post-body blockquote{border-left:2px solid var(--accent);padding-left:24px;margin:32px 0;color:var(--fg)}
