.l4d-document-page {
  --he-doc-ink: #18352c;
  --he-doc-muted: #5f716b;
  --he-doc-green: #315f4c;
  --he-doc-cream: #f7f4ec;
  --he-doc-line: rgba(24, 53, 44, .14);
  color: var(--he-doc-ink);
  background: #fff;
  font-family: inherit;
}
.l4d-document-page *, .l4d-document-page *::before, .l4d-document-page *::after { box-sizing: border-box; }
.he-doc-shell { width: min(980px, calc(100% - 40px)); margin-inline: auto; }
.he-doc-hero { padding: clamp(70px, 10vw, 122px) 0 clamp(50px, 7vw, 78px); background: linear-gradient(140deg, #e7efe5, var(--he-doc-cream)); }
.he-doc-kicker { margin: 0 0 14px; color: var(--he-doc-green); font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.he-doc-hero h1 { max-width: 900px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(42px, 7vw, 70px); font-weight: 500; letter-spacing: -.045em; line-height: 1.02; }
.he-doc-hero .he-doc-summary { max-width: 750px; margin: 24px 0 0; color: var(--he-doc-muted); font-size: clamp(17px, 2vw, 20px); line-height: 1.7; }
.he-doc-content { padding-block: clamp(54px, 8vw, 96px); }
.he-doc-preface { max-width: 800px; margin: 0 0 14px; color: var(--he-doc-muted); line-height: 1.7; }
.he-doc-preface + .he-doc-section, .he-doc-preface + .he-faq-category { margin-top: 34px; }
.he-doc-section { padding: 35px 0; border-bottom: 1px solid var(--he-doc-line); }
.he-doc-section:first-of-type { border-top: 1px solid var(--he-doc-line); }
.he-doc-section h2, .he-faq-category h2 { margin: 0 0 24px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(25px, 3vw, 34px); font-weight: 500; letter-spacing: -.025em; line-height: 1.2; }
.he-doc-section h3 { margin: 28px 0 10px; color: var(--he-doc-green); font-size: 17px; line-height: 1.35; }
.he-doc-section p, .he-doc-section li, .he-doc-callout p, .he-faq-answer p { color: var(--he-doc-muted); line-height: 1.75; }
.he-doc-section p { margin: 0; }
.he-doc-section p + p, .he-doc-section ul + p, .he-doc-section p + ul { margin-top: 15px; }
.he-doc-section ul { margin: 15px 0 0; padding-left: 22px; }
.he-doc-section li + li { margin-top: 8px; }
.he-doc-contents ol { columns: 2; column-gap: 48px; margin: 0; padding-left: 24px; }
.he-doc-contents li { break-inside: avoid; padding: 4px 0 4px 6px; }
.he-doc-callout { margin: 0 0 34px; padding: clamp(24px, 4vw, 36px); border-left: 4px solid #70927f; border-radius: 0 18px 18px 0; background: var(--he-doc-cream); }
.he-doc-callout p { margin: 0; }
.he-doc-callout strong { display: block; margin-bottom: 7px; color: var(--he-doc-green); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.he-faq-category { padding: 34px 0; border-bottom: 1px solid var(--he-doc-line); }
.he-faq-item { border-top: 1px solid var(--he-doc-line); }
.he-faq-item:last-child { border-bottom: 1px solid var(--he-doc-line); }
.he-faq-item summary { position: relative; padding: 22px 52px 22px 0; cursor: pointer; list-style: none; font-weight: 750; line-height: 1.45; }
.he-faq-item summary::-webkit-details-marker { display: none; }
.he-faq-item summary span::before, .he-faq-item summary span::after { content: ""; position: absolute; right: 10px; top: 50%; width: 16px; height: 2px; background: var(--he-doc-green); transition: transform .2s ease; }
.he-faq-item summary span::after { transform: rotate(90deg); }
.he-faq-item[open] summary span::after { transform: rotate(0); }
.he-faq-answer { padding: 0 52px 23px 0; }
.he-faq-answer p { margin: 0; }
.he-faq-answer p + p { margin-top: 12px; }
@media (max-width: 700px) {
  .he-doc-shell { width: min(100% - 28px, 980px); }
  .he-doc-section { padding: 28px 0; }
  .he-doc-callout { border-radius: 0 14px 14px 0; }
  .he-doc-contents ol { columns: 1; }
  .he-faq-answer { padding-right: 15px; }
}

/* Shared responsive guardrails: contain unpredictable CMS content. */
.l4d-document-page { min-width:0; max-width:100%; overflow-wrap:anywhere; }
.l4d-document-page :where(img,video,canvas,iframe) { max-width:100%; }
.l4d-document-page :where(input,select,textarea) { max-width:100%; }
