/* ==========================================================================
   Public marketing pages — home, about, for employers, for job seekers, contact.
   Builds on the design system in app.css: tokens only, square media, hairline
   rules, pills only for actions. Loaded with 'css' => ['pages/public'].
   ========================================================================== */

/* <picture> wrappers must fill their positioned media boxes */
.home-hero__media picture,
.page-hero__media picture,
.pub-photo-band__media picture { display: block; height: 100%; }

/* ---------- Home hero: full-bleed B&W photo, dark from the left ---------- */
.home-hero { position: relative; display: grid; align-items: end; min-height: min(84vh, 760px); overflow: hidden; background: var(--bg); }
.home-hero__media { position: absolute; inset: 0; }
.home-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 68% 30%; filter: grayscale(1) contrast(1.04); }
.home-hero__media::after {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(0deg, var(--bg) 4%, color-mix(in srgb, var(--bg) 78%, transparent) 42%, color-mix(in srgb, var(--bg) 20%, transparent) 78%);
}
@media (min-width: 900px) {
  .home-hero__media::after {
    background:
      linear-gradient(90deg, var(--bg) 6%, color-mix(in srgb, var(--bg) 82%, transparent) 34%, color-mix(in srgb, var(--bg) 30%, transparent) 62%, color-mix(in srgb, var(--bg) 6%, transparent)),
      linear-gradient(0deg, var(--bg) 0%, transparent 28%);
  }
}
.home-hero__inner { position: relative; padding: var(--sp-9) 0 var(--sp-6); max-width: 46rem; }
.home-hero__inner .label { color: var(--ink); display: block; margin-bottom: var(--sp-4); }
.home-hero h1 { margin-bottom: var(--sp-5); }
.home-hero__lead { font-size: var(--fs-lg); max-width: 40rem; margin-bottom: var(--sp-6); }
.home-hero__facts { display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-5); list-style: none; margin: 0; padding: var(--sp-4) 0 0; border-top: 1px solid var(--line-strong); font-family: var(--font-label); font-weight: 600; font-size: var(--fs-xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-muted); }
.home-hero--plain { min-height: 0; border-bottom: var(--hair); }
.home-hero--plain .home-hero__inner { padding-top: var(--sp-8); }

/* ---------- The two strands (from the client's flyer) ---------- */
.pub-strands { display: grid; border-top: var(--hair); border-bottom: var(--hair); }
.pub-strand { display: grid; gap: var(--sp-4); align-content: start; padding: var(--sp-7) 0; }
.pub-strand + .pub-strand { border-top: var(--hair); }
.pub-strand__ask { font-size: clamp(2.2rem, 1.4rem + 3vw, 3.6rem); margin: 0; }
.pub-strand__answer { font-family: var(--font-display); font-style: italic; font-size: var(--fs-xl); line-height: 1.15; margin: 0; }
.pub-strand p { margin: 0; color: var(--ink-muted); max-width: 34rem; }
.pub-strand .cluster { gap: var(--sp-3) var(--sp-5); margin-top: var(--sp-2); }
@media (min-width: 900px) {
  .pub-strands { grid-template-columns: 1fr 1fr; }
  .pub-strand { padding: var(--sp-8) var(--sp-7) var(--sp-8) 0; }
  .pub-strand + .pub-strand { border-top: 0; border-left: var(--hair); padding: var(--sp-8) 0 var(--sp-8) var(--sp-7); }
}

/* ---------- Job search bar ---------- */
.pub-search { background: var(--surface); border-bottom: var(--hair); padding: var(--sp-6) 0; }
.pub-search__title { font-family: var(--font-display); font-size: var(--fs-xl); margin: 0 0 var(--sp-4); }
.pub-search__form { display: grid; gap: var(--sp-4); }
.pub-search__form .btn { width: 100%; }
@media (min-width: 760px) {
  .pub-search__form { grid-template-columns: 1.6fr 1.2fr 1fr auto; align-items: end; }
  .pub-search__form .btn { width: auto; min-height: 48px; }
}

