/* ==========================================================================
   Marco Andolfatto — A4 print sheet.
   Deliberately not the dark web palette: toner-safe muted green on white.
   Internal spacing is in mm and type in pt, on purpose. Exactly one page.
   ========================================================================== */

@font-face {
  font-family: "Bricolage Grotesque";
  font-style: normal;
  font-weight: 400 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("assets/fonts/bricolage-grotesque-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Bricolage Grotesque";
  font-style: normal;
  font-weight: 400 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("assets/fonts/bricolage-grotesque-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Schibsted Grotesk";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("assets/fonts/schibsted-grotesk-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Schibsted Grotesk";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("assets/fonts/schibsted-grotesk-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  --ink: #101f1a;
  --ink-soft: #1a2a24;
  --body-grey: #3d4a44;
  --muted: #5d6a63;
  --green: #0c5c43;
  --hairline: #d3c9b1;
  --display: "Bricolage Grotesque", system-ui, sans-serif;
  --body: "Schibsted Grotesk", system-ui, sans-serif;
}

* {
  box-sizing: border-box;
}

@page {
  size: A4 portrait;
  margin: 0;
}

html {
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background: #e8e4da;
  font-family: var(--body);
  color: var(--ink);
}

a {
  color: var(--green);
  text-decoration: none;
}

a:hover {
  color: #06301f;
}

/* --- The sheet ------------------------------------------------------------ */

.sheet {
  width: 210mm;
  height: 297mm;
  padding: 13mm 14mm 11mm;
  margin: 10mm auto;
  background: #fff;
  display: flex;
  flex-direction: column;
  box-shadow: 0 6px 30px rgba(0, 0, 0, 0.18);
  overflow: hidden;
}

/* On-screen only: a way back and a way to print. */
.toolbar {
  max-width: 210mm;
  margin: 10mm auto -4mm;
  padding: 0 2mm;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.toolbar a,
.toolbar button {
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  padding: 10px 16px;
  min-height: 44px;
  border: 1px solid var(--green);
  background: none;
  color: var(--green);
  cursor: pointer;
}

.toolbar a:hover,
.toolbar button:hover {
  background: var(--green);
  color: #fff;
}

.toolbar a:focus-visible,
.toolbar button:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 3px;
}

/* --- Header --------------------------------------------------------------- */

.head {
  display: flex;
  gap: 10mm;
  align-items: flex-end;
  justify-content: space-between;
  border-bottom: 1.5px solid var(--ink);
  padding-bottom: 3.5mm;
}

.head__name {
  margin: 0;
  font-family: var(--display);
  font-weight: 700;
  font-size: 25pt;
  line-height: 1;
  letter-spacing: -0.032em;
}

.head__line {
  margin: 2.2mm 0 0;
  font-size: 9.5pt;
  line-height: 1.3;
  color: var(--body-grey);
}

.head__contact {
  text-align: right;
  font-size: 7.6pt;
  line-height: 1.55;
  color: var(--body-grey);
  white-space: nowrap;
}

/* --- Summary and stat strip ----------------------------------------------- */

.summary {
  margin: 3.5mm 0 0;
  font-family: var(--display);
  font-size: 9.6pt;
  line-height: 1.5;
  color: var(--ink-soft);
}

.strip {
  display: flex;
  gap: 4mm;
  margin: 3.5mm 0 0;
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
  padding: 2.6mm 0;
}

.strip__cell {
  flex: 1;
}

.strip__figure {
  font-size: 11.5pt;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--green);
}

.strip__caption {
  display: block;
  font-size: 7.4pt;
  line-height: 1.3;
  color: var(--muted);
  margin-top: 0.6mm;
}

/* --- Body columns --------------------------------------------------------- */

.cols {
  display: flex;
  gap: 8mm;
  margin-top: 4mm;
  flex: 1;
  min-height: 0;
}

.col--main {
  flex: 1 1 62%;
  min-width: 0;
}

.col--side {
  flex: 1 1 38%;
  min-width: 0;
  border-left: 1px solid var(--hairline);
  padding-left: 6mm;
}

.sec-label {
  margin: 0 0 2.5mm;
  font-family: var(--body);
  font-size: 7.6pt;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
}

.job {
  margin-bottom: 3.8mm;
}

.job__top {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 4mm;
}

.job__title {
  margin: 0;
  font-family: var(--display);
  font-weight: 700;
  font-size: 10.6pt;
  line-height: 1.2;
  letter-spacing: -0.015em;
}

.job__date {
  font-size: 7.4pt;
  color: var(--muted);
  white-space: nowrap;
}

.job__context {
  margin: 1mm 0 1.6mm;
  font-size: 7.8pt;
  line-height: 1.35;
  color: var(--muted);
}

.job__bullets {
  margin: 0;
  padding: 0 0 0 3.6mm;
  font-size: 8.8pt;
  line-height: 1.42;
  color: var(--ink-soft);
}

.job__bullets li {
  margin-bottom: 0.9mm;
}

.job__bullets li:last-child {
  margin-bottom: 0;
}

.earlier-label {
  margin-bottom: 1.8mm;
}

.earlier-prose {
  margin: 0;
  font-size: 8.4pt;
  line-height: 1.45;
  color: var(--body-grey);
}

/* --- Sidebar -------------------------------------------------------------- */

.qual {
  margin-bottom: 3mm;
}

.qual:last-of-type {
  margin-bottom: 4.5mm;
}

.qual__name {
  font-family: var(--display);
  font-size: 9.6pt;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.012em;
}

.qual__where {
  font-size: 8.2pt;
  line-height: 1.35;
  color: var(--body-grey);
  margin-top: 0.7mm;
}

.qual__modules {
  font-size: 7.4pt;
  line-height: 1.35;
  color: var(--muted);
  margin-top: 0.8mm;
}

.side-block {
  font-size: 8.2pt;
  line-height: 1.45;
  color: var(--ink-soft);
  margin-bottom: 4.5mm;
}

.side-block > div {
  margin-bottom: 1.6mm;
}

.side-block > div:last-child {
  margin-bottom: 0;
}

.side-block strong {
  font-weight: 600;
}

.side-list {
  margin: 0 0 4.5mm;
  padding: 0;
  list-style: none;
  font-size: 8.2pt;
  line-height: 1.5;
  color: var(--ink-soft);
}

.side-plain {
  font-size: 8.2pt;
  line-height: 1.5;
  color: var(--ink-soft);
}

.sec-label + .sec-label {
  margin-top: 0;
}

.side-gap {
  margin-top: 4.5mm;
}

/* --- Print ---------------------------------------------------------------- */

@media print {
  body {
    background: #fff;
  }

  .toolbar {
    display: none !important;
  }

  .sheet {
    margin: 0;
    box-shadow: none;
    width: 210mm;
    height: 297mm;
    page-break-after: avoid;
  }
}

/* Small screens: let the sheet scale down rather than scroll sideways. */
@media screen and (max-width: 230mm) {
  .sheet {
    transform-origin: top center;
    transform: scale(calc(100vw / 232mm));
    margin-bottom: calc(10mm - 297mm * (1 - 100vw / 232mm));
  }

  .toolbar {
    max-width: 100%;
    padding: 0 16px;
  }
}
