/* =========================================================================
   Page head: one header for every template (parts/page-head.php).
   Direction A, "Working artefact", chosen 3 Nov 2026.
   Enqueued site-wide. Tokens from patterns.css.
   ========================================================================= */

.shq-head{ padding:40px 0 64px; border-bottom:1px solid var(--shq-rule); background:var(--shq-paper); }
.shq-head .shq-crumbs{ margin:0; }
.shq-head__grid{
  display:grid; grid-template-columns:minmax(0, 1.1fr) minmax(0, 1fr);
  gap:72px; align-items:center; margin-top:36px;
}
.shq-head--solo .shq-head__grid{ grid-template-columns:minmax(0, 1fr); }

.shq-head__title{
  font-family:var(--shq-display);
  font-size:clamp(2.125rem, 4.4vw, 3.5rem);
  font-weight:800; font-variation-settings:"wdth" 90;
  line-height:.98; letter-spacing:-.03em;
  max-width:16ch; text-wrap:balance; margin:0; color:var(--shq-ink);
}
.shq-head--solo .shq-head__title{ max-width:22ch; }
.shq-head__lede{ font-size:18px; line-height:1.55; color:var(--shq-ink-soft); max-width:46ch; margin:24px 0 0; }
.shq-head__acts{ display:flex; flex-wrap:wrap; gap:16px 28px; align-items:center; margin-top:30px; }

/* ---------- The artefact card ---------- */
.shq-art{
  margin:0; background:#fff; border:1px solid var(--shq-ink);
  box-shadow:0 18px 40px -18px rgba(12, 36, 34, .35), 0 2px 6px -2px rgba(12, 36, 34, .12);
  transform:rotate(-1.2deg);
}
.shq-art__bar{ display:flex; justify-content:space-between; gap:16px; padding:12px 18px; border-bottom:1px solid var(--shq-rule); color:var(--shq-graphite); font-size:11px; }
.shq-art__bar b{ color:var(--shq-ink); font-weight:500; }

.shq-art__title{ margin:0; padding:18px 18px 8px; font-family:var(--shq-display); font-weight:700; font-size:20px; letter-spacing:-.01em; color:var(--shq-ink); }
.shq-art__title span{ display:block; margin-top:4px; font-family:var(--shq-body); font-weight:400; font-size:14px; letter-spacing:0; color:var(--shq-graphite); }

.shq-art__list{ list-style:none; margin:8px 0 0; padding:0; }
.shq-art__list li{ display:grid; grid-template-columns:96px minmax(0, 1fr) 9px; gap:12px; align-items:center; padding:9px 18px; border-top:1px solid var(--shq-rule-soft); font-size:14px; color:var(--shq-ink); }
.shq-art__list .shq-mono{ font-size:11px; color:var(--shq-graphite); }
.shq-art__list i{ width:9px; height:9px; background:var(--shq-ink); }
.shq-art__list .is-ok i{ background:var(--shq-ink); }
.shq-art__list .is-run i,
.shq-art__list .is-fix i{ background:var(--shq-trace); }
.shq-art__list .is-wait{ color:var(--shq-graphite); }
.shq-art__list .is-wait i{ background:none; border:1px solid var(--shq-rule); }
.shq-art__foot{ display:flex; justify-content:space-between; gap:16px; margin:0; padding:12px 18px; border-top:1px solid var(--shq-ink); font-size:11px; color:var(--shq-graphite); }

.shq-art__proof{ padding:22px 18px 18px; border-bottom:1px solid var(--shq-rule-soft); }
.shq-art__figure{ display:block; font-family:var(--shq-data); font-size:clamp(2.25rem, 3.6vw, 3rem); line-height:1; letter-spacing:-.03em; color:var(--shq-trace); font-variant-numeric:tabular-nums lining-nums; }
.shq-art__outcome{ display:block; margin-top:10px; font-size:15px; line-height:1.45; color:var(--shq-ink); max-width:36ch; }
.shq-art__rows{ margin:0; }
.shq-art__rows div{ display:grid; grid-template-columns:96px minmax(0, 1fr); gap:12px; padding:11px 18px; border-top:1px solid var(--shq-rule-soft); }
.shq-art__rows div:first-child{ border-top:0; }
.shq-art__rows dt{ font-size:11px; color:var(--shq-graphite); padding-top:3px; }
.shq-art__rows dd{ margin:0; font-size:14px; line-height:1.5; color:var(--shq-ink); }