/* ---------- Section heads & small parts ---------- */
.pub-head-copy { max-width: 38rem; margin: 0; color: var(--ink-muted); }
.pub-more { display: flex; flex-wrap: wrap; gap: var(--sp-4) var(--sp-6); align-items: center; margin-top: var(--sp-6); }
.pub-note { font-size: var(--fs-sm); color: var(--ink-muted); }

/* ---------- The register on the home page ---------- */
.pub-register-intro { display: grid; gap: var(--sp-5); margin-bottom: var(--sp-6); }
@media (min-width: 900px) { .pub-register-intro { grid-template-columns: 1.3fr 1fr; align-items: end; } }
.pub-register-intro__locked { display: grid; gap: var(--sp-2); padding-left: var(--sp-4); border-left: 1px solid var(--line-strong); font-size: var(--fs-sm); color: var(--ink-muted); }
.pub-register-intro__locked strong { color: var(--ink); }

/* ---------- Numbered industry index (no images) ---------- */
.pub-index { list-style: none; margin: 0; padding: 0; columns: 1; column-gap: var(--sp-7); }
@media (min-width: 680px) { .pub-index { columns: 2; } }
@media (min-width: 1100px) { .pub-index { columns: 3; } }
.pub-index li { break-inside: avoid; display: grid; grid-template-columns: 2.4rem 1fr; gap: 0 var(--sp-3); padding: var(--sp-3) 0 var(--sp-1); border-bottom: var(--hair); }
.pub-index__no { font-family: var(--font-label); font-weight: 600; font-size: var(--fs-sm); letter-spacing: 0.08em; color: var(--ink-subtle); padding-top: 0.35rem; font-variant-numeric: tabular-nums; }
.pub-index__name { font-family: var(--font-display); font-size: 1.45rem; line-height: 1.15; margin: 0; font-weight: 500; }
.pub-index__counts { grid-column: 2; display: flex; flex-wrap: wrap; gap: 0 var(--sp-4); }
.pub-index__count { display: inline-flex; align-items: center; min-height: 44px; font-size: var(--fs-sm); color: var(--ink-muted); text-decoration: none; }
.pub-index__count .num { color: var(--ink); font-weight: 600; margin-right: 0.3em; }
.pub-index__count:hover { color: var(--ink); text-decoration: underline; }
.pub-index__count.is-zero, .pub-index__count.is-zero .num { color: var(--ink-subtle); font-weight: 400; }

/* ---------- The human element (photo + Shanita's words) ---------- */
.pub-human { display: grid; gap: var(--sp-6); align-items: center; }
@media (min-width: 900px) { .pub-human { grid-template-columns: 1fr 1.15fr; gap: var(--sp-8); } }
.pub-human .figure img { aspect-ratio: 4 / 3; height: auto; }
.pub-quote { margin: 0; }
.pub-quote blockquote { margin: 0; }
.pub-quote blockquote p { font-family: var(--font-display); font-style: italic; font-weight: 500; font-size: clamp(1.75rem, 1.2rem + 2.1vw, 2.9rem); line-height: 1.12; margin: 0 0 var(--sp-4); }
.pub-quote blockquote p::before { content: "\201C"; }
.pub-quote blockquote p::after { content: "\201D"; }
.pub-quote figcaption { font-family: var(--font-label); font-weight: 600; font-size: var(--fs-xs); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink-muted); }

