/* ==========================================================================
   Safety Center: hub (/safety/), sub-pages (_layouts/safety-page.html),
   practice checks (_includes/safety-check.html), contacts (_includes/contact.html).
   Light editorial, modelled on the course .chero hero. Teal accent.
   Everything is prefixed sc- so it cannot collide with main.css.
   ========================================================================== */

:root {
  --sc-accent: #0f766e;
  --sc-accent-deep: #115e59;
  --sc-accent-wash: #eef6f5;
  --sc-ink: #1f2937;
  --sc-ink-2: #3f4a5a;
  --sc-muted: #5b6575;
  --sc-paper: #fdfdfc;
  --sc-card: #ffffff;
  --sc-line: #e4e6e9;
  --sc-line-strong: rgba(15, 23, 42, 0.16);
  --sc-best: #115e59;
  --sc-ok: #92400e;
  --sc-wrong: #9f1239;
  --sc-serif: 'Source Serif 4', Georgia, 'Times New Roman', serif;
  --sc-sans: 'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --sc-mono: 'Source Code Pro', ui-monospace, SFMono-Regular, Menlo, monospace;
  --sc-system: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --sc-gutter: 16px;
}

@media (min-width: 768px) {
  :root { --sc-gutter: 24px; }
}

/* --- Shared pieces -------------------------------------------------------- */

.sc-kicker,
.sc-eyebrow,
.sc-mast__eyebrow {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-family: var(--sc-mono);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--sc-accent);
  margin: 0 0 1rem;
}

.sc-kicker::before,
.sc-eyebrow::before,
.sc-mast__eyebrow::before {
  content: '';
  width: 22px;
  height: 2px;
  background: var(--sc-accent);
  flex-shrink: 0;
}

.sc-fine {
  font-family: var(--sc-mono);
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  line-height: 1.6;
  color: var(--sc-muted);
  margin: 0;
}

.sc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0.5rem 1.1rem;
  font-family: var(--sc-sans);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--sc-ink);
  background: var(--sc-card);
  border: 1px solid var(--sc-line-strong);
  border-radius: 8px;
  cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease, background-color 0.15s ease;
}

.sc-btn[hidden] { display: none; }

.sc-btn:hover {
  border-color: var(--sc-accent);
  color: var(--sc-accent-deep);
}

.sc-btn.is-done {
  background: var(--sc-accent-wash);
  border-color: var(--sc-accent);
  color: var(--sc-accent-deep);
}

.sc-btn--small {
  padding: 0.4rem 0.85rem;
  font-size: 0.9375rem;
}

.sc-page a:focus-visible,
.sc-hub a:focus-visible,
.sc-mast a:focus-visible,
.sc-btn:focus-visible,
.sc-opt__btn:focus-visible,
.sc-check__answers summary:focus-visible,
[data-safety-exit]:focus-visible {
  outline: 3px solid var(--sc-accent);
  outline-offset: 2px;
  border-radius: 4px;
}

