/* Compatibility adapter for public templates that retain source-bound prose. */
.fr-section-head--light { border-color: var(--fr-paper); }
.fr-section-head__number--signal { color: var(--fr-signal); }
.fr-section-head__light-copy { color: #bfc2b1; }
.fr-index-link--light { color: var(--fr-paper); border-color: var(--fr-paper); }
.fr-feature-link { margin-top: 2rem; }
.fr-source-row > * { min-width: 0; }
.fr-source-row__title,
.fr-source-row__summary,
.fr-source-row__date { overflow-wrap: anywhere; word-break: break-word; }
.public-shell .section,
.public-shell .page-head,
.public-shell .record-head,
.public-shell .article-hero {
  width: min(calc(100% - (2 * var(--fr-gutter))), var(--fr-container));
  margin-inline: auto;
}
.public-shell .section { padding-block: clamp(3.5rem, 7vw, 7rem); }
.public-shell .page-head,
.public-shell .record-head {
  position: relative;
  overflow: hidden;
  padding-block: clamp(4rem, 8vw, 7rem) 3.5rem;
  border-bottom: 2px solid var(--fr-ink);
}
.public-shell .page-head::after,
.public-shell .record-head::after {
  content: "FR";
  position: absolute;
  right: 0;
  bottom: -2rem;
  color: rgba(19,36,28,.06);
  font-family: var(--fr-font-display);
  font-size: min(25vw, 320px);
  line-height: .75;
  pointer-events: none;
}
.public-shell .page-head > *,
.public-shell .record-head > * { position: relative; z-index: 1; }
.public-shell .page-head h1,
.public-shell .record-head h1,
.public-shell .article-hero h1 {
  max-width: 980px;
  margin: .65rem 0 1.4rem;
  color: var(--fr-ink);
  font-size: clamp(3.2rem, 7vw, 7rem);
}
.public-shell .page-head > p:last-child,
.public-shell .record-head > div > p:last-child { max-width: 760px; color: var(--fr-muted); font-family: var(--fr-font-reading); font-size: 1.2rem; }
.public-shell .article-hero {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .36fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items: end;
  max-width: none;
  padding: clamp(4rem, 8vw, 8rem) var(--fr-gutter) 3.5rem;
  border-bottom: 2px solid var(--fr-ink);
  background: var(--fr-paper);
}
.public-shell .article-hero::before {
  content: "DG";
  position: absolute;
  right: 2vw;
  bottom: -1rem;
  color: rgba(19,36,28,.06);
  font-family: var(--fr-font-display);
  font-size: min(25vw, 330px);
  line-height: .75;
}
.public-shell .article-hero > * { position: relative; z-index: 1; }
.public-shell .article-hero > div { width: min(100%, 960px); margin-left: max(0px, calc((100vw - var(--fr-container)) / 2)); }
.public-shell .official-source-card .meta,
.public-shell .official-source-card .citation,
.public-shell .official-source-card .title,
.public-shell .official-source-card .title a { overflow-wrap: anywhere; word-break: break-word; }
.public-shell .article-hero .lead { max-width: 760px; color: var(--fr-muted); font-family: var(--fr-font-reading); font-size: clamp(1.15rem, 1.6vw, 1.45rem); line-height: 1.55; }
.public-shell .hero-note {
  display: grid;
  gap: .75rem;
  align-self: end;
  width: min(100%, 360px);
  padding: 0;
  color: var(--fr-ink);
  background: var(--fr-paper-2);
  border: 2px solid var(--fr-ink);
  border-radius: 0;
  box-shadow: 9px 9px 0 var(--fr-signal);
}
.public-shell .hero-note strong { padding: 1rem; color: var(--fr-paper); background: var(--fr-ink); font-family: var(--fr-font-reading); font-size: 1.25rem; }
.public-shell .hero-note span { padding-inline: 1rem; font-family: var(--fr-font-mono); font-size: .72rem; }
.public-shell .hero-note span:last-child { padding-bottom: 1rem; }
.public-shell .prose code,
.public-shell code { max-width: 100%; overflow-wrap: anywhere; word-break: break-word; }
.public-shell .prose { max-width: var(--fr-reading); font-family: var(--fr-font-reading); font-size: 1.08rem; line-height: 1.78; }
.public-shell .prose h2 {
  margin: 3.7rem 0 1.25rem;
  padding-top: 1.2rem;
  border-top: 7px solid var(--fr-ink);
  color: var(--fr-ink);
  font-family: var(--fr-font-reading);
  font-size: clamp(2rem, 4vw, 3.45rem);
  line-height: 1.04;
  letter-spacing: -.03em;
  text-transform: none;
}
.public-shell .prose h2::before { content: "SECTION"; display: block; margin-bottom: .65rem; color: var(--fr-rust); font-family: var(--fr-font-mono); font-size: .67rem; letter-spacing: .12em; }
.public-shell .prose h3 { margin-top: 2.5rem; font-family: var(--fr-font-reading); }
.public-shell .prose p,
.public-shell .prose li { color: var(--fr-ink); }
.public-shell .prose a { color: var(--fr-rust-dark); font-weight: 700; }
.public-shell .prose blockquote { margin: 2.8rem 0; padding: 2rem; color: var(--fr-paper); background: var(--fr-rust); border: 2px solid var(--fr-ink); border-radius: 0; box-shadow: var(--fr-shadow-ink); }
.public-shell .verification-panel {
  max-width: var(--fr-container);
  color: var(--fr-paper);
  background: var(--fr-ink);
  border: 0;
  border-left: 12px solid var(--fr-rust);
  border-radius: 0;
  padding: clamp(2rem, 4vw, 4rem);
}
.public-shell .verification-panel h2 { margin-top: 0; color: var(--fr-paper); font-family: var(--fr-font-display); font-size: clamp(2rem, 4vw, 4rem); text-transform: uppercase; }
.public-shell .verification-panel dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 1.5rem 0; }
.public-shell .verification-panel dl > div { padding: 1rem; border: 1px solid rgba(244,236,217,.3); color: var(--fr-paper); background: transparent; border-radius: 0; }
.public-shell .verification-panel dt { color: var(--fr-signal); font-family: var(--fr-font-condensed); font-size: .62rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.public-shell .verification-panel dd { margin: .35rem 0 0; color: var(--fr-paper); font-size: .85rem; }
.public-shell .scope-note,
.public-shell .local-escalation,
.public-shell .neutral-state {
  color: var(--fr-paper);
  background: var(--fr-ink);
  border: 0;
  border-left: 12px solid var(--fr-rust);
  border-radius: 0;
  box-shadow: 9px 9px 0 var(--fr-signal);
}
.public-shell .scope-note h2,
.public-shell .scope-note h3,
.public-shell .local-escalation h2,
.public-shell .neutral-state h1,
.public-shell .neutral-state h2 { color: var(--fr-paper); }
.public-shell .scope-note p,
.public-shell .scope-note li,
.public-shell .local-escalation p,
.public-shell .neutral-state p { color: var(--fr-paper); }
.public-shell .citation-list article,
.public-shell .correction-form {
  border: 2px solid var(--fr-ink);
  border-radius: 0;
  background: var(--fr-paper-2);
  box-shadow: 5px 5px 0 var(--fr-canvas);
}
.public-shell .citation-list article { padding: 1.2rem; }
.public-shell .citation-list a { color: var(--fr-rust-dark); font-family: var(--fr-font-condensed); font-size: .7rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.public-shell .status-badge { border-radius: 0; font-family: var(--fr-font-condensed); }
.public-shell .button { min-height: 46px; border-radius: 0; border: 2px solid var(--fr-ink); font-family: var(--fr-font-condensed); font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.public-shell .button.primary { color: var(--fr-ink); background: var(--fr-signal); }
.public-shell .button.secondary { color: var(--fr-ink); background: transparent; }
.public-shell .filter-form select,
.public-shell .field input,
.public-shell .field textarea { border-radius: 0; border: 2px solid var(--fr-ink); background: var(--fr-paper-2); }
.public-shell .form-errors { border-radius: 0; border: 2px solid var(--fr-rust); background: #f1d3ca; }
.public-shell .activity-list { border-top: 2px solid var(--fr-ink); }
.public-shell .activity-list a { min-height: 92px; padding: 1.2rem 0; border-bottom: 1px solid var(--fr-ink); font-family: var(--fr-font-reading); }
.public-shell .activity-list a span:last-child { font-family: var(--fr-font-condensed); font-size: .7rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.public-shell .neutral-state { margin-block: 2rem; padding: clamp(2rem, 5vw, 5rem); }

@media (max-width: 900px) {
  .public-shell .article-hero { grid-template-columns: minmax(0, 1fr); }
  .public-shell .article-hero > div,
  .public-shell .article-hero .hero-note { min-width: 0; max-width: 100%; margin-left: 0; }
  .public-shell .article-hero h1 { overflow-wrap: anywhere; }
  .public-shell .hero-note { width: min(100%, 520px); }
}
@media (max-width: 580px) {
  .public-shell .section { padding-block: 3.8rem; }
  .public-shell .page-head h1,
  .public-shell .record-head h1,
  .public-shell .article-hero h1 { font-size: clamp(3rem, 15vw, 5rem); }
  .public-shell .verification-panel dl { grid-template-columns: 1fr; }
  .public-shell .citation-list article { grid-template-columns: 1fr; }
}
@media print {
  .public-shell .page-head,
  .public-shell .record-head,
  .public-shell .article-hero { width: 100%; padding: 10mm 0; background: #fff; border: 2px solid #000; }
  .public-shell .article-hero > div { margin-left: 0; }
  .public-shell .hero-note,
  .public-shell .verification-panel,
  .public-shell .scope-note,
  .public-shell .local-escalation,
  .public-shell .neutral-state { color: #000 !important; background: #fff !important; border: 1.5px solid #000 !important; box-shadow: none !important; }
  .public-shell .verification-panel h2,
  .public-shell .verification-panel dt,
  .public-shell .verification-panel dd,
  .public-shell .scope-note h2,
  .public-shell .scope-note h3,
  .public-shell .scope-note p,
  .public-shell .scope-note li,
  .public-shell .local-escalation h2,
  .public-shell .local-escalation p { color: #000 !important; }
}
