/* ============================================================
   Shared page furniture for the lifecycle portfolio.
   global.css is carried over unchanged from the copywriting portfolio so the
   two sites stay diffable; anything this site adds lives here.
   ============================================================ */

.section-lede {
  max-width: 68ch;
  margin: 0 0 30px;
  font-size: 17px;
  line-height: 1.7;
  color: var(--muted);
}
.section-lede strong { color: var(--text); font-weight: 600; }

/* ---- hero ----------------------------------------------------------- */
.lc-hero { padding-top: 64px; padding-bottom: 8px; }
.lc-hero h1 {
  font-size: clamp(2rem, 4.6vw, 3rem);
  line-height: 1.12;
  letter-spacing: -0.02em;
  margin: 10px 0 16px;
  max-width: 20ch;
}
.lc-hero .lc-sub {
  font-size: 19px;
  line-height: 1.62;
  color: var(--muted);
  max-width: 60ch;
  margin: 0 0 24px;
}
.lc-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }

/* ---- proof strip ---------------------------------------------------- */
.lc-proof {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
  margin-top: 40px;
}
.lc-stat {
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  background: #fff;
  padding: 18px 18px 16px;
  box-shadow: var(--shadow);
}
/* The proof cards used to be one big figure plus a caption. They are claims
   written as sentences now, with the figures inside the copy — so `.lc-stat b`
   has to stay off them: it was rendering "20%" at 26px in blue, mid-sentence,
   and splitting the paragraph across three lines. Direct children only, which
   nothing currently is, but the rule stays for the shape it describes. */
.lc-stat > b {
  display: block;
  font-size: 26px;
  letter-spacing: -0.02em;
  line-height: 1.1;
  color: var(--accent-dark);
}
.lc-stat > span { display: block; margin-top: 6px; font-size: 13.5px; color: var(--muted); line-height: 1.5; }

/* ---- section cards -------------------------------------------------- */
.lc-cards {
  display: grid;
  /* 2x2 rather than 3+1 — four cards across a 1100px container leaves an
     orphan on the second row. */
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
  gap: 18px;
}
.lc-card {
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  background: #fff;
  padding: 22px;
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
}
.lc-card h3 { margin: 0 0 4px; font-size: 1.12rem; }
.lc-card .lc-kicker {
  font-size: 11px; text-transform: uppercase; letter-spacing: 0.09em;
  font-weight: 700; color: var(--muted-soft); margin: 0 0 10px;
}
.lc-card p { margin: 0 0 14px; font-size: 15px; line-height: 1.62; color: var(--muted); }
.lc-card .btn { margin-top: auto; align-self: flex-start; }

/* ---- stub pages ----------------------------------------------------- */
.stub {
  border: 1px dashed var(--border-strong);
  border-radius: var(--radius);
  background: var(--bg-alt);
  padding: 28px;
  margin-top: 24px;
}
.stub .lc-kicker {
  font-size: 11px; text-transform: uppercase; letter-spacing: 0.09em;
  font-weight: 700; color: var(--muted-soft); margin: 0 0 8px;
}
.stub h3 { margin: 0 0 10px; font-size: 1.12rem; }
.stub p { margin: 0 0 12px; color: var(--muted); font-size: 15.5px; line-height: 1.65; }
.stub p:last-child { margin-bottom: 0; }
.stub ul { margin: 0 0 12px; padding-left: 20px; color: var(--muted); font-size: 15px; line-height: 1.75; }
.stub ul strong { color: var(--text); font-weight: 600; }


/* ---- pillar card gifs ---------------------------------------------
   One uniform 16:9 stage per card. Narrower gifs sit centred on a
   soft glow in the card's own accent, so every stage reads the same
   width without cropping anything. */
.lc-gif {
  display: grid;
  position: relative;
  cursor: pointer;
  transition: border-color 0.16s ease, box-shadow 0.16s ease;
  margin: 12px 0 12px;
  aspect-ratio: 16 / 9;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid var(--border);
  display: grid;
  place-items: center;
  background:
    radial-gradient(ellipse 75% 95% at 50% 50%, color-mix(in srgb, var(--c-num) 14%, transparent), transparent 78%),
    rgba(0, 0, 0, 0.28);
}
.lc-gif img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: 6px;
}

.lc-gif:hover {
  border-color: var(--pg);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);
}