.sc-tel {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* ==========================================================================
   Hub /safety/
   ========================================================================== */

.sc-mast {
  position: relative;
  background:
    radial-gradient(ellipse 55% 70% at 82% 0%, rgba(15, 118, 110, 0.08) 0%, transparent 70%),
    var(--sc-paper);
  color: var(--sc-ink);
  overflow: hidden;
  border-top: 3px solid var(--sc-accent);
  border-bottom: 1px solid var(--sc-line);
}

.sc-mast::before,
.sc-head::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(15, 23, 42, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15, 23, 42, 0.045) 1px, transparent 1px);
  background-size: 46px 46px;
  -webkit-mask-image: radial-gradient(ellipse 95% 95% at 50% 0%, #000 25%, transparent 100%);
  mask-image: radial-gradient(ellipse 95% 95% at 50% 0%, #000 25%, transparent 100%);
  pointer-events: none;
}

.sc-mast__inner {
  position: relative;
  max-width: 1100px;
  margin: 0 auto;
  padding: 1.5rem var(--sc-gutter) 1.4rem;
}

.sc-mast__eyebrow {
  margin-bottom: 0.6rem;
}

.sc-mast__title {
  font-family: var(--sc-serif);
  font-size: clamp(2.4rem, 7vw, 4rem);
  font-weight: 700;
  line-height: 1.04;
  letter-spacing: -0.015em;
  color: var(--sc-ink);
  margin: 0 0 0.6rem;
}

.sc-mast__title em {
  font-style: italic;
  color: var(--sc-accent);
}

.sc-mast__lede {
  font-size: 1.0625rem;
  line-height: 1.55;
  color: #475569;
  max-width: 52ch;
  margin: 0;
}

@media (min-width: 768px) {
  .sc-mast__inner {
    padding: 3rem var(--sc-gutter) 2.5rem;
  }
  .sc-mast__eyebrow { margin-bottom: 1.1rem; }
  .sc-mast__title { margin-bottom: 1.1rem; }
  .sc-mast__lede {
    font-size: 1.1875rem;
    line-height: 1.65;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .sc-mast__eyebrow,
  .sc-mast__title,
  .sc-mast__lede {
    animation: sc-rise 0.6s cubic-bezier(0.22, 1, 0.36, 1) backwards;
  }
  .sc-mast__title { animation-delay: 0.06s; }
  .sc-mast__lede  { animation-delay: 0.12s; }
}

@keyframes sc-rise {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: none; }
}

.sc-hub {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 var(--sc-gutter) 4rem;
  font-family: var(--sc-sans);
  color: var(--sc-ink);
}

.sc-hub h2,
.sc-hub h3 {
  color: var(--sc-ink);
}

/* --- Triage desk ---------------------------------------------------------- */

.sc-desk {
  display: grid;
  gap: 2rem;
  padding-top: 0.25rem;
}

@media (min-width: 960px) {
  .sc-desk {
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 3rem;
    align-items: start;
    padding-top: 2rem;
  }
}

.sc-triage__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.sc-triage__list li {
  border-bottom: 1px solid var(--sc-line-strong);
}

.sc-row {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 20px;
  column-gap: 0.75rem;
  align-items: center;
  min-height: 64px;
  padding: 0.8rem 0.25rem 0.85rem 0;
  color: var(--sc-ink);
  text-decoration: none;
  transition: background-color 0.15s ease, padding 0.15s ease;
}

.sc-row::after {
  content: '';
  grid-column: 2;
  grid-row: 1 / span 2;
  justify-self: center;
  width: 9px;
  height: 9px;
  border-top: 2px solid var(--sc-muted);
  border-right: 2px solid var(--sc-muted);
  transform: rotate(45deg);
  transition: border-color 0.15s ease, transform 0.15s ease;
}

.sc-row__title {
  grid-column: 1;
  font-family: var(--sc-serif);
  font-size: 1.1875rem;
  font-weight: 600;
  line-height: 1.28;
  color: var(--sc-ink);
}

.sc-row__move {
  grid-column: 1;
  margin-top: 0.2rem;
  font-size: 0.9375rem;
  line-height: 1.45;
  color: var(--sc-muted);
}

.sc-row:hover {
  background: var(--sc-accent-wash);
  color: var(--sc-ink);
}

.sc-row:hover .sc-row__title {
  color: var(--sc-accent-deep);
}

.sc-row:hover::after {
  border-color: var(--sc-accent);
  transform: translateX(2px) rotate(45deg);
}

@media (min-width: 768px) {
  .sc-triage__list {
    border-top: 1px solid var(--sc-line-strong);
  }
  .sc-row {
    min-height: 76px;
    padding: 1.05rem 0.75rem 1.1rem 1rem;
    box-shadow: inset 0 0 0 0 var(--sc-accent);
    transition: background-color 0.15s ease, box-shadow 0.15s ease;
  }
  .sc-row:hover,
  .sc-row:focus-visible {
    box-shadow: inset 3px 0 0 0 var(--sc-accent);
  }
  .sc-row__title { font-size: 1.375rem; }
  .sc-row__move { font-size: 1rem; }
}

.sc-triage__more {
  display: flex;
  flex-wrap: wrap;
  gap: 0 1.75rem;
  margin: 0.5rem 0 0;
}

.sc-triage__more a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--sc-accent);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.sc-triage__more a:hover {
  color: var(--sc-accent-deep);
}

/* --- Talk to a person ----------------------------------------------------- */

.sc-people {
  background: var(--sc-card);
  border: 1px solid var(--sc-line);
  border-top: 3px solid var(--sc-accent);
  border-radius: 4px 4px 10px 10px;
  padding: 1.25rem 1.25rem 1rem;
}

@media (min-width: 960px) {
  .sc-people {
    position: sticky;
    top: 96px;
  }
}

.sc-people__title {
  font-family: var(--sc-serif);
  font-size: 1.375rem;
  font-weight: 700;
  margin: 0 0 0.25rem;
}

.sc-people__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.sc-people__list > li {
  padding: 0.9rem 0;
  border-bottom: 1px solid var(--sc-line);
}

.sc-people__list > li:last-child {
  border-bottom: 0;
}

.sc-people__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.25rem 1rem;
  margin: 0;
  padding-top: 0.75rem;
  border-top: 1px solid var(--sc-line);
  font-family: var(--sc-mono);
  font-size: 0.75rem;
  color: var(--sc-muted);
}

.sc-people__foot a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-family: var(--sc-sans);
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--sc-accent);
}

/* Contact block (also used inside page bodies) */

.sc-contact p {
  margin: 0;
}

.sc-contact__name {
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.35;
  color: var(--sc-ink);
}

.sc-contact__number .sc-tel,
.sc-contact__number a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 1.375rem;
  font-weight: 700;
  color: var(--sc-accent);
  text-decoration: none;
}

.sc-contact__number a:hover {
  color: var(--sc-accent-deep);
  text-decoration: underline;
}

