/* The Big Dream business case, as a designed document.
   Loaded only by /big-dream/business-case. Kept out of styles.css on purpose:
   it carries an @page rule and a print block that hides site chrome, which
   must not apply when a visitor prints any other page on the site. */

/* ---------- NEW · long form document (business case page) ----------
   Structure and typography live in the designed document block below.
   Tables are wrapped in .docpanel, quotes become .pullquote, and the
   only h1 and h2 are the cover title and the section openers, so the
   old bare .doc table / blockquote / h1 / h2 rules are gone: they were
   fighting the panel borders and adding a phantom row above each table. */
.doc .docmeta{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--stone);margin-top:14px;line-height:2;}
.doc hr{border:none;border-top:1px solid var(--ash);margin:44px 0;}

/* ================================================================
   NEW · the designed document (business case). Screen first, then the
   A4 print layer below. Both are driven from the same markup, which is
   generated by build_site.js.
   ================================================================ */
.docbody .doc{max-width:none;margin:0;padding:0;}
.docsheet{max-width:900px;margin:0 auto;padding:0 var(--pad);}

/* cover */
.doccover{position:relative;isolation:isolate;color:var(--paper);
  min-height:min(1180px,132vh);display:flex;flex-direction:column;justify-content:space-between;
  padding:clamp(36px,6vw,84px) clamp(28px,6vw,84px);
  border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);}
.doccover::before{content:'';position:absolute;inset:0;z-index:-2;
  background-image:url(/big-dream/assets/generated/precinct-aerial-populated-web.jpg);
  background-size:cover;background-position:center 55%;}
.doccover::after{content:'';position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(17,17,17,.80) 0%,rgba(17,17,17,.62) 40%,rgba(17,17,17,.93) 100%);}
.cvtop{display:flex;justify-content:space-between;align-items:baseline;gap:18px;flex-wrap:wrap;
  border-bottom:1px solid rgba(251,250,247,.34);padding-bottom:18px;}
.cvbrand{font-family:var(--display);font-size:clamp(26px,3vw,34px);line-height:1;}
.cvbrand img{height:clamp(26px,3vw,34px);width:auto;display:block;}
.cvorg,.cvkick{font-family:var(--mono);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:#d6d3cb;}
.cvmid{padding:clamp(30px,7vw,90px) 0;}
.cvmid .cvtitle{font-family:var(--display);font-weight:400;letter-spacing:-0.01em;font-size:clamp(52px,10vw,132px);line-height:.98;margin-top:20px;max-width:16ch;}
.cvsub{font-family:var(--body);font-weight:300;font-size:clamp(19px,2.5vw,29px);line-height:1.42;
  max-width:38ch;margin-top:26px;color:#eae8e2;}
.cvbot{border-top:1px solid rgba(251,250,247,.34);padding-top:24px;}
.cvfig{display:flex;align-items:baseline;gap:20px;flex-wrap:wrap;}
.cvamt{font-family:var(--display);font-size:clamp(46px,7vw,86px);line-height:1;}
.cvaml{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#d6d3cb;max-width:26ch;line-height:1.8;}
.cvmeta{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:#b3b0a8;margin-top:16px;
  line-height:1.85;max-width:80ch;}

/* contents */
.doctoc{border-bottom:3px solid var(--ink);padding:clamp(48px,7vw,96px) 0;}
.tocwrap{max-width:900px;margin:0 auto;padding:0 var(--pad);}
.tochead{font-family:var(--mono);font-size:12px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--stone);padding-bottom:18px;border-bottom:3px solid var(--ink);}
.toclist{list-style:none;margin:0;}
.toclist li{display:flex;gap:clamp(18px,4vw,44px);align-items:baseline;
  padding:16px 0;border-bottom:1px solid var(--ash);}
.toclist .tn{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--stone);flex:0 0 auto;}
.toclist .tt{font-family:var(--display);font-size:clamp(19px,2.5vw,28px);line-height:1.2;}

/* front matter and body measure */
.docfront{max-width:820px;margin:0 auto;padding:clamp(48px,7vw,86px) var(--pad);
  border-bottom:1px solid var(--ash);}
.docfront h3,.docfront .dfh{font-size:clamp(21px,2.6vw,28px);margin-bottom:6px;}
.docsec{max-width:820px;margin:0 auto;padding:clamp(44px,6vw,76px) var(--pad) 0;}
/* scoped to the running text only. A bare .doc p would outrank .cvsub,
   .bkbig and .bkfoot on specificity and flatten the cover and back page. */
.docsec p,.docfront p,.docsec ul,.docsec ol,.docfront ul,.docfront ol{font-weight:300;font-size:17.5px;}
.docsec p,.docfront p{margin-top:18px;}
.docsec ul,.docsec ol,.docfront ul,.docfront ol{margin:18px 0 0 22px;}
.docsec li,.docfront li{margin-top:8px;}
.doc h3{font-family:var(--display);font-size:clamp(20px,2.4vw,26px);margin:40px 0 2px;}
.doc strong{font-weight:500;}
.doc a{text-decoration:underline;text-underline-offset:3px;}

/* section opener */
.docopen{display:flex;align-items:flex-start;gap:clamp(18px,3vw,34px);
  border-top:3px solid var(--ink);padding-top:22px;margin-bottom:6px;}
.docopen .secno{font-family:var(--display);font-size:clamp(38px,6vw,74px);line-height:.9;
  color:var(--ink);flex:0 0 auto;}
.docopen h2{font-size:clamp(26px,4.2vw,46px);line-height:1.08;margin-top:clamp(2px,1vw,10px);}

/* image plates */
.docplate{margin:38px 0 0;}
.docplate>img{width:100%;height:clamp(240px,38vh,420px);object-fit:cover;
  border:2px solid var(--ink);display:block;}
.docplate.tall>img{height:auto;object-fit:contain;background:var(--white);}
.docplate figcaption{font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--stone);margin-top:12px;line-height:1.85;}
.docplate .frames{display:grid;gap:2px;background:var(--ink);border:2px solid var(--ink);}
.docpair .frames{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));}
.doctrio .frames{grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));}
.docplate .fr{position:relative;background:var(--ash);}
.docplate .fr img{width:100%;height:clamp(190px,26vh,290px);object-fit:cover;display:block;}
.docplate .ptag{position:absolute;top:0;left:0;background:var(--ink);color:var(--paper);
  font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;padding:7px 13px;}

