/* Linbro Gardens brand stylesheet — decks, proposals, documents.
   Canonical tokens: ../DESIGN.md. Voice: ./voice.md.
   Use with the HTML templates in ./templates/ and render via ./render-pdf.sh.
   Paths are relative to this file (brand/), so fonts resolve at ../assets/. */

/* ---- Brand fonts: Libre Baskerville (serif display) + Open Sauce One (sans body). Self-hosted, open. ---- */
@font-face{font-family:'Libre Baskerville';src:url('../assets/fonts/libre-baskerville-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Libre Baskerville';src:url('../assets/fonts/libre-baskerville-400-italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:'Libre Baskerville';src:url('../assets/fonts/libre-baskerville-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:'Open Sauce One';src:url('../assets/fonts/open-sauce-one-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Open Sauce One';src:url('../assets/fonts/open-sauce-one-400-italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:'Open Sauce One';src:url('../assets/fonts/open-sauce-one-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}

:root{
  /* core palette (DESIGN.md) */
  --green:#0F6A58;      /* deep teal-green: primary, headings, rules, dark panels */
  --green-dark:#0A463A; /* deep green: body text on cream, deep panels */
  --green-deep:#05221C; /* deepest green */
  --teal-mid:#348479;   /* secondary fills, charts */
  --teal-light:#5CA19E; /* light supporting fills */
  --paper:#FFFAF2;      /* main background; text on dark */
  --taupe:#9B8D75;      /* dividers, secondary UI, captions */
  --taupe-light:#CAB5A0;
  --gold:#F0D2A0;       /* sand-gold: soft fills and rules ONLY, never text on cream */
  --maroon:#891314;     /* carrying accent: impact figures, pull-quote rules, one urgent emphasis */
  --ink:#233029;        /* body text, warm near-black green */

  --serif:'Libre Baskerville',Georgia,'Times New Roman',serif;
  --sans:'Open Sauce One',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;

  /* spacing scale (8px base) */
  --sp-xs:8px; --sp-sm:12px; --sp-md:16px; --sp-lg:24px; --sp-xl:32px; --sp-2xl:48px; --sp-3xl:64px;
}

*{box-sizing:border-box;}
html{font-size:16px;}
body{
  margin:0;
  font-family:var(--sans);
  font-weight:400;
  line-height:1.6;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}

/* ---- type scale (DESIGN.md: H1 56 serif / H2 34 sans / H3 22 sans / body 18) ----
   Serif (Libre Baskerville) is for emotive display and section openers only;
   sans (Open Sauce One) carries every structural heading and all body/data. */
h1{font-family:var(--serif);font-weight:400;font-size:3.5rem;line-height:1.12;color:var(--green);margin:0 0 var(--sp-md);}
h2{font-family:var(--sans);font-weight:700;font-size:2.125rem;line-height:1.15;color:var(--green-dark);margin:0 0 var(--sp-md);letter-spacing:-0.01em;}
h3{font-family:var(--sans);font-weight:700;font-size:1.375rem;line-height:1.2;color:var(--green-dark);margin:0 0 var(--sp-sm);}
p,li{font-size:1.125rem;margin:0 0 var(--sp-md);}  /* 18 */
.small,.caption{font-size:0.8125rem;color:var(--taupe);}
a{color:var(--green);text-decoration:none;border-bottom:1px solid var(--taupe-light);}
strong{font-weight:700;}
em{font-style:italic;}
/* a serif emotive line anywhere in the body */
.display{font-family:var(--serif);font-weight:400;color:var(--green);}

/* ---- logo ---- */
.linbro-logo{height:40px;display:block;}
.linbro-logo.lg{height:96px;}

/* ---- layout ---- */
.page{max-width:1040px;margin:0 auto;padding:var(--sp-3xl) var(--sp-2xl);}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-lg);}
.lead{font-size:1.375rem;font-weight:400;color:var(--green-dark);max-width:34ch;}
.subhead{font-size:1.125rem;color:var(--taupe);margin-top:calc(-1 * var(--sp-xs));}

/* ---- coloured panels ---- */
.panel-cream{background:var(--paper);}
.panel-green{background:var(--green);color:var(--paper);}
.panel-green h1,.panel-green h2,.panel-green h3,.panel-green .display{color:var(--paper);}
.panel-gold{background:var(--gold);}            /* soft sand-gold fill */
.panel{padding:var(--sp-2xl);}

/* ---- cover (deep teal-green ground, cream text, serif manifesto) ---- */
.cover{background:var(--green);color:var(--paper);min-height:100vh;display:flex;flex-direction:column;
  justify-content:center;align-items:center;text-align:center;padding:var(--sp-2xl);}
.cover h1{color:var(--paper);font-size:4rem;}
.cover .cover-line{font-family:var(--sans);font-size:1.375rem;color:var(--paper);opacity:0.92;margin-top:var(--sp-lg);max-width:52ch;font-weight:400;}
.cover .meta{position:absolute;bottom:var(--sp-2xl);font-size:0.8125rem;color:var(--paper);opacity:0.85;letter-spacing:0.04em;}

/* ---- impact metrics (maroon carries; sand-gold rule underneath) ---- */
.metrics{display:flex;gap:var(--sp-2xl);flex-wrap:wrap;margin:var(--sp-lg) 0;}
.metric .n{font-family:var(--sans);font-size:2.75rem;font-weight:700;color:var(--maroon);line-height:1;}
.metric .l{font-size:0.9375rem;color:var(--green-dark);margin-top:var(--sp-xs);max-width:15ch;padding-top:var(--sp-xs);border-top:3px solid var(--gold);}

/* ---- pull quote (maroon rule, serif italic) ---- */
.pull{border-left:3px solid var(--maroon);padding:var(--sp-xs) 0 var(--sp-xs) var(--sp-md);
  font-family:var(--serif);font-style:italic;font-size:1.5rem;font-weight:400;color:var(--green-dark);max-width:36ch;line-height:1.35;}

/* ---- tags ---- */
.chip{display:inline-block;background:var(--green);color:var(--paper);border-radius:999px;
  padding:4px 13px;font-size:0.875rem;font-weight:400;margin:0 6px 6px 0;}
.chip.gold{background:var(--gold);color:var(--green-dark);}

/* ---- figure / photography ---- */
figure{margin:0 0 var(--sp-md);}
figure img{width:100%;height:auto;border-radius:4px;display:block;}
figcaption{font-size:0.8125rem;color:var(--taupe);margin-top:6px;}

/* ---- print rules ---- */
@page{size:A4;margin:18mm 16mm;}
@media print{
  body{background:var(--paper);}
  .page{padding:0;max-width:none;}
  .cover{min-height:auto;height:247mm;page-break-after:always;} /* ~A4 minus margins */
  .page-break{page-break-before:always;}
  h1,h2,h3{page-break-after:avoid;}
  figure,.metrics,.pull{page-break-inside:avoid;}
}