/* ---------- Comparison tables (two ways to hire; free vs subscription) ---------- */
.pub-compare { width: 100%; border-collapse: collapse; }
.pub-compare th, .pub-compare td { text-align: left; vertical-align: top; padding: var(--sp-4); border-bottom: var(--hair); }
.pub-compare thead th { font-family: var(--font-display); font-size: var(--fs-xl); font-weight: 500; line-height: 1.1; padding-top: var(--sp-5); padding-bottom: var(--sp-5); }
.pub-compare thead th .label { display: block; margin-bottom: var(--sp-2); }
.pub-compare tbody th { font-family: var(--font-label); font-weight: 600; font-size: var(--fs-xs); letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-muted); width: 22%; padding-left: 0; }
.pub-compare td + td, .pub-compare th + td, .pub-compare thead th + th { border-left: var(--hair); }
.pub-compare tfoot td { border-bottom: 0; padding-top: var(--sp-5); }
.pub-compare .is-highlight { background: var(--surface); }
.pub-compare__yes, .pub-compare__no { display: inline-flex; gap: var(--sp-2); align-items: baseline; }
.pub-compare__no { color: var(--ink-subtle); }
.pub-compare__yes .icon { width: 0.95em; height: 0.95em; }
.pub-compare small { display: block; color: var(--ink-muted); font-size: var(--fs-xs); margin-top: var(--sp-1); }
.pub-compare--features tbody th { font-family: var(--font-body); font-size: var(--fs-md); font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--ink); width: 50%; padding-right: var(--sp-5); }
.pub-compare--features tbody th small { font-weight: 400; font-size: var(--fs-sm); line-height: 1.45; }
.pub-compare--features td { width: 25%; vertical-align: middle; font-size: var(--fs-sm); }

/* Multi-line page title: one sentence per line */
.pub-h1-lines { font-size: var(--fs-2xl); }
.pub-h1-lines > span { display: block; }
@media (max-width: 719px) {
  /* Keep the two options side by side; the row label sits above them */
  .pub-compare, .pub-compare thead, .pub-compare tbody, .pub-compare tfoot { display: block; }
  .pub-compare tr { display: grid; grid-template-columns: 1fr 1fr; border-bottom: var(--hair); }
  .pub-compare th, .pub-compare td { border-bottom: 0; padding: var(--sp-3); font-size: var(--fs-sm); }
  .pub-compare tbody th { grid-column: 1 / -1; width: auto; padding: var(--sp-4) 0 0; }
  .pub-compare thead th:first-child, .pub-compare tfoot td:first-child { display: none; }
  .pub-compare thead th { font-size: var(--fs-lg); padding: var(--sp-4) var(--sp-3); }
  .pub-compare thead th:nth-child(2), .pub-compare tbody td:nth-of-type(1), .pub-compare tfoot td:nth-child(2) { border-left: 0; padding-left: 0; }
  .pub-compare tfoot tr { border-bottom: 0; }
  .pub-compare tfoot .btn { width: 100%; white-space: normal; text-align: center; }
  .pub-compare td { width: auto; }
  .pub-compare td[data-label]::before { content: attr(data-label); display: block; font-family: var(--font-label); font-weight: 600; font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-subtle); margin-bottom: var(--sp-1); }
}

/* ---------- Hiring company logos ---------- */
.pub-logos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--line); border: var(--hair); }
@media (min-width: 640px) { .pub-logos { grid-template-columns: repeat(4, 1fr); } }
.pub-logos a { display: grid; gap: var(--sp-2); height: 100%; padding: var(--sp-4); background: var(--bg); text-decoration: none; }
.pub-logos img, .pub-logos .job-row__mono { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; filter: grayscale(1); transition: filter var(--dur-slow) var(--ease); }
.pub-logos .job-row__mono { font-size: 2.4rem; }
.pub-logos a:hover img, .pub-logos a:focus-visible img { filter: grayscale(0); }
.pub-logos__name { font-weight: 600; font-size: var(--fs-sm); line-height: 1.3; }
.pub-logos__jobs { font-size: var(--fs-xs); color: var(--ink-muted); }

/* ---------- Inverted paper bands (trust, anti-scam) ---------- */
.pub-paper { background: var(--paper); color: var(--paper-ink); }
.pub-paper a { color: inherit; }
.pub-paper .muted { color: var(--paper-ink); opacity: 0.78; }
.pub-paper .label { color: var(--paper-ink); }
.pub-paper :focus-visible { outline-color: var(--paper-ink); }
.pub-paper .btn--primary { background: var(--paper-ink); color: var(--paper); border-color: var(--paper-ink); }
.pub-paper .btn--primary:hover { background: transparent; color: var(--paper-ink); }
.pub-paper .btn--outline, .pub-paper .btn--ghost { color: var(--paper-ink); border-color: var(--paper-ink); }
.pub-paper .btn--outline:hover, .pub-paper .btn--ghost:hover { background: var(--paper-ink); color: var(--paper); }
.pub-paper .link-arrow { border-color: var(--paper-ink); }
.pub-trust { padding: var(--sp-7) 0; }
.pub-trust__grid { display: grid; gap: var(--sp-5); align-items: center; }
@media (min-width: 900px) { .pub-trust__grid { grid-template-columns: 1.3fr 1fr; gap: var(--sp-7); } }
.pub-trust__shout { font-size: clamp(2rem, 1.3rem + 2.8vw, 3.4rem); margin: 0 0 var(--sp-3); }
.pub-trust p { margin: 0; max-width: 40rem; }
.pub-trust .cluster { justify-content: flex-start; }
@media (min-width: 900px) { .pub-trust .cluster { justify-content: flex-end; } }