.sc-contact__hours,
.sc-contact__who {
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--sc-ink-2);
}

.sc-contact--911 .sc-tel {
  font-weight: 700;
  color: var(--sc-ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* A contact block placed inside a page body gets a frame */
.sc-body .sc-contact {
  margin: 1.25rem 0;
  padding: 0.9rem 1.1rem;
  background: var(--sc-card);
  border: 1px solid var(--sc-line);
  border-left: 3px solid var(--sc-accent);
  border-radius: 4px 8px 8px 4px;
}

.sc-body .sc-contact p {
  margin: 0;
  font-size: 1rem;
}

.sc-body .sc-contact .sc-contact__number a {
  font-size: 1.375rem;
  text-decoration: none;
}

/* --- Field Manual --------------------------------------------------------- */

.sc-manual {
  margin-top: 3.5rem;
}

@media (min-width: 768px) {
  .sc-manual { margin-top: 5rem; }
}

.sc-manual__head {
  margin-bottom: 1.5rem;
}

.sc-manual__title {
  font-family: var(--sc-serif);
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -0.01em;
  margin: 0;
}

.sc-group {
  padding: 1.5rem 0 1.75rem;
  border-top: 1px solid var(--sc-line-strong);
  scroll-margin-top: 90px;
}

@media (min-width: 900px) {
  .sc-group {
    display: grid;
    grid-template-columns: 19rem minmax(0, 1fr);
    gap: 3rem;
    padding: 2rem 0 2.25rem;
  }
}

.sc-group__title {
  font-family: var(--sc-serif);
  font-size: 1.3125rem;
  font-weight: 700;
  line-height: 1.25;
  margin: 0 0 0.4rem;
}

.sc-group__blurb {
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--sc-muted);
  margin: 0 0 0.75rem;
}

.sc-group__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.sc-group__list li {
  padding: 0.7rem 0;
  border-bottom: 1px solid var(--sc-line);
}

.sc-group__list li:first-child {
  padding-top: 0;
}

.sc-group__list li:last-child {
  border-bottom: 0;
}

.sc-group__list a {
  display: inline-block;
  padding: 0.2rem 0;
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--sc-ink);
  text-decoration: underline;
  text-decoration-color: rgba(15, 118, 110, 0.35);
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.sc-group__list a:hover {
  color: var(--sc-accent-deep);
  text-decoration-color: var(--sc-accent);
}

.sc-group__rule {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--sc-muted);
}

/* --- Practice strip ------------------------------------------------------- */

.sc-drills {
  margin-top: 3rem;
  padding-top: 1.75rem;
  border-top: 1px solid var(--sc-line-strong);
}

.sc-drills__title {
  font-family: var(--sc-serif);
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0 0 1rem;
}

.sc-drills__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1.25rem;
}

@media (min-width: 768px) {
  .sc-drills__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2rem;
  }
}

.sc-drills__list a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--sc-accent);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.sc-drills__list a:hover {
  color: var(--sc-accent-deep);
}

.sc-drills__list span {
  display: block;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--sc-ink-2);
}

.sc-fine--hub {
  margin-top: 3rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--sc-line);
}

/* ==========================================================================
   Sub-page (_layouts/safety-page.html)
   ========================================================================== */

.sc-page {
  font-family: var(--sc-sans);
  color: var(--sc-ink);
  padding-bottom: 4rem;
}

.sc-head {
  position: relative;
  background:
    radial-gradient(ellipse 55% 70% at 82% 0%, rgba(15, 118, 110, 0.07) 0%, transparent 70%),
    var(--sc-paper);
  border-top: 3px solid var(--sc-accent);
  border-bottom: 1px solid var(--sc-line);
  overflow: hidden;
}

.sc-head__inner,
.sc-wrap {
  position: relative;
  max-width: calc(46rem + 2 * var(--sc-gutter));
  margin: 0 auto;
  padding-left: var(--sc-gutter);
  padding-right: var(--sc-gutter);
}

.sc-head__inner {
  padding-top: 1.25rem;
  padding-bottom: 1.5rem;
}

@media (min-width: 768px) {
  .sc-head__inner {
    padding-top: 2rem;
    padding-bottom: 2.25rem;
  }
}

.sc-crumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 0.45rem;
  font-family: var(--sc-mono);
  font-size: 0.75rem;
  letter-spacing: 0.03em;
  color: var(--sc-muted);
  margin-bottom: 1.25rem;
}

.sc-crumb a {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  color: var(--sc-muted);
  text-decoration: underline;
  text-decoration-color: rgba(91, 101, 117, 0.35);
  text-underline-offset: 3px;
}

.sc-crumb a:hover {
  color: var(--sc-ink);
}

.sc-crumb__sep {
  opacity: 0.6;
}

@media (min-width: 768px) {
  .sc-crumb { margin-bottom: 1.75rem; }
}

.sc-eyebrow {
  margin-bottom: 0.75rem;
  line-height: 1.4;
}

