/* Shared publication pages;
   scoped to preserve the existing contact page. */
.publication-page {
  --ink:#203b30;
  --muted:#52665b;
  --paper:#faf8f2;
  --rule:#dcded3;
  background:var(--paper);
  color:var(--ink)}

.publication-page a:focus-visible,.publication-page summary:focus-visible {
  outline:3px solid #9b7026;
  outline-offset:5px;
  border-radius:3px}

.skip-link {
  position:fixed;
  top:-100px;
  left:16px;
  padding:12px 20px;
  background:#fff;
  z-index:200}
.skip-link:focus {
  top:10px}

.publication-header {
  background:#18372a;
  border-bottom:1px solid #c9a84c55}
.publication-header-inner {
  max-width:1180px;
  margin:auto;
  padding:22px 32px;
  display:flex;
  align-items:center;
  gap:36px}
.publication-header .legal-brand-name {
  font-size:1.55rem}
.publication-header nav {
  display:flex;
  gap:25px;
  margin-left:auto;
  flex-wrap:wrap}
.publication-header nav a {
  color:#dce5dd;
  font-size:.85rem;
  padding:8px 0}
.publication-header nav a[aria-current] {
  color:#ecd087;
  border-bottom:1px solid #ecd087}
.back-to-stories {
  color:#ecd087;
  font-size:.85rem;
  border:1px solid #c9a84c77;
  border-radius:5px;
  padding:9px 15px}

.publication-main {
  max-width:1120px;
  margin:auto;
  padding:0 32px}
.publication-hero {
  padding:65px 0 40px;
  border-bottom:1px solid var(--rule)}
.eyebrow {
  font-family:var(--font-body);
  font-size:.67rem;
  font-weight:700;
  letter-spacing:.13em;
  color:#726130}
.publication-hero h1 {
  font-family:var(--font-display);
  font-size:clamp(2.8rem,6vw,4.7rem);
  font-weight:600;
  line-height:1.1;
  margin:15px 0}
.publication-subtitle {
  font-size:1.07rem;
  color:var(--muted);
  max-width:540px}
.publication-date {
  font-size:.76rem;
  color:var(--muted);
  margin-top:22px}
.publication-layout {
  display:grid;
  grid-template-columns:245px minmax(0,1fr);
  gap:60px;
  padding:40px 0 64px}
.publication-toc {
  align-self:start;
  position:sticky;
  top:28px}
.publication-toc ol {
  list-style:none;
  padding:0;
  margin-top:16px;
  display:grid;
  gap:13px}
.publication-toc a {
  font-size:.79rem;
  line-height:1.55;
  color:var(--muted);
  display:block}
.publication-toc a:hover {
  color:#835f18;
  text-decoration:underline}
.toc-contact {
  border-top:1px solid var(--rule);
  padding-top:22px;
  margin-top:25px}
.publication-summary {
  border-left:3px solid #b9994c;
  background:#f0eee4;
  padding:22px 27px;
  margin-bottom:40px}
.publication-summary p {
  font-family:var(--font-display);
  font-size:1.5rem;
  line-height:1.45;
  margin-top:8px}

.publication-content {
  min-width:0}
.publication-content .legal-section {
  scroll-margin-top:24px;
  border-top:1px solid var(--rule);
  padding:30px 0 10px;
  margin-top:20px}
.publication-content .legal-section:first-of-type {
  border:0;
  padding-top:0}
.section-number {
  display:block;
  font-size:.68rem;
  color:#807040;
  letter-spacing:.1em;
  margin-bottom:8px}
.publication-content .legal-section h2 {
  display:block;
  border:0;
  padding:0;
  font-size:1.9rem;
  line-height:1.2;
  margin-bottom:18px;
  font-weight:600}
.publication-content .legal-section h3 {
  font-size:1rem;
  margin:22px 0 8px}
.publication-content .legal-section p,.publication-content .legal-section li {
  font-size:.97rem;
  line-height:1.85;
  color:var(--ink)}
.publication-content .legal-section p {
  margin-bottom:15px}
.publication-content .legal-section a:not(.series-grid a) {
  text-decoration:underline;
  text-decoration-color:#b59d64;
  text-underline-offset:3px;
  overflow-wrap:anywhere}
.publication-content .legal-section ul {
  gap:8px;
  margin-bottom:18px}

.series-grid {
  display:grid;
  gap:14px}
.series-grid>a {
  display:block;
  padding:24px;
  background:#f0f1e9;
  border:1px solid #dcded3;
  border-radius:5px;
  transition:border-color .2s,background .2s}
.series-grid>a:hover {
  background:#e9ede2;
  border-color:#aaa16e}
.publication-content .series-grid h3 {
  font-family:var(--font-display);
  font-size:1.65rem;
  margin:7px 0}
.publication-content .series-grid p {
  margin-bottom:12px}
.series-link {
  font-size:.8rem;
  font-weight:600;
  color:#375f49}
.optional-details {
  border:1px solid var(--rule);
  border-radius:6px;
  background:#f1f2eb}
.optional-details summary {
  cursor:pointer;
  padding:18px 20px;
  font-size:.9rem;
  font-weight:600}
.optional-details>div {
  padding:0 20px 10px}
.optional-details[open] summary {
  border-bottom:1px solid var(--rule);
  margin-bottom:18px}
.publication-end {
  margin-top:40px;
  border-top:1px solid var(--rule);
  padding-top:30px;
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  align-items:center}
.publication-end p {
  font-family:var(--font-display);
  font-size:1.6rem;
  width:100%}
.publication-end a {
  font-size:.83rem;
  color:#365e45}
.publication-end .top-link {
  margin-left:auto}
.publication-footer {
  background:#18372a;
  color:#dce5dd;
  padding:38px max(32px,calc((100vw - 1056px)/2));
  display:flex;
  justify-content:space-between;
  gap:25px;
  align-items:center}
.publication-footer p {
  font-size:.73rem;
  margin-top:8px}
.publication-footer nav {
  display:flex;
  gap:20px;
  flex-wrap:wrap}
.publication-footer nav a {
  font-size:.8rem}
.publication-footer a:hover {
  text-decoration:underline}

@media(max-width:800px) {
  .publication-header-inner {
  padding:18px 22px;
  gap:18px;
  flex-wrap:wrap}
.publication-header nav {
  order:3;
  width:100%;
  margin:0;
  gap:25px}
.back-to-stories {
  margin-left:auto}
.publication-main {
  padding:0 22px}
.publication-hero {
  padding:38px 0 28px}
.publication-layout {
  grid-template-columns:1fr;
  gap:30px;
  padding-top:25px}
.publication-toc {
  position:static;
  border-bottom:1px solid var(--rule);
  padding-bottom:24px}
.publication-toc ol {
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:20px;
  row-gap:10px}
.toc-contact {
  display:none!important}
.publication-footer {
  padding:30px 22px;
  align-items:flex-start;
  flex-direction:column}
.publication-summary {
  padding:20px}
.publication-content .legal-section h2 {
  font-size:1.75rem}
}

@media(max-width:380px) {
  .publication-header-inner {
  padding:16px}
.publication-header .legal-brand-name {
  font-size:1.2rem}
.back-to-stories {
  font-size:.73rem;
  padding:8px}
.publication-main {
  padding:0 17px}
.publication-toc ol {
  grid-template-columns:1fr}
.publication-header nav {
  justify-content:space-between;
  gap:10px}
.publication-summary p {
  font-size:1.3rem}
}

@media(prefers-reduced-motion:reduce) {
  html {
  scroll-behavior:auto}
.publication-page * {
  transition:none!important}
}