/* ---------- Guide checklist ---------- */
.shq-art-check{ border-left:2px solid var(--shq-trace); padding:6px 0 6px 28px; }
.shq-art-check__quote{ font-family:var(--shq-display); font-size:clamp(1.5rem, 2.4vw, 2rem); line-height:1.15; font-weight:700; letter-spacing:-.02em; margin:0 0 18px; color:var(--shq-ink); text-wrap:balance; }
.shq-art-check__h{ margin:0 0 6px; font-size:11px; color:var(--shq-graphite); }
.shq-art-check ol{ margin:0; padding:0 0 0 18px; color:var(--shq-ink-soft); line-height:1.8; }

.screen-reader-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }

/* ---------- Entrance: the card settles once on load (shq-motion: rare, delight, 420ms) ---------- */
.shq-art{ transition:transform 420ms var(--shq-ease), opacity 420ms var(--shq-ease); }
@starting-style{
  .shq-art{ opacity:0; transform:rotate(-1.2deg) translateY(12px); }
}

@media (max-width:900px){
  .shq-head{ padding:32px 0 48px; }
  .shq-head__grid{ grid-template-columns:minmax(0, 1fr); gap:44px; margin-top:28px; }
  .shq-art{ transform:none; }
  @starting-style{ .shq-art{ opacity:0; transform:translateY(12px); } }
}
@media (prefers-reduced-motion: reduce){
  .shq-art{ transition:none; }
}

/* ---------- Content pages: meta line, tight follow-on section ---------- */
.shq-head__meta{ margin:22px 0 0; font-size:12px; color:var(--shq-graphite); }
.shq-head__meta a{ color:inherit; }
.shq-head + .shq-content,
.shq-head + .shq-s--tight{ padding-top:40px; }
.shq-s--tight{ padding-bottom:0; }
.shq-aside__label{ color:var(--shq-graphite); }

/* ---------- Related and next step (setpoint_ia_footer_links), site-wide ---------- */
.shq-ia-foot{ padding:64px 0; border-top:1px solid var(--shq-rule); }
.shq-ia-foot > .shq-wrap{ display:grid; grid-template-columns:minmax(0, 2fr) minmax(0, 1fr); gap:48px; align-items:start; }
.shq-ia-foot h2{ margin:0 0 12px; font-size:12px; letter-spacing:.06em; text-transform:uppercase; font-weight:500; color:var(--shq-graphite); }
.shq-ia-related ul{ list-style:none; margin:0; padding:0; }
.shq-ia-related li{ border-bottom:1px solid var(--shq-rule-soft); }
.shq-ia-related a{ display:block; padding:12px 0; color:var(--shq-ink); text-decoration:none; }
.shq-ia-stages{ grid-column:1 / -1; display:flex; justify-content:space-between; gap:24px; border-bottom:1px solid var(--shq-rule); padding-bottom:20px; }
.shq-ia-stages a{ color:var(--shq-ink); text-decoration:none; }
.shq-ia-stages .shq-mono{ display:block; color:var(--shq-graphite); font-size:11px; margin-bottom:4px; }
.shq-ia-next-stage{ text-align:right; }

@media (hover: hover) and (pointer: fine){
  .shq-ia-related a,
  .shq-ia-stages a{ transition:color 170ms ease; }
  .shq-ia-related a:hover,
  .shq-ia-stages a:hover{ color:var(--shq-trace); }
}
@media (max-width:900px){
  .shq-ia-foot > .shq-wrap{ grid-template-columns:minmax(0, 1fr); gap:28px; }
}

/* Articles: the page head already shows the section and date, so the old
   in-body kicker line is redundant. */
.shq-article-body .shq-kick{ display:none; }

/* ---------- Plain tables in content (merged sections, 5 Nov 2026) ----------
   Only tables without their own class, so page-scoped designs keep theirs. */