.sc-title {
  font-family: var(--sc-serif);
  font-size: clamp(2rem, 5.2vw, 3rem);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -0.012em;
  color: var(--sc-ink);
  margin: 0 0 1.1rem;
  max-width: 22ch;
}

.sc-rule {
  margin: 0 0 1.25rem;
  padding: 0.1rem 0 0.1rem 1rem;
  border-left: 3px solid var(--sc-accent);
  font-size: 1.1875rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--sc-ink);
  max-width: 40em;
}

@media (min-width: 768px) {
  .sc-rule { font-size: 1.3125rem; }
}

.sc-lede {
  margin: 0 0 1.25rem;
  font-size: 1.125rem;
  line-height: 1.6;
  color: #475569;
  max-width: 60ch;
}

.sc-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.25rem 1.5rem;
}

.sc-meta__facts {
  display: flex;
  flex-wrap: wrap;
  margin: 0;
  font-family: var(--sc-mono);
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  line-height: 1.7;
  color: var(--sc-muted);
}

.sc-meta__facts > span + span::before {
  content: '\00b7';
  margin: 0 0.5rem;
}

.sc-meta__facts a {
  color: var(--sc-muted);
  text-decoration: underline;
  text-decoration-color: rgba(91, 101, 117, 0.35);
  text-underline-offset: 3px;
}

.sc-meta__practice {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 44px;
  font-family: var(--sc-mono);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--sc-accent);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.sc-meta__practice:hover {
  color: var(--sc-accent-deep);
}

/* --- What to say ---------------------------------------------------------- */

.sc-say {
  margin: 2rem 0 0;
  padding: 1.1rem 1.1rem 0.6rem;
  background: var(--sc-accent-wash);
  border-radius: 10px;
}

@media (min-width: 768px) {
  .sc-say { padding: 1.4rem 1.5rem 0.8rem; }
}

.sc-say__title {
  font-family: var(--sc-mono);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--sc-accent-deep);
  margin: 0 0 0.5rem;
}

.sc-say__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.sc-say__item {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  padding: 0.75rem 0 0.9rem;
  border-top: 1px solid rgba(15, 118, 110, 0.18);
}

.sc-say__item:first-child {
  border-top: 0;
}

.sc-say__script {
  flex: 1 1 18rem;
  margin: 0;
  font-family: var(--sc-serif);
  font-size: 1.1875rem;
  line-height: 1.5;
  color: var(--sc-ink);
}

.sc-say__script::before { content: '\201C'; }
.sc-say__script::after { content: '\201D'; }

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

.sc-body {
  margin-top: 2rem;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--sc-ink);
}

@media (min-width: 768px) {
  .sc-body { font-size: 1.125rem; }
}

.sc-body > * {
  max-width: 68ch;
}

.sc-body > .sc-practice,
.sc-body > table,
.sc-body > div {
  max-width: none;
}

.sc-body p {
  margin: 0 0 1.1em;
}

.sc-body h2 {
  font-family: var(--sc-serif);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.22;
  margin: 2.5rem 0 0.9rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--sc-line-strong);
}

@media (min-width: 768px) {
  .sc-body h2 { font-size: 1.75rem; }
}

.sc-body h3 {
  font-family: var(--sc-sans);
  font-size: 1.1875rem;
  font-weight: 700;
  line-height: 1.35;
  margin: 1.75rem 0 0.5rem;
}

.sc-body h4 {
  font-family: var(--sc-sans);
  font-size: 1.0625rem;
  font-weight: 700;
  margin: 1.5rem 0 0.4rem;
}

.sc-body ul,
.sc-body ol {
  margin: 0 0 1.2em;
  padding-left: 1.35em;
}

.sc-body ul { list-style: disc; }
.sc-body ol { list-style: decimal; }

.sc-body li {
  margin: 0.35em 0;
  padding-left: 0.15em;
}

.sc-body li > ul,
.sc-body li > ol {
  margin: 0.35em 0 0.35em;
}

.sc-body a {
  color: var(--sc-accent);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.sc-body a:hover {
  color: var(--sc-accent-deep);
}

.sc-body strong {
  font-weight: 700;
  color: var(--sc-ink);
}

.sc-body code {
  font-family: var(--sc-mono);
  font-size: 0.88em;
  background: rgba(15, 23, 42, 0.06);
  padding: 0.1em 0.35em;
  border-radius: 4px;
}

.sc-body hr {
  border: 0;
  border-top: 1px solid var(--sc-line);
  margin: 2rem 0;
}

.sc-body blockquote {
  margin: 1.25rem 0;
  padding: 0.1rem 0 0.1rem 1rem;
  border-left: 3px solid var(--sc-line-strong);
  color: var(--sc-ink-2);
}

.sc-body blockquote p:last-child {
  margin-bottom: 0;
}

.sc-body table {
  display: block;
  overflow-x: auto;
  width: 100%;
  margin: 1.25rem 0 1.5rem;
  border-collapse: collapse;
  font-size: 0.9375rem;
  line-height: 1.5;
}

.sc-body th,
.sc-body td {
  padding: 0.6rem 0.75rem;
  border-bottom: 1px solid var(--sc-line);
  text-align: left;
  vertical-align: top;
}

.sc-body th {
  font-weight: 700;
  border-bottom-color: var(--sc-line-strong);
}

/* --- Sources, related, footer -------------------------------------------- */

.sc-sources,
.sc-related,
.sc-foot {
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--sc-line-strong);
}