/* pull quote plate */
.pullquote{background:var(--ink);color:var(--paper);border:none;
  padding:clamp(30px,5vw,52px) clamp(26px,5vw,54px);margin:44px 0 0;}
.pullquote p{font-family:var(--display);font-size:clamp(21px,3vw,33px);line-height:1.34;
  margin:0;font-weight:400;color:var(--paper);}
.pullquote cite{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:#b3b0a8;font-style:normal;margin-top:24px;}

/* data panel */
.docpanel{border:2px solid var(--ink);background:var(--white);margin-top:30px;overflow-x:auto;}
.docpanel table{width:100%;border-collapse:collapse;font-size:15.5px;}
.docpanel th{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;text-align:left;padding:13px 15px;border-bottom:2px solid var(--ink);
  background:var(--paper);}
.docpanel td{padding:12px 15px;border-bottom:1px solid var(--ash);font-weight:300;vertical-align:top;}
.docpanel tr:last-child td{border-bottom:none;}

/* back page */
.docback{max-width:820px;margin:0 auto;padding:clamp(56px,8vw,104px) var(--pad) clamp(60px,8vw,110px);}
.bkline{border-top:3px solid var(--ink);}
.bkbig{font-family:var(--display);font-size:clamp(28px,5vw,54px);line-height:1.18;margin-top:32px;max-width:20ch;}
.bkgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));
  gap:2px;background:var(--ink);border:2px solid var(--ink);margin-top:44px;}
.bkgrid>div{background:var(--paper);padding:24px 22px;font-weight:300;font-size:16px;line-height:1.55;}
.bkl{display:block;font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--stone);margin-bottom:9px;}
.bkfoot{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--stone);margin-top:32px;line-height:1.95;}
.printfoot{display:none;}