.shq-prose table:not([class]){ width:100%; max-width:960px; margin:28px 0; border-collapse:collapse; font-size:15px; line-height:1.5; }
.shq-prose table:not([class]) th,
.shq-prose table:not([class]) td{ padding:12px 14px; text-align:left; vertical-align:top; border-bottom:1px solid var(--shq-rule); }
.shq-prose table:not([class]) thead th{ font-family:var(--shq-data); font-size:11px; font-weight:400; letter-spacing:.06em; text-transform:uppercase; color:var(--shq-graphite); border-bottom:2px solid var(--shq-ink); }
.shq-prose table:not([class]) tbody th{ font-weight:600; color:var(--shq-ink); }
@media (max-width:700px){
  .shq-prose table:not([class]){ display:block; overflow-x:auto; }
}

/* Merged sections on the AI visibility pillar keep a readable measure. */
#self-check .container > p, #self-check .container > ol,
#chatgpt .container > p, #chatgpt .container > ul,
#careers-site .container > p, #careers-site .container > ul{ max-width:68ch; }

/* ---------- FAQ accordion: hub service pages and guides (5 Nov 2026) ----------
   Native <details>, so it works without JavaScript and each answer stays in
   the HTML for crawlers. No open/close animation: tens of uses a day per
   reader, and the content jump is the feedback (shq-motion gate 1). */
.shq-faq-s{ padding:80px 0 76px; border-top:1px solid var(--shq-rule); }
.shq-faq-s .shq-faq,
.shq-guide .shq-faq{ max-width:820px; margin-top:32px; border-top:1px solid var(--shq-ink); }
.shq-guide .shq-faq{ margin:24px 0 32px; }
.shq-faq__item{ border-bottom:1px solid var(--shq-rule); }
.shq-faq__item summary{
  display:flex; justify-content:space-between; align-items:baseline; gap:24px;
  padding:20px 0; cursor:pointer; list-style:none;
  font-family:var(--shq-display); font-weight:700; font-size:19px; line-height:1.3; letter-spacing:-.01em; color:var(--shq-ink);
}
.shq-faq__item summary::-webkit-details-marker{ display:none; }
.shq-faq__item summary::after{ content:"+"; flex:none; font-family:var(--shq-data); font-weight:400; font-size:20px; color:var(--shq-trace); }
.shq-faq__item[open] summary::after{ content:"\2212"; }
.shq-faq__item summary:focus-visible{ outline:2px solid var(--shq-trace); outline-offset:4px; }
.shq-faq__a{ padding:0 0 22px; max-width:68ch; }
.shq-faq__a p{ margin:0; font-size:17px; line-height:1.6; color:var(--shq-ink-soft); }
@media (hover: hover) and (pointer: fine){
  .shq-faq__item summary{ transition:color 170ms ease; }
  .shq-faq__item summary:hover{ color:var(--shq-trace); }
}

/* ---------- Guide components inside .shq-prose (5 Nov 2026) ----------
   The new guides use these classes instead of shipping their own <style>
   block, so their CSS is cached once for the whole site. */
.shq-guide .shq-answer{
  margin:0 0 32px; padding:20px 24px; border-left:2px solid var(--shq-trace); background:var(--shq-paper-2);
  font-size:19px; line-height:1.55; color:var(--shq-ink);
}
.shq-guide .shq-answer p{ margin:0; }
.shq-guide .shq-callout{ margin:28px 0; padding:20px 24px; border:1px solid var(--shq-rule); background:#fff; }
.shq-guide .shq-callout > :last-child{ margin-bottom:0; }
.shq-guide .shq-callout__h{ margin:0 0 8px; font-family:var(--shq-data); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--shq-graphite); }
.shq-guide ol.shq-steps{ padding-left:0; list-style:none; counter-reset:shq-step; }
.shq-guide ol.shq-steps > li{ position:relative; padding:0 0 0 44px; margin:0 0 18px; counter-increment:shq-step; }
.shq-guide ol.shq-steps > li::before{
  content:counter(shq-step, decimal-leading-zero); position:absolute; left:0; top:2px;
  font-family:var(--shq-data); font-size:13px; color:var(--shq-trace);
}
.shq-guide .shq-src{ margin-top:40px; font-size:14px; color:var(--shq-graphite); }
.shq-guide .shq-src a{ color:inherit; }