.sc-end__title {
  font-family: var(--sc-serif);
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0 0 0.75rem;
}

.sc-sources__list {
  list-style: decimal;
  margin: 0;
  padding-left: 1.5em;
  font-size: 0.9375rem;
  line-height: 1.55;
}

.sc-sources__list li {
  margin: 0.45rem 0;
  padding-left: 0.2em;
}

.sc-sources__pub {
  font-weight: 700;
  margin-right: 0.4rem;
}

.sc-sources__list a,
.sc-related__list a {
  color: var(--sc-accent);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
}

.sc-sources__checked {
  margin: 0.9rem 0 0;
  font-family: var(--sc-mono);
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  color: var(--sc-muted);
}

.sc-related__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.sc-related__list li {
  padding: 0.6rem 0;
  border-bottom: 1px solid var(--sc-line);
}

.sc-related__list li:last-child {
  border-bottom: 0;
}

.sc-related__list a {
  font-size: 1.0625rem;
  font-weight: 600;
}

.sc-related__rule {
  display: block;
  margin-top: 0.1rem;
  font-size: 0.9375rem;
  color: var(--sc-muted);
}

.sc-foot__label {
  font-family: var(--sc-serif);
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0 0 0.5rem;
}

.sc-foot__people {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.75rem;
}

@media (min-width: 640px) {
  .sc-foot__people {
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
  }
}

.sc-foot__people li {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.sc-foot__name {
  font-weight: 600;
  font-size: 0.9375rem;
  color: var(--sc-ink);
}

.sc-foot__people .sc-tel {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--sc-accent);
  text-decoration: none;
}

.sc-foot__people .sc-tel:hover {
  text-decoration: underline;
}

.sc-foot__hours {
  font-size: 0.875rem;
  color: var(--sc-muted);
}

.sc-foot__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 1.5rem 0 1.25rem;
}

/* --- Numbers page (/safety/numbers/) ------------------------------------- */

.sc-numbers__jump {
  margin: 0 0 0.5rem;
  font-size: 0.9375rem;
  line-height: 1.9;
  color: var(--sc-muted);
}

.sc-numbers__jump a {
  white-space: nowrap;
}

.sc-numbers__note {
  margin: 0 0 1rem;
  color: var(--sc-ink-2);
}

.sc-body .sc-numbers .sc-contact__name {
  margin: 0;
  font-family: var(--sc-sans);
  font-size: 1.0625rem;
  line-height: 1.35;
}

.sc-numbers__facts {
  margin: 0.6rem 0 0;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--sc-ink-2);
}

.sc-numbers__facts > div {
  display: flex;
  gap: 0.75rem;
  padding: 0.3rem 0;
  border-top: 1px solid var(--sc-line);
}

.sc-numbers__facts dt {
  flex: 0 0 5.75rem;
  color: var(--sc-muted);
}

.sc-numbers__facts dd {
  margin: 0;
  min-width: 0;
  overflow-wrap: anywhere;
}

/* --- "How did you pay?" chooser (/safety/paid/) -------------------------- */

.sc-body .sc-paid ul {
  list-style: none;
  margin: 0 0 0.5rem;
  padding: 0;
  border-top: 1px solid var(--sc-line-strong);
}

.sc-body .sc-paid li {
  margin: 0;
  padding: 0;
}

.sc-body .sc-paid a.sc-row {
  color: var(--sc-ink);
  text-decoration: none;
}

/* ==========================================================================
   Practice checks
   ========================================================================== */

.sc-practice {
  margin: 1.5rem 0 2rem;
  scroll-margin-top: 90px;
}

.sc-check {
  padding: 1.5rem 0 1.75rem;
  border-bottom: 1px solid var(--sc-line);
}

.sc-check:first-child {
  padding-top: 0.5rem;
}

.sc-check:last-child {
  border-bottom: 0;
}

.sc-check__setup {
  margin: 0 0 0.9rem;
  font-family: var(--sc-mono);
  font-size: 0.8125rem;
  letter-spacing: 0.02em;
  color: var(--sc-muted);
}

.sc-check__ask {
  margin-top: 1.25rem;
}

.sc-check__q {
  margin: 0 0 0.75rem;
  font-family: var(--sc-serif);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--sc-ink);
}

.sc-check__options {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.6rem;
}

