/* Linbro Gardens DECK stylesheet — 16:9 landscape slides.
   Layers ON TOP of linbro.css: inherits :root palette tokens, @font-face,
   and component classes (.metrics, .pull, .chip, headings, .panel-*).
   Link order in the HTML must be linbro.css THEN deck.css so the landscape
   page geometry below overrides linbro.css's portrait A4 print rules.
   Render with ./render-deck.sh (explicit 13.333in x 7.5in landscape page). */

/* ---- page geometry: one 16:9 slide per printed page (1280x720 @96dpi) ---- */
@page{size:1280px 720px;margin:0;}

html,body{background:var(--paper);}
body{font-size:16px;line-height:1.45;}

.slide{
  position:relative;
  width:1280px;height:720px;
  margin:0 auto;
  padding:56px 72px 60px;
  background:var(--paper);
  color:var(--ink);
  display:flex;flex-direction:column;
  overflow:hidden;
  page-break-after:always;
  break-after:page;
}
.slide:last-child{page-break-after:auto;break-after:auto;}

/* ---- per-slide header: logo + eyebrow + slide number ---- */
.slide .topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;flex:0 0 auto;}
.slide .topbar .eyebrow{font-family:var(--sans);font-weight:700;font-size:0.8125rem;letter-spacing:0.14em;
  text-transform:uppercase;color:var(--taupe);}
.slide .topbar .pageno{font-family:var(--sans);font-size:0.75rem;color:var(--taupe);letter-spacing:0.04em;}
.slide .topbar img.linbro-logo{height:30px;}

/* ---- content region fills the slide ---- */
.slide .body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;justify-content:flex-start;}
.slide .body.center{justify-content:center;}

/* slide titles: big serif display, sized for a slide not a page */
.slide h1{font-size:3rem;line-height:1.1;margin:0 0 18px;}
.slide h2{font-size:2.25rem;line-height:1.12;margin:0 0 16px;}
.slide h3{font-size:1.25rem;margin:0 0 8px;}
.slide p,.slide li{font-size:1.0625rem;line-height:1.45;margin:0 0 12px;}
.slide .lead{font-size:1.5rem;line-height:1.3;max-width:46ch;color:var(--green-dark);}

/* density modifier for text-heavy slides */
.slide.dense p,.slide.dense li{font-size:0.9375rem;line-height:1.4;margin:0 0 9px;}
.slide.dense h1{font-size:2.5rem;}

/* ---- columns ---- */
.slide .cols{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;}
.slide .cols-3{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;align-items:start;}
.slide .cols-narrow{grid-template-columns:1.3fr 1fr;}

/* clean lists without bullets (brand prefers columns/dashes) */
.slide ul.clean{list-style:none;padding:0;margin:0;}
.slide ul.clean li{position:relative;padding-left:18px;}
.slide ul.clean li::before{content:"";position:absolute;left:0;top:0.62em;width:8px;height:2px;background:var(--maroon);}

/* group heading inside a column */
.slide .grp-h{font-family:var(--sans);font-weight:700;font-size:0.9375rem;color:var(--green);
  text-transform:uppercase;letter-spacing:0.06em;margin:0 0 8px;}

/* ---- cover ---- */
.slide.cover{background:var(--green);color:var(--paper);align-items:center;justify-content:center;text-align:center;
  padding:72px;}
.slide.cover .topbar{display:none;}
.slide.cover img.cover-logo{height:104px;margin-bottom:36px;}
.slide.cover h1{color:var(--paper);font-size:4rem;margin-bottom:20px;}
.slide.cover .tagline{font-family:var(--sans);font-size:1.5rem;font-weight:400;color:var(--paper);opacity:0.94;
  max-width:30ch;line-height:1.35;margin:0 auto;}
.slide.cover .footer{position:absolute;bottom:48px;left:0;right:0;text-align:center;
  font-size:0.8125rem;color:var(--paper);opacity:0.85;letter-spacing:0.06em;}