/* ================================ A4 PRINT ================================ */
@media print{
  .cvbrand img{height:26pt;}
  @page{size:A4;margin:22mm 26mm 20mm;}
  @page cover{margin:0;}
  @page plain{margin:22mm 26mm 20mm;}

  /* scoped to the site header only: header.docopen must survive */
  .warnbar,body>header,.navlinks,footer,.noprint,.pagehead{display:none !important;}
  /* the running foot and page number come from Chrome's footerTemplate
     (see make_pdf.js), so the in page fallback stays hidden when printing */
  .printfoot{display:none !important;}
  html,body{background:#fff;}
  body{font-size:10.5pt;line-height:1.5;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  a{text-decoration:none;color:inherit;}
  h1,h2,h3{text-wrap:pretty;}
  p,li,blockquote,figure,table{orphans:3;widows:3;}
  img{break-inside:avoid;}

  /* cover: its own bleed page */
  .doccover{page:cover;min-height:0;height:297mm;width:210mm;
    padding:20mm 20mm;border:none;break-after:page;box-sizing:border-box;}
  .doccover::before{background-position:center 55%;}
  .cvmid .cvtitle{font-family:var(--display);font-weight:400;letter-spacing:-0.01em;font-size:58pt;}
  .cvsub{font-size:14pt;max-width:34ch;}
  .cvamt{font-size:40pt;}
  .cvaml{font-size:8pt;}
  .cvmeta{font-size:7.5pt;}
  .cvbrand{font-size:19pt;}
  .cvorg,.cvkick{font-size:8pt;}

  /* contents on its own page */
  .doctoc{break-after:page;padding:0;border:none;}
  .tocwrap{max-width:none;padding:0;}
  .toclist .tt{font-size:14pt;}
  .toclist li{padding:9pt 0;}
  .tochead{font-size:8.5pt;padding-bottom:10pt;}

  .docfront{max-width:none;padding:0;border:none;break-after:page;}
  .docfront h3,.docfront .dfh{font-size:17pt;}

  /* each numbered section opens a page */
  .docsec{max-width:none;padding:0;break-before:page;}
  .docopen{border-top-width:2.5pt;padding-top:8pt;margin-bottom:2pt;}
  .docopen .secno{font-size:34pt;}
  .docopen h2{font-size:21pt;margin-top:2pt;}
  .docsec p,.docfront p,.docsec ul,.docsec ol,.docfront ul,.docfront ol{font-size:10.5pt;}
  .docsec p,.docfront p{margin-top:9pt;}
  .doc h3{font-size:13pt;margin:16pt 0 0;break-after:avoid;}

  /* plates and panels stay whole */
  .docplate{margin:14pt 0 0;break-inside:avoid;}
  .docplate>img{height:62mm;border-width:1.5pt;}
  .docplate.tall>img{height:auto;max-height:150mm;}
  .docplate .fr img{height:42mm;}
  .doctrio .frames{grid-template-columns:1fr 1fr 1fr;}
  .docpair .frames{grid-template-columns:1fr 1fr;}
  .docplate .frames{border-width:1.5pt;}
  .docplate figcaption{font-size:7.5pt;margin-top:6pt;}
  .docplate .ptag{font-size:7pt;padding:4pt 8pt;}

  .pullquote{padding:14pt 16pt;margin:14pt 0 0;break-inside:avoid;}
  .pullquote p{font-size:15pt;line-height:1.32;}
  .pullquote cite{font-size:7.5pt;margin-top:10pt;}

  /* long tables may break across pages rather than leaving a half empty
     page behind them, but a row never splits and the header repeats */
  .docpanel{margin:12pt 0 0;overflow:visible;border-width:1.5pt;}
  .docpanel thead{display:table-header-group;}
  .docpanel tr{break-inside:avoid;}
  .docpanel table{font-size:8.5pt;}
  .docpanel th{font-size:7pt;padding:6pt 7pt;border-bottom-width:1.5pt;}
  .docpanel td{padding:5.5pt 7pt;}

  .docback{max-width:none;padding:0;break-before:page;}
  .bkbig{font-size:30pt;margin-top:14pt;}
  .bkgrid{margin-top:20pt;grid-template-columns:1fr 1fr;border-width:1.5pt;}
  .bkgrid>div{padding:11pt 12pt;font-size:9pt;}
  .bkl{font-size:7pt;}
  .bkfoot{font-size:7.5pt;margin-top:16pt;}
}