.sc-body .sc-check__options {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* Without JS the options are a plain list; the answers live in <details>. */
.sc-opt,
.sc-body .sc-opt {
  margin: 0;
  padding: 0;
}

.sc-check:not(.is-ready) .sc-opt {
  padding: 0.7rem 1rem;
  border: 1px solid var(--sc-line);
  border-radius: 8px;
  background: var(--sc-card);
  font-size: 1rem;
  line-height: 1.45;
}

.sc-opt__btn {
  display: block;
  width: 100%;
  min-height: 48px;
  padding: 0.75rem 1rem;
  font-family: var(--sc-sans);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
  text-align: left;
  color: var(--sc-ink);
  background: var(--sc-card);
  border: 1px solid var(--sc-line-strong);
  border-radius: 8px;
  cursor: pointer;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

.sc-opt__btn:hover {
  border-color: var(--sc-accent);
  background: #f7fbfa;
}

.sc-check.is-revealed .sc-opt__btn {
  cursor: default;
  background: var(--sc-card);
  border-color: var(--sc-line);
}

.sc-check.is-revealed .sc-opt.is-picked .sc-opt__btn {
  border: 2px solid var(--sc-ink);
  padding: calc(0.75rem - 1px) calc(1rem - 1px);
}

.sc-opt__reveal {
  padding: 0.5rem 1rem 0.25rem 1rem;
  border-left: 3px solid var(--sc-line-strong);
  margin: 0.4rem 0 0.35rem 0.75rem;
}

.sc-opt__reveal p {
  margin: 0;
  font-size: 0.9688rem;
  line-height: 1.55;
}

.sc-opt__verdict {
  font-weight: 700;
}

.sc-opt__why {
  color: var(--sc-ink-2);
}

.sc-opt--best .sc-opt__reveal { border-left-color: var(--sc-best); }
.sc-opt--best .sc-opt__verdict { color: var(--sc-best); }
.sc-opt--ok .sc-opt__reveal { border-left-color: #d97706; }
.sc-opt--ok .sc-opt__verdict { color: var(--sc-ok); }
.sc-opt--wrong .sc-opt__reveal { border-left-color: #be123c; }
.sc-opt--wrong .sc-opt__verdict { color: var(--sc-wrong); }

.sc-check__takeaway {
  margin: 1.1rem 0 0;
  padding: 0.9rem 1.1rem;
  background: var(--sc-accent-wash);
  border-radius: 8px;
  font-family: var(--sc-serif);
  font-size: 1.125rem;
  line-height: 1.5;
  color: var(--sc-ink);
}

/* Screen-reader announcement only */
.sc-check__status {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.sc-check__answers {
  margin-top: 0.9rem;
}

.sc-check__answers[hidden] {
  display: none;
}

.sc-check__answers summary {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-weight: 600;
  color: var(--sc-accent);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.sc-key,
.sc-body .sc-key {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0;
}

.sc-key__item,
.sc-body .sc-key__item {
  margin: 0 0 0.75rem;
  padding-left: 0.9rem;
  border-left: 3px solid var(--sc-line-strong);
  font-size: 0.9688rem;
  line-height: 1.55;
}

.sc-key__verdict {
  display: block;
  font-weight: 700;
}

.sc-key__opt {
  display: block;
  font-weight: 600;
}

.sc-key__why {
  display: block;
  color: var(--sc-ink-2);
}

.sc-key__item--best { border-left-color: var(--sc-best); }
.sc-key__item--best .sc-key__verdict { color: var(--sc-best); }
.sc-key__item--ok { border-left-color: #d97706; }
.sc-key__item--ok .sc-key__verdict { color: var(--sc-ok); }
.sc-key__item--wrong { border-left-color: #be123c; }
.sc-key__item--wrong .sc-key__verdict { color: var(--sc-wrong); }

/* ==========================================================================
   Mocks: faithful to the real interface, never hinting at the answer.
   ========================================================================== */

.sc-mock {
  margin: 0;
  font-family: var(--sc-system);
  line-height: 1.4;
}

.sc-mock p {
  margin: 0;
}

.sc-body .sc-mock p {
  margin: 0;
  max-width: none;
}

/* --- SMS (iOS Messages) --- */

.sc-sms,
.sc-chat {
  max-width: 360px;
  border: 1px solid #d5d8dd;
  border-radius: 22px;
  overflow: hidden;
  background: #ffffff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}

.sc-sms__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 12px 16px 8px;
  background: #f6f6f7;
  border-bottom: 1px solid #e3e3e6;
}

.sc-sms__avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 38%, #ffffff 0 7px, transparent 7.5px),
    radial-gradient(ellipse 13px 9px at 50% 92%, #ffffff 0 99%, transparent 100%),
    linear-gradient(180deg, #a8adb7, #868c97);
}

.sc-sms__from {
  font-size: 0.75rem;
  color: #1c1c1e;
  overflow-wrap: anywhere;
  text-align: center;
}

.sc-sms__thread {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px 12px 16px;
}

.sc-sms__stamp,
.sc-chat__stamp {
  align-self: center;
  margin: 0 0 6px !important;
  font-size: 0.6875rem;
  line-height: 1.35;
  text-align: center;
  color: #6e6e73;
}

.sc-sms__bubble {
  align-self: flex-start;
  max-width: 82%;
  padding: 8px 12px;
  background: #e9e9eb;
  color: #000000;
  border-radius: 18px;
  font-size: 1rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.sc-sms__bubble--out {
  align-self: flex-end;
  background: #0866d6;
  color: #ffffff;
}

/* --- Chat (WhatsApp, Messenger, generic) --- */

.sc-chat__head {
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: 10px 16px;
  background: #f0f2f5;
  border-bottom: 1px solid #e1e4e8;
}

.sc-chat__app {
  font-size: 0.6875rem;
  color: #54656f;
}

.sc-chat__from {
  font-size: 0.9375rem;
  font-weight: 600;
  color: #111b21;
  overflow-wrap: anywhere;
}

.sc-chat__thread {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 12px;
  background: #f4f5f7;
}

.sc-chat__bubble {
  align-self: flex-start;
  max-width: 84%;
  padding: 7px 10px;
  background: #ffffff;
  color: #111b21;
  border-radius: 10px;
  font-size: 0.9688rem;
  line-height: 1.38;
  box-shadow: 0 1px 0.5px rgba(11, 20, 26, 0.12);
  overflow-wrap: anywhere;
}

.sc-chat__bubble--out {
  align-self: flex-end;
  background: #e2f0ff;
}

.sc-mock--app-whatsapp .sc-chat__head {
  background: #f0f2f5;
}

.sc-mock--app-whatsapp .sc-chat__thread {
  background: #efeae2;
}

.sc-mock--app-whatsapp .sc-chat__stamp {
  padding: 3px 8px;
  background: #ffffff;
  border-radius: 6px;
  color: #54656f;
}

.sc-mock--app-whatsapp .sc-chat__bubble {
  border-radius: 8px;
}

.sc-mock--app-whatsapp .sc-chat__bubble--out {
  background: #d9fdd3;
}

.sc-mock--app-facebook-messenger .sc-chat__head,
.sc-mock--app-messenger .sc-chat__head {
  background: #ffffff;
}

.sc-mock--app-facebook-messenger .sc-chat__thread,
.sc-mock--app-messenger .sc-chat__thread {
  background: #ffffff;
}

.sc-mock--app-facebook-messenger .sc-chat__bubble,
.sc-mock--app-messenger .sc-chat__bubble {
  background: #f0f0f0;
  color: #050505;
  border-radius: 18px;
  box-shadow: none;
}

.sc-mock--app-facebook-messenger .sc-chat__bubble--out,
.sc-mock--app-messenger .sc-chat__bubble--out {
  background: #0866ff;
  color: #ffffff;
}

/* --- Email --- */

.sc-mail,
.sc-browser {
  border: 1px solid #d0d5dc;
  border-radius: 10px;
  overflow: hidden;
  background: #ffffff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}

.sc-mail__bar,
.sc-browser__dots {
  display: flex;
  gap: 6px;
}

.sc-mail__bar {
  padding: 9px 12px;
  background: #f1f3f5;
  border-bottom: 1px solid #e1e4e8;
}

.sc-mail__bar span,
.sc-browser__dots span {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #c9ced6;
}

.sc-mail__head {
  padding: 14px 16px 12px;
  border-bottom: 1px solid #eceef1;
}

.sc-mail__subject {
  margin-bottom: 10px !important;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.3;
  color: #111827;
}

.sc-mail__meta {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  column-gap: 10px;
  align-items: start;
}

.sc-mail__avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #6b7280;
  color: #ffffff;
  font-size: 0.9375rem;
  font-weight: 600;
}

.sc-mail__from {
  font-size: 0.9375rem;
  line-height: 1.35;
  color: #111827;
  overflow-wrap: anywhere;
}

.sc-mail__name {
  font-weight: 600;
}

.sc-mail__addr,
.sc-mail__to,
.sc-mail__date {
  font-size: 0.8125rem;
  color: #4b5563;
}

.sc-mail__to {
  margin-top: 2px !important;
  overflow-wrap: anywhere;
}

.sc-mail__date {
  grid-column: 2;
  margin-top: 2px !important;
}

@media (min-width: 560px) {
  .sc-mail__meta {
    grid-template-columns: 36px minmax(0, 1fr) auto;
  }
  .sc-mail__date {
    grid-column: 3;
    grid-row: 1;
    margin-top: 0 !important;
    white-space: nowrap;
  }
}

.sc-mail__body {
  padding: 16px;
  font-size: 0.9688rem;
  line-height: 1.55;
  color: #1f2937;
}

.sc-body .sc-mail__body p,
.sc-mail__body p {
  margin: 0 0 0.85em;
}

.sc-body .sc-mail__body p:last-child,
.sc-mail__body p:last-child {
  margin-bottom: 0;
}

/* --- Phone call --- */

.sc-call {
  max-width: 420px;
}

.sc-call__id {
  padding: 14px 18px;
  background: #1f2326;
  color: #ffffff;
  border-radius: 18px;
}

.sc-call__from {
  font-size: 1.1875rem;
  font-weight: 600;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.sc-call__meta {
  margin-top: 2px !important;
  font-size: 0.8125rem;
  color: #c7c9cc;
}

.sc-call__transcript,
.sc-body .sc-call__transcript {
  list-style: none;
  margin: 10px 0 0;
  padding: 12px 16px;
  background: #ffffff;
  border: 1px solid #e1e4e8;
  border-radius: 12px;
}

.sc-line,
.sc-body .sc-line {
  margin: 0;
  padding: 6px 0;
  font-size: 0.9688rem;
  line-height: 1.5;
  color: #1f2937;
}

.sc-line + .sc-line {
  border-top: 1px dashed #e5e7eb;
}

.sc-line__who {
  display: block;
  font-family: var(--sc-mono);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #4b5563;
}

.sc-line--you .sc-line__said {
  color: #374151;
}

.sc-line--note .sc-line__said {
  font-style: italic;
  color: #4b5563;
}

/* --- Browser: web page and pop-up --- */

.sc-browser__bar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 12px;
  background: #eef0f3;
  border-bottom: 1px solid #dfe2e6;
}

.sc-browser__url {
  flex: 1;
  min-width: 0;
  padding: 5px 12px;
  background: #ffffff;
  border-radius: 999px;
  font-size: 0.8125rem;
  color: #374151;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sc-browser__page {
  padding: 18px 18px 20px;
  font-size: 0.9688rem;
  line-height: 1.55;
  color: #1f2937;
}

.sc-body .sc-browser__page p,
.sc-browser__page p {
  margin: 0 0 0.8em;
}

.sc-body .sc-browser__page p:last-child,
.sc-browser__page p:last-child {
  margin-bottom: 0;
}

.sc-web__site {
  padding-bottom: 10px;
  margin-bottom: 12px !important;
  border-bottom: 1px solid #eceef1;
  font-size: 1.0625rem;
  font-weight: 700;
  color: #111827;
}

.sc-browser__page--behind {
  padding: 28px 14px 32px;
  background:
    repeating-linear-gradient(180deg, #e7e9ec 0 10px, transparent 10px 26px) 24px 22px / 55% 100% no-repeat,
    #f6f7f8;
}

.sc-alert {
  max-width: 400px;
  margin: 0 auto;
  padding: 18px 20px 14px;
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 4px 18px rgba(15, 23, 42, 0.22), 0 0 0 1px rgba(15, 23, 42, 0.06);
}

.sc-alert__origin {
  margin-bottom: 8px !important;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #111827;
  overflow-wrap: anywhere;
}

.sc-alert__text {
  font-size: 0.9375rem;
  line-height: 1.5;
  color: #1f2937;
}

.sc-body .sc-alert__text + .sc-alert__text,
.sc-alert__text + .sc-alert__text {
  margin-top: 0.6em !important;
}

.sc-alert__actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 14px !important;
}

.sc-alert__ok {
  display: inline-block;
  padding: 6px 18px;
  background: #1a73e8;
  color: #ffffff;
  border-radius: 999px;
  font-size: 0.875rem;
  font-weight: 600;
}

/* ==========================================================================
   Quick exit: any element with [data-safety-exit]
   ========================================================================== */

[data-safety-exit],
.sc-body a[data-safety-exit] {
  position: fixed;
  left: 16px;
  bottom: 16px;
  z-index: 9000;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 1.2rem;
  font-family: var(--sc-sans);
  font-size: 1rem;
  font-weight: 700;
  color: #ffffff;
  background: var(--sc-ink);
  border: 0;
  border-radius: 999px;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.25);
  text-decoration: none;
  cursor: pointer;
}

[data-safety-exit]:hover,
.sc-body a[data-safety-exit]:hover {
  color: #ffffff;
  background: #000000;
}

/* Keep the fixed exit button from covering the last lines of the page */
.sc-page:has([data-safety-exit]) {
  padding-bottom: 6rem;
}

/* ==========================================================================
   Print
   ========================================================================== */

@media print {
  .site-header,
  .site-footer,
  .scroll-to-top,
  .sc-crumb,
  .sc-meta__practice,
  .sc-btn,
  .sc-foot__actions,
  .sc-check__answers summary,
  [data-safety-exit] {
    display: none !important;
  }

  body {
    background: #ffffff;
  }

  .sc-head,
  .sc-mast {
    background: none;
    border: 0;
  }

  .sc-head::before,
  .sc-mast::before {
    display: none;
  }

  .sc-head__inner {
    padding: 0;
  }

  .sc-say,
  .sc-check,
  .sc-mock,
  .sc-contact {
    break-inside: avoid;
  }

  .sc-sources__list a::after {
    content: ' (' attr(href) ')';
    font-size: 0.85em;
    color: #4b5563;
  }
}

/* ==========================================================================
   Reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  .sc-row,
  .sc-row::after,
  .sc-btn,
  .sc-opt__btn {
    transition: none;
  }
}
