:root {
  --content-ink: var(--ink, #24322b);
  --content-muted: var(--muted, #657068);
  --content-paper: var(--paper, #faf6ed);
  --content-line: var(--line, rgba(36, 50, 43, .2));
  --content-accent: var(--forest, #174936);
  --content-warm: #b85d38;
}

body.content-site { overflow-x: clip; }
.content-header { display: grid; }
.content-header nav { display: flex; align-items: center; gap: 24px; }
.content-header nav a { min-height: 44px; display: inline-flex; align-items: center; font-weight: 700; text-decoration: none; }
.content-header .button { justify-self: end; }
.content-shell { width: min(980px, calc(100% - 32px)); margin-inline: auto; }
.content-footer { margin-top: 112px; padding-block: 48px 96px; border-top: 1px solid var(--content-line); display: grid; grid-template-columns: 1fr minmax(260px, 2fr) auto; align-items: start; gap: 24px; }
.content-footer p { max-width: 66ch; margin: 0; color: var(--content-muted); }
.content-footer nav { display: flex; flex-wrap: wrap; gap: 20px; }
.content-footer a { min-height: 44px; display: inline-flex; align-items: center; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; padding-block: 24px; color: var(--content-muted); font-size: 14px; }
.breadcrumbs a { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; color: var(--content-ink); }
.editorial-hero, .hub-hero { padding-block: clamp(48px, 8vw, 88px) 48px; }
.editorial-hero h1, .hub-hero h1, .not-found h1 { max-width: 14ch; margin-block: 12px 24px; color: var(--content-ink); font-size: clamp(2.6rem, 8vw, 5rem); line-height: .98; letter-spacing: -.045em; }
.editorial-hero > p:not(.section-kicker):not(.review-chip), .hub-hero > p:not(.section-kicker) { max-width: 64ch; color: var(--content-muted); font-size: clamp(1.08rem, 2.5vw, 1.35rem); line-height: 1.72; }
.section-kicker { margin: 0; color: var(--forest); font-size: .83rem; font-weight: 800; letter-spacing: .04em; }
.review-chip { display: inline-flex; max-width: 100%; margin-top: 18px; padding: 8px 12px; border: 1px solid var(--content-line); border-radius: 999px; color: var(--content-muted); font-size: 13px; }
.editorial-hero .answer-label { margin: 0 0 8px; color: var(--content-ink); font-size: .9rem; font-weight: 800; }
.guide-answer { padding-inline-start: 20px; border-inline-start: 3px solid var(--content-warm); }
.guide-layout { display: grid; gap: 64px; }
.boundary-note { padding: 22px 24px; border: 1px solid var(--content-line); border-radius: 18px 18px 18px 4px; background: rgba(250, 246, 237, .7); }
.boundary-note strong { color: var(--content-ink); }
.boundary-note p { max-width: 70ch; margin: 6px 0 0; color: var(--content-muted); }
.boundary-note a { text-underline-offset: 4px; }
.known-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.known-grid h2 { grid-column: 1 / -1; margin: 0 0 4px; }
.known-grid > div { min-height: 180px; padding: 24px; border-top: 2px solid var(--content-accent); background: rgba(250, 246, 237, .7); }
.known-grid p { margin-bottom: 0; color: var(--content-muted); }
.guide-list-section h2, .guide-steps h2, .obstacles-section h2, .roles-section h2, .question-box h2, .official-sources h2, .content-faq h2 { margin-top: 0; font-size: clamp(1.8rem, 4vw, 2.45rem); }
.guide-list-section ul, .question-box ul { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.guide-list-section li, .question-box li { position: relative; padding-inline-start: 28px; color: var(--content-muted); }
.guide-list-section li::before, .question-box li::before { position: absolute; inset-inline-start: 0; inset-block-start: .68em; width: 10px; height: 10px; border: 2px solid var(--forest); border-radius: 50%; content: ""; }
.guide-sections { display: grid; border-top: 1px solid var(--content-line); }
.guide-section { display: grid; grid-template-columns: 72px 1fr; gap: 20px; padding-block: 32px; border-bottom: 1px solid var(--content-line); }
.section-number { padding-top: 8px; color: var(--content-warm); font: 800 13px/1 monospace; }
.guide-section h3 { margin: 0 0 8px; color: var(--content-ink); font-size: 1.45rem; }
.guide-section p { max-width: 68ch; margin: 0; color: var(--content-muted); }
.obstacle-list, .role-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin: 24px 0 0; padding: 0; list-style: none; }
.obstacle-list li, .role-list li { min-height: 180px; padding: 24px; border: 1px solid var(--content-line); border-radius: 18px 18px 18px 4px; background: rgba(250, 246, 237, .58); }
.obstacle-list li { border-top: 3px solid var(--content-warm); }
.role-list li { border-top: 3px solid var(--content-accent); }
.obstacle-list strong, .role-list strong { color: var(--content-ink); font-size: 1.08rem; }
.obstacle-list p, .role-list p { margin: 10px 0 0; color: var(--content-muted); }
.professional-boundary { padding: clamp(24px, 4vw, 36px); border-inline-start: 4px solid var(--content-warm); background: rgba(184, 93, 56, .08); }
.professional-boundary strong { color: var(--content-ink); font-size: 1.15rem; }
.professional-boundary p { max-width: 68ch; margin: 8px 0 0; color: var(--content-muted); }
.guide-split { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.guide-split > section { padding: 28px; border: 1px solid var(--content-line); border-radius: 18px; background: rgba(250, 246, 237, .55); }
.professional-list { border-top-color: var(--content-warm) !important; }
.question-box { padding: clamp(28px, 6vw, 52px); color: var(--paper); background: var(--forest-dark); border-radius: 28px 28px 28px 6px; }
.question-box h2 { color: var(--paper); }
.question-box .section-kicker { color: #cbd9d1; }
.question-box li { color: #eef3ef; }
.question-box li::before { border-color: #eef3ef; }
.next-resource { display: grid; grid-template-columns: 1fr auto; gap: 28px; align-items: center; padding-block: 32px; border-block: 1px solid var(--content-line); }
.next-resource h2 { margin-bottom: 0; }
.secondary-button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: 11px 20px; border: 1px solid var(--forest); border-radius: 999px; color: var(--forest); background: transparent; font-weight: 800; text-align: center; text-decoration: none; cursor: pointer; }
.official-sources ul { display: grid; gap: 0; padding: 0; list-style: none; }
.official-sources li { padding: 18px 0; border-bottom: 1px solid var(--content-line); display: grid; gap: 5px; }
.official-sources a { width: fit-content; min-height: 44px; display: inline-flex; align-items: center; font-weight: 800; text-underline-offset: 4px; }
.official-sources span, .official-sources small, .official-sources > p { color: var(--content-muted); font-size: 13px; }
.content-faq { padding-block: 0; }
.content-faq .faq { max-width: none; }
.guide-action { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center; padding: clamp(28px, 5vw, 44px); border-radius: 28px 28px 28px 6px; color: white; background: var(--forest); }
.guide-action h2 { margin-block: 6px; color: white; font-size: clamp(1.8rem, 4vw, 2.5rem); }
.guide-action p { max-width: 52ch; margin-bottom: 0; color: #dbe8e0; }
.guide-action .section-kicker { color: #dbe8e0; }
body.courtyard-site .guide-action .button { color: var(--forest-dark); background: var(--paper); border-color: var(--paper); }
.guide-pagination { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.guide-pagination a { min-height: 112px; display: grid; align-content: center; gap: 8px; padding: 20px; border: 1px solid var(--content-line); border-radius: 14px; color: var(--content-ink); text-decoration: none; }
.guide-pagination span { color: var(--content-muted); font-size: 13px; }
.related-guides ul { display: flex; flex-wrap: wrap; gap: 12px 24px; padding: 0; list-style: none; }
.related-guides a { min-height: 44px; display: inline-flex; align-items: center; border-bottom: 1px solid var(--content-warm); color: var(--content-ink); }
.cluster-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 72px 40px; }
.journey-map { display: grid; gap: 0; counter-reset: stage; }
.journey-map .guide-cluster { position: relative; display: grid; grid-template-columns: minmax(190px, .72fr) minmax(0, 1.28fr); gap: 16px 48px; padding: 48px 0 48px 84px; border-top: 1px solid var(--content-line); }
.journey-map .guide-cluster:last-child { border-bottom: 1px solid var(--content-line); }
.journey-map .guide-cluster > span { position: absolute; inset-inline-start: 0; inset-block-start: 50px; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; color: var(--paper); background: var(--content-warm); }
.journey-map .guide-cluster > h2 { grid-column: 1; align-self: end; margin: 0; }
.journey-map .guide-cluster > p { grid-column: 1; margin: 0; color: var(--content-muted); }
.journey-map .guide-cluster > ul { grid-column: 2; grid-row: 1 / span 3; }
.guide-cluster > span { color: var(--content-warm); font: 800 13px/1 monospace; }
.guide-cluster h2 { margin-block: 10px 18px; font-size: 2rem; }
.guide-cluster ul { margin: 0; padding: 0; border-top: 1px solid var(--content-line); list-style: none; }
.guide-cluster li { border-bottom: 1px solid var(--content-line); }
.guide-cluster a { display: grid; gap: 6px; padding-block: 20px; color: var(--content-ink); text-decoration: none; }
.guide-cluster a:hover strong { color: var(--forest); }
.guide-cluster small { color: var(--content-muted); line-height: 1.55; }
.hub-action { margin-top: 88px; }
.tool-layout { padding-block: 8px 64px; }
.tool-layout .editorial-hero { padding-bottom: 36px; }
.local-tool-form { margin-top: 36px; }
.tool-options { display: grid; gap: 12px; margin-block: 24px 32px; }
.choice-card, .compare-row { display: grid; gap: 12px; padding: 18px; border: 1px solid var(--content-line); border-radius: 14px; background: rgba(250, 246, 237, .88); }
.choice-card { grid-template-columns: 26px 1fr; align-items: center; cursor: pointer; }
.choice-card:has(input:checked), .compare-row:has(input:checked) { border-color: var(--forest); box-shadow: inset 0 0 0 1px var(--forest); }
.choice-card input, .compare-row input { inline-size: 22px; block-size: 22px; accent-color: var(--forest); }
.compare-row legend { padding-inline: 8px; font-weight: 800; }
.compare-row label { min-height: 44px; display: flex; gap: 10px; align-items: center; }
.tool-result { margin-top: 40px; padding: clamp(26px, 5vw, 42px); border-inline-start: 5px solid var(--content-warm); border-radius: 4px 20px 20px 4px; background: var(--content-paper); }
.tool-result h2 { margin-top: 0; font-size: 2.2rem; }
.tool-result ul { line-height: 1.9; }
.result-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 24px; }
.text-button { min-height: 44px; padding: 8px 2px; border: 0; border-bottom: 1px solid currentColor; color: var(--forest); background: transparent; cursor: pointer; }
.privacy-page { display: grid; gap: 32px; }
.privacy-page > section:not(.guide-action), .privacy-page > aside { max-width: 74ch; }
.privacy-page section h2 { margin-bottom: 8px; font-size: 1.8rem; }
.privacy-page section p { color: var(--content-muted); }
.not-found { min-height: 62vh; display: grid; place-content: center start; padding-block: 64px; }
.not-found > p:not(.section-kicker) { color: var(--content-muted); font-size: 1.2rem; }
.tools-strip { margin-block: 88px; padding: clamp(28px, 5vw, 48px); display: grid; grid-template-columns: 1fr 1fr; gap: 40px; border: 1px solid var(--content-line); border-radius: 28px 28px 28px 6px; background: rgba(250, 246, 237, .68); }
.tools-strip h2 { margin-block: 6px; font-size: clamp(2rem, 5vw, 3.25rem); }
.tools-strip p { color: var(--content-muted); }
.tools-strip nav { display: grid; align-content: start; gap: 0; }
.tools-strip a { min-height: 52px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--content-line); color: var(--content-ink); text-decoration: none; }
.tools-strip a::after { content: "←"; color: var(--content-warm); }

@media (max-width: 799px) {
  .content-header { grid-template-columns: 1fr auto; min-height: 72px; }
  .content-header nav { display: none; }
  .content-footer { grid-template-columns: 1fr; padding-bottom: 112px; }
  .editorial-hero h1, .hub-hero h1 { max-width: 12ch; }
  .known-grid, .cluster-grid, .guide-action, .guide-pagination, .guide-split, .next-resource, .tools-strip, .obstacle-list, .role-list { grid-template-columns: 1fr; }
  .known-grid > div { min-height: 0; }
  .guide-section { grid-template-columns: 40px 1fr; }
  .guide-action .button, .next-resource .secondary-button { width: 100%; }
  .guide-pagination a { min-height: 92px; }
  .review-chip { border-radius: 14px; }
  .tools-strip { margin-block: 64px; }
  .journey-map .guide-cluster { grid-template-columns: 1fr; gap: 12px; padding: 36px 0 36px 64px; }
  .journey-map .guide-cluster > span { inset-block-start: 36px; width: 40px; height: 40px; }
  .journey-map .guide-cluster > h2, .journey-map .guide-cluster > p, .journey-map .guide-cluster > ul { grid-column: 1; grid-row: auto; }
  .journey-map .guide-cluster > ul { margin-top: 8px; }
}

@media (max-width: 680px) {
  .content-header nav { display: flex; }
}

@media (max-width: 380px) {
  .content-header .button-small { padding-inline: 14px; }
  .courtyard-brand { font-size: 18px; }
  .brand-arch { width: 28px; }
  .guide-section { grid-template-columns: 30px 1fr; gap: 10px; }
}

@media print {
  .content-header, .content-footer, .breadcrumbs, .mobile-dock, dialog, .guide-action, .result-actions, .local-tool-form > button { display: none !important; }
  body.courtyard-site { background: white; }
  body.courtyard-site::before { display: none; }
  .content-shell { width: 100%; }
  .tool-result[hidden] { display: block !important; }
}