/* ---------- Numbered steps / principles (ruled, not cards) ---------- */
.pub-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; counter-reset: pubstep; }
.pub-steps > li { counter-increment: pubstep; display: grid; grid-template-columns: 3rem 1fr; gap: var(--sp-1) var(--sp-3); padding: var(--sp-5) 0; border-bottom: var(--hair); }
.pub-steps > li::before { content: counter(pubstep, decimal-leading-zero); grid-row: span 2; font-family: var(--font-display); font-size: 2rem; line-height: 1; color: var(--ink-muted); }
.pub-steps h3 { margin: 0; }
.pub-steps p { margin: 0; color: var(--ink-muted); font-size: var(--fs-sm); }
@media (min-width: 1000px) {
  .pub-steps--row { grid-template-columns: repeat(5, 1fr); gap: var(--sp-5); }
  .pub-steps--row > li { grid-template-columns: 1fr; border-top: 3px solid var(--ink); border-bottom: 0; align-content: start; }
  .pub-steps--row > li::before { grid-row: auto; font-size: 2.4rem; margin-bottom: var(--sp-2); }
  .pub-steps--two { grid-template-columns: 1fr 1fr; column-gap: var(--sp-7); }
}

/* ---------- Price panel ---------- */
.pub-pricing { display: grid; gap: var(--sp-6); align-items: start; }
@media (min-width: 960px) { .pub-pricing { grid-template-columns: 1fr 1.1fr; gap: var(--sp-8); } }
.pub-price { padding: var(--sp-6); gap: var(--sp-4); }
.pub-price__amount { font-family: var(--font-display); font-size: clamp(3.6rem, 2.6rem + 4vw, 6rem); line-height: 0.9; font-weight: 500; margin: 0; }
.pub-price__amount span { font-family: var(--font-label); font-size: var(--fs-md); letter-spacing: 0.12em; text-transform: uppercase; font-weight: 600; margin-left: var(--sp-2); }
.pub-ticks { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.pub-ticks li { display: grid; grid-template-columns: 1.2rem 1fr; gap: var(--sp-3); padding: var(--sp-2) 0; border-bottom: 1px solid color-mix(in srgb, currentColor 16%, transparent); font-size: var(--fs-sm); line-height: 1.45; }
.pub-ticks li .icon { margin-top: 0.2em; }
.pub-anchor { font-family: var(--font-display); font-size: var(--fs-xl); line-height: 1.2; margin: 0; }

/* ---------- FAQ ---------- */
.pub-faq { max-width: 52rem; }
.pub-faq details { border-bottom: var(--hair); }
.pub-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: var(--sp-4); align-items: center; min-height: 56px; padding: var(--sp-3) 0; font-weight: 600; font-size: var(--fs-md); }
.pub-faq summary::-webkit-details-marker { display: none; }
.pub-faq summary::after { content: "+"; font-family: var(--font-display); font-size: 1.7rem; line-height: 1; color: var(--ink-muted); flex-shrink: 0; }
.pub-faq details[open] summary::after { content: "\2013"; }
.pub-faq__body { padding: 0 0 var(--sp-5); color: var(--ink-muted); max-width: 46rem; }
.pub-faq__body p:last-child { margin-bottom: 0; }
.pub-faq__body a { color: var(--ink); }