/* ---- coloured slides (eyebrow/pageno/text invert on dark) ---- */
.slide.green{background:var(--green);color:var(--paper);}
.slide.green h1,.slide.green h2,.slide.green h3,.slide.green .lead{color:var(--paper);}
.slide.green .topbar .eyebrow,.slide.green .topbar .pageno{color:var(--paper);opacity:0.8;}
.slide.green .grp-h{color:var(--gold);}
.slide.green ul.clean li::before{background:var(--gold);}
.slide.green .topbar img.linbro-logo{height:36px;}      /* beige mark needs more weight to read on deep teal */
.slide.gold{background:var(--gold);}
/* sand-gold ground: taupe washes out, so eyebrow/pageno take green for legibility */
.slide.gold .topbar .eyebrow,.slide.gold .topbar .pageno{color:var(--green-dark);}
.slide.cream{background:var(--paper);}

/* section opener: big quiet statement, centred */
.slide.opener .body{justify-content:center;}
.slide.opener h1{font-size:3.5rem;max-width:18ch;}

/* ---- metric row (reuses linbro .metric tokens, slide-scaled) ---- */
.slide .metrics{gap:44px;margin:8px 0 18px;}
.slide .metric .n{font-size:3rem;}
.slide .metric .l{font-size:0.875rem;max-width:16ch;}
.slide.green .metric .n{color:var(--gold);}
.slide.green .metric .l{color:var(--paper);border-top-color:var(--gold);}

/* ---- data tables (unit mix, financials, roadmap, impact) ---- */
.slide table{width:100%;border-collapse:collapse;font-family:var(--sans);margin:4px 0 12px;}
.slide table th{font-size:0.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;
  color:var(--taupe);text-align:left;padding:8px 14px;border-bottom:2px solid var(--taupe-light);}
.slide table td{font-size:0.9375rem;padding:8px 14px;border-bottom:1px solid var(--taupe-light);color:var(--ink);}
.slide table th.num,.slide table td.num{text-align:right;font-variant-numeric:tabular-nums;}
.slide table tr.total td{font-weight:700;color:var(--green-dark);border-bottom:none;}
.slide table td .hl{color:var(--maroon);font-weight:700;}

/* ---- pull quote (slide-scaled) ---- */
.slide .pull{font-size:1.625rem;max-width:30ch;}
.slide.green .pull{color:var(--paper);border-left-color:var(--gold);}

/* ---- quote wall (industry validation) ---- */
.slide .quotes{display:grid;grid-template-columns:1fr 1fr;gap:20px 44px;}
.slide .quote q{font-family:var(--serif);font-style:italic;font-size:1.1875rem;color:var(--green-dark);
  display:block;quotes:none;line-height:1.3;}
.slide .quote q::before,.slide .quote q::after{content:"";}
.slide .quote .attr{font-size:0.8125rem;color:var(--taupe);margin-top:6px;}
.slide .quote .attr strong{color:var(--green-dark);}

/* ---- timeline / roadmap helper ---- */
.slide .rail{display:flex;flex-direction:column;gap:0;}

/* ---- figure / render placeholder ---- */
.slide figure{margin:0;}
.slide figure img{width:100%;height:100%;object-fit:cover;border-radius:4px;}
.slide .render-slot{background:var(--teal-light);opacity:0.25;border-radius:4px;min-height:160px;
  display:flex;align-items:center;justify-content:center;}

/* small / caption inside slides */
.slide .note{font-size:0.8125rem;color:var(--taupe);margin-top:auto;padding-top:10px;}
.slide.green .note{color:var(--paper);opacity:0.75;}

/* ---- print: keep slide colours, hard page break per slide ---- */
@media print{
  html,body{background:#fff;}
  .slide{margin:0;page-break-after:always;break-after:page;}
  .slide:last-child{page-break-after:auto;}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
}