/* ---------- Two ruled columns (who we help; visibility of information) ---------- */
.pub-columns { display: grid; gap: var(--sp-6); }
@media (min-width: 900px) { .pub-columns { grid-template-columns: 1fr 1fr; gap: var(--sp-7); } .pub-columns--3 { grid-template-columns: repeat(3, 1fr); gap: var(--sp-6); } }
.pub-column { border-top: 3px solid var(--ink); padding-top: var(--sp-4); display: grid; gap: var(--sp-3); align-content: start; }
.pub-column--quiet { border-top-color: var(--line-strong); }
.pub-column h3 { margin: 0; }
.pub-column p { margin: 0; color: var(--ink-muted); }
.pub-list { list-style: none; margin: 0; padding: 0; border-top: var(--hair); }
.pub-list li { padding: var(--sp-2) 0; border-bottom: var(--hair); font-size: var(--fs-sm); }

/* ---------- Story & prose blocks ---------- */
.pub-story { display: grid; gap: var(--sp-6); }
@media (min-width: 900px) { .pub-story { grid-template-columns: 1fr 1.3fr; gap: var(--sp-8); } .pub-story__aside { position: sticky; top: calc(var(--header-h) + var(--sp-5)); align-self: start; } }
.pub-story__aside h2 { margin-bottom: var(--sp-4); }
.pub-pullquote { font-family: var(--font-display); font-style: italic; font-size: var(--fs-xl); line-height: 1.25; border-left: 3px solid var(--ink); padding-left: var(--sp-5); margin: var(--sp-6) 0; max-width: 40rem; }

/* Sector run: industries as one flowing, numbered line of links */
.pub-sector-run { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0; }
.pub-sector-run li { display: inline-flex; align-items: baseline; }
.pub-sector-run a { display: inline-flex; align-items: baseline; gap: 0.4em; min-height: 44px; padding: var(--sp-2) var(--sp-4) var(--sp-2) 0; text-decoration: none; font-family: var(--font-display); font-size: 1.35rem; line-height: 1.2; }
.pub-sector-run a:hover { text-decoration: underline; }
.pub-sector-run .ref { font-size: 0.7rem; }

/* Full-bleed photo band with text (about: looking ahead) */
.pub-photo-band { position: relative; overflow: hidden; border-top: var(--hair); border-bottom: var(--hair); }
.pub-photo-band__media { position: absolute; inset: 0; }
.pub-photo-band__media img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); opacity: 0.5; }
.pub-photo-band__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--bg) 10%, color-mix(in srgb, var(--bg) 55%, transparent) 65%, color-mix(in srgb, var(--bg) 25%, transparent)); }
.pub-photo-band__inner { position: relative; padding: var(--sp-9) 0; max-width: 40rem; }
.pub-photo-band__inner p { color: var(--ink); }

/* ---------- Note panel (Shanita's own words to job seekers) ---------- */
.pub-letter { border: 1px solid var(--line-strong); padding: var(--sp-6); display: grid; gap: var(--sp-3); background: var(--surface); }
.pub-letter p { margin: 0; }
.pub-letter__body { font-family: var(--font-display); font-size: var(--fs-xl); line-height: 1.3; }
.pub-letter__sign { font-family: var(--font-label); font-weight: 600; font-size: var(--fs-xs); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink-muted); }

/* ---------- Contact ---------- */
.pub-contact { display: grid; gap: var(--sp-7); padding-top: var(--sp-7); padding-bottom: var(--sp-8); }
@media (min-width: 1000px) { .pub-contact { grid-template-columns: 1fr 380px; align-items: start; } .pub-contact__aside { position: sticky; top: calc(var(--header-h) + var(--sp-5)); } }
.pub-contact__aside { display: grid; gap: var(--sp-5); }
.pub-reach { list-style: none; margin: 0; padding: 0; border-top: var(--hair); }
.pub-reach li { border-bottom: var(--hair); }
.pub-reach a, .pub-reach span.pub-reach__item { display: grid; grid-template-columns: 6.5rem 1fr; gap: var(--sp-3); align-items: baseline; min-height: 48px; padding: var(--sp-3) 0; text-decoration: none; }
.pub-reach a:hover .pub-reach__value { text-decoration: underline; }
.pub-reach__key { font-family: var(--font-label); font-weight: 600; font-size: var(--fs-xs); letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-muted); }
.pub-reach__value { overflow-wrap: anywhere; }
.pub-sent { border: 1px solid var(--line-strong); border-left: 3px solid var(--success); padding: var(--sp-6); display: grid; gap: var(--sp-4); background: var(--surface); }
.pub-sent h2 { font-size: var(--fs-xl); margin: 0; }
.pub-sent p { margin: 0; }
.pub-privacy-note { font-size: var(--fs-xs); color: var(--ink-subtle); margin: 0; }
.pub-privacy-note a { color: var(--ink-muted); }

/* ---------- Closing call to action (varies from the paper band) ---------- */
.pub-closing { padding: var(--sp-8) 0; border-top: var(--hair); }
.pub-closing__grid { display: grid; gap: var(--sp-5); align-items: end; }
@media (min-width: 900px) { .pub-closing__grid { grid-template-columns: minmax(0, 1fr) auto; } .pub-closing .cluster { justify-content: flex-end; max-width: 40rem; } }
.pub-closing h2 { margin: 0; }

/* Data saver: nothing decorative is rendered server-side; keep layouts tidy without it */
.lite .pub-human { grid-template-columns: 1fr; }

/* Display numerals: Cormorant defaults to old-style figures; prices read better lining */
.pub-price__amount, .pub-anchor, .pub-h1-lines, .pub-steps > li::before { font-variant-numeric: lining-nums; }
.pub-price .label { color: var(--paper-ink); }

/* FAQ with a side note */
.pub-faq-layout { display: grid; gap: var(--sp-6); }
@media (min-width: 1000px) { .pub-faq-layout { grid-template-columns: 1fr 320px; gap: var(--sp-8); align-items: start; } .pub-faq-layout__aside { position: sticky; top: calc(var(--header-h) + var(--sp-5)); } }
.pub-faq-layout__aside { border-top: 3px solid var(--ink); padding-top: var(--sp-4); display: grid; gap: var(--sp-3); }
.pub-faq-layout__aside h3 { margin: 0; }
.pub-faq-layout__aside p { margin: 0; color: var(--ink-muted); font-size: var(--fs-sm); }

/* Contact: quick routes as full-width tap rows */
.pub-routes li { padding: 0; }
.pub-routes a { display: flex; justify-content: space-between; align-items: center; gap: var(--sp-3); min-height: 48px; text-decoration: none; }
.pub-routes a::after { content: "\2192"; color: var(--ink-muted); }
.pub-routes a:hover { text-decoration: underline; }

/* ---------- Review fixes ---------- */
/* Home "Featured vacancies" on phones: badges, reference and closing date run full width under the
   title instead of squeezing into the 56px logo column (same treatment as the jobs catalogue). */
@media (max-width: 759px) {
  .job-list .job-row__side { grid-column: 1 / -1; }
}

/* Prices in the comparison table heading read better with lining figures */
.pub-compare thead th { font-variant-numeric: lining-nums; }

/* Links on the inverted paper surfaces: the default hairline underline is invisible on paper */
.pub-paper a, .pub-price a { text-decoration-color: currentColor; }
.pub-price a { color: var(--paper-ink); }

/* Contact "reach us" rows on narrow phones: a slimmer key column so the email address fits on one line */
@media (max-width: 419px) {
  .pub-reach a, .pub-reach span.pub-reach__item { grid-template-columns: 5.25rem 1fr; gap: var(--sp-2); }
  .pub-reach__value { font-size: var(--fs-sm); }
}

/* About, "How we look after your information": the privacy email address must not push the page
   wider than a 320px phone (grid tracks default to their content's minimum width) */
.pub-story { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .pub-story { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); } }
.pub-story .facts { grid-template-columns: minmax(7rem, 38%) minmax(0, 1fr); }
.pub-story .facts dd { overflow-wrap: anywhere; }

/* Contact: after sending (or on errors) the page opens at #contact-form; keep it clear of the sticky header */
#contact-form { scroll-margin-top: calc(var(--header-h) + var(--sp-4)); }
