.resource-library h1 { max-width: 22ch; font-size: clamp(2.3rem, 4.6vw, 4.2rem); line-height: 1.08; margin-block: 1rem 1.5rem; }
.resource-library h2 { font-size: clamp(1.5rem, 2.5vw, 2.3rem); line-height: 1.2; }
.resource-library h3 { font-size: 1.2rem; line-height: 1.35; }
.resource-library h1, .resource-library h2, .resource-library h3, .resource-library .c-hero__lede { color: var(--color-primary); }
.resource-library .c-eyebrow { color: var(--color-signature-text); }
.resource-library .guide-sidebar h2 { font-size: 1.1rem; }
.resource-library .guide-author h2 { font-size: 1.25rem; }
.resource-library p { line-height: 1.7; }
.resource-library [id] { scroll-margin-top: 130px; }
.resource-review { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; padding: 1rem max(5vw, 1.2rem); background: var(--color-primary); color: #fff; font-size: .85rem; }
.resource-review a { color: #fff; text-underline-offset: .2em; margin-left: auto; }
.resource-index { padding-block: 3rem 6rem; }
.resource-index > section + section { margin-top: 5rem; }
.resource-topics, .resource-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; margin-top: 1.6rem; }
.resource-card { position: relative; padding: 1.6rem; border: 1px solid var(--rim-soft); border-radius: 14px; background: var(--surface-elevated); }
.resource-topic { display: grid; grid-template-columns: 1fr auto; gap: .4rem 1rem; padding: 1rem 0; border-bottom: 1px solid var(--rim-soft); text-decoration: none; color: var(--color-primary); transition: border-color .2s, box-shadow .2s; }
.resource-topic:hover, .resource-card:focus-within { border-color: var(--color-primary); box-shadow: 0 8px 24px rgb(0 0 0 / .06); }
.resource-topic p { grid-column: 1; margin: 0; }
.resource-topic > span { grid-column: 2; grid-row: 1 / 3; align-self: center; }
.resource-entry { display: flex; flex-wrap: wrap; gap: 1rem 2rem; }
.resource-card-link::after { content: ''; position: absolute; inset: 0; border-radius: 14px; }
.resource-card:has(.resource-card-link:focus-visible) { outline: 3px solid var(--color-primary); outline-offset: 4px; }
.resource-card h3 a { color: var(--color-primary); text-underline-offset: .2em; }
.resource-card p { margin-block: 1rem; }
.resource-card .p-text-link { font-size: .85rem; }
.resource-cluster-heading, .resource-start { display: flex; justify-content: space-between; align-items: center; gap: 2rem; }
.resource-cluster-heading > div { max-width: 42rem; }
.resource-cluster-heading .c-btn { flex-shrink: 0; max-width: 22rem; white-space: normal; text-align: center; }
.resource-start { padding: 2rem; border-block: 1px solid var(--rim-soft); }
.resource-start > div { flex: 1; }
.resource-start a { display: block; margin-block: 1rem; text-underline-offset: .2em; }
.resource-article-hero { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 4rem; align-items: center; }
.resource-route { border-left: 1px solid var(--rim-soft); padding-left: 2rem; }
.resource-route p { font-weight: 600; margin-top: 1rem; }
.resource-reading-layout .guide-sidebar { grid-column: 1; grid-row: 1; }
.resource-reading-layout .guide-copy { grid-column: 2; }
.guide-sidebar:has(.resource-contact) { position: sticky; top: 120px; max-height: calc(100dvh - 144px); overflow-y: auto; gap: 0; }
.resource-contact { margin-top: 40px; }
.resource-contact > summary { cursor: pointer; color: var(--color-primary); font-weight: 600; padding: .75rem 0; }
.resource-contact[open] > summary { display: none; }
.resource-contact > .guide-inquiry { padding: 32px; }
.resource-side-search { margin-top: 1rem; color: var(--color-primary); }
.resource-side-search summary { cursor: pointer; padding-block: .5rem; font-weight: 600; }
.resource-search { display: grid; grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1.5rem; }
.resource-search label { display: grid; gap: .5rem; font-weight: 600; color: var(--color-primary); }
.resource-search input, .resource-search select { width: 100%; min-width: 0; padding: .8rem; border: 1px solid var(--rim-soft); border-radius: 8px; background: #fff; color: var(--color-primary); font: inherit; }
.resource-search-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
.resource-search button[type="reset"] { border: 0; background: transparent; color: var(--color-primary); font: inherit; text-decoration: underline; text-underline-offset: .2em; padding: .8rem; cursor: pointer; }
.resource-side-search .resource-search { grid-template-columns: minmax(0, 1fr); margin-top: .75rem; }
.resource-finder { padding: 2rem; border: 1px solid var(--rim-soft); border-radius: 16px; background: var(--surface-elevated); }
.resource-finder [role="status"] { margin-top: 1rem; }
.resource-library [data-resource-item][hidden], .resource-library [data-resource-group][hidden] { display: none; }
.resource-cta-card { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: clamp(2rem, 4vw, 3.5rem); border: 1px solid var(--rim-soft); border-radius: 20px; background: linear-gradient(115deg, var(--surface-elevated), var(--color-background)); box-shadow: 0 16px 48px rgb(27 46 64 / .06); }
.resource-cta-card > div { max-width: 42rem; }
.resource-cta-card p { margin-top: 1rem; }
.resource-cta-card .c-btn { flex-shrink: 0; }
.resource-library .resource-closing { color: var(--color-primary); background: transparent; text-align: left; }
.resource-closing .resource-cta-card { --ring: var(--color-primary); }
.resource-closing h2, .resource-closing p { margin-inline: 0; }
.resource-figure { margin: 2rem 0; padding-block: 1.5rem; border-block: 1px solid var(--rim-soft); }
.resource-figure__steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; padding-left: 1.3rem; margin-block: 1.5rem; }
.resource-figure__steps li { padding: .75rem; background: var(--surface-elevated); }
.resource-figure h4 { font-size: 1rem; line-height: 1.4; }
.resource-figure__steps p { margin-top: .5rem; }
.resource-figure__boundary { padding-left: 1rem; border-left: 3px solid var(--color-signature-text); }
.resource-back { display: block; margin-top: 1rem; }
.resource-sources { border-top: 1px solid var(--rim-soft); padding-top: 2rem; }
.resource-sources li { margin-block: 1.2rem; }
.resource-sources li p { font-size: .88rem; margin-top: .3rem; }
.resource-related li { margin-block: 1rem; }
.resource-workspace { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 3rem; padding-block: 3rem; align-items: start; }
.resource-workspace fieldset { border: 0; padding: 0; margin: 2rem 0; min-width: 0; }
.resource-workspace legend { font-weight: 600; font-size: 1.2rem; margin-bottom: 1rem; }
.worksheet-option { display: flex; gap: .8rem; align-items: flex-start; padding: 1rem; margin-block: .6rem; border: 1px solid var(--rim-soft); border-radius: 10px; cursor: pointer; }
.worksheet-option:has(input:checked) { border-color: var(--color-primary); background: var(--surface-elevated); }
.worksheet-option input { flex: 0 0 auto; width: 1.1rem; height: 1.1rem; margin-top: .2rem; accent-color: var(--color-primary); }
.worksheet-option span { line-height: 1.5; }
.worksheet-output { position: sticky; top: 120px; max-height: calc(100dvh - 145px); overflow-y: auto; border: 1px solid var(--rim-soft); border-radius: 16px; padding: 2rem; background: var(--surface-elevated); }
.worksheet-output h2 { margin-block: 1rem; }
.worksheet-output ol { padding-left: 1.2rem; }
.worksheet-output li { margin-block: 1.3rem; }
.worksheet-output li p { margin-top: .5rem; }
.worksheet-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.5rem; }
.worksheet-actions button, .worksheet-reset { padding: .8rem 1rem; border: 1px solid var(--rim-soft); border-radius: 8px; color: var(--color-primary); background: var(--color-background); cursor: pointer; font: inherit; }
.worksheet-reset { margin: 1rem 0 0 .5rem; }
.worksheet-output textarea { display: block; width: 100%; margin-top: .8rem; font: inherit; }
.resource-tool-reading { padding-block: 1rem 5rem; }
.resource-library :focus-visible { outline: 3px solid var(--color-primary); outline-offset: 4px; }
.resource-review :focus-visible { outline-color: #fff; }
@media (max-width: 1000px) {
  .resource-cluster-heading { align-items: flex-start; flex-direction: column; }
  .resource-topics, .resource-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .resource-article-hero { gap: 2rem; }
}
@media (max-width: 900px) {
  .resource-reading-layout .guide-sidebar, .resource-reading-layout .guide-copy { grid-column: 1; grid-row: auto; }
  .guide-sidebar:has(.resource-contact) { position: static; max-height: none; overflow: visible; }
  .resource-contact[open] > summary { display: list-item; }
  .resource-cta-card { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 760px) {
  .resource-article-hero, .resource-workspace { grid-template-columns: 1fr; }
  .resource-route { border-left: 0; border-top: 1px solid var(--rim-soft); padding: 1.5rem 0 0; }
  .resource-start { flex-direction: column; align-items: stretch; padding-inline: 0; }
  .resource-review a { margin-left: 0; }
  .worksheet-output { position: static; max-height: none; overflow: visible; padding: 1.5rem; }
  .resource-figure__steps { grid-template-columns: 1fr; }
}
@media (max-width: 540px) {
  .resource-topics, .resource-cards { grid-template-columns: 1fr; }
  .resource-library h1 { font-size: 2.3rem; }
  .resource-search { grid-template-columns: minmax(0, 1fr); }
  .resource-finder { padding: 1.5rem; }
}
@media (max-height: 700px) { .worksheet-output { position: static; max-height: none; overflow: visible; } }
@media (prefers-reduced-motion: reduce) { .resource-topic { transition: none; } }
@media print {
  body > header, body > footer, .c-header, .c-footer, .resource-review a, .resource-article .service-breadcrumb, .resource-article .p-intro .p-text-link, .resource-route, .resource-reading-layout .guide-sidebar, .resource-contact, .resource-side-search, .resource-finder, .resource-closing { display: none !important; }
  .resource-worksheet .resource-review, .resource-worksheet .p-intro, .resource-workspace > div, .resource-tool-reading, .worksheet-actions, [data-copy-fallback], [data-worksheet-status] { display: none !important; }
  .resource-review { display: block; padding: 0; color: #000; background: #fff; }
  .resource-review strong { display: block; }
  .resource-article-hero, .resource-reading-layout { display: block; }
  .resource-article .p-intro { padding-block: 1rem; }
  .resource-reading-layout { padding-block: 1rem; }
  .resource-reading-layout .guide-copy { max-width: none; }
  .resource-figure__steps { display: block; }
  .resource-figure__steps li { margin-block: .75rem; break-inside: avoid; }
  .resource-workspace { display: block; padding: 0; }
  .worksheet-output { position: static; max-height: none; overflow: visible; border: 0; padding: 0; color: #000; background: #fff; }
  .worksheet-output li { break-inside: avoid; }
  .worksheet-output [hidden] { display: none !important; }
}

.worksheet-dialog { width:min(680px,calc(100% - 32px)); max-height:calc(100dvh - 48px); overflow:auto; border:1px solid var(--rim-soft); border-radius:20px; padding:clamp(24px,4vw,32px); color:var(--color-primary); background:var(--surface-elevated); box-shadow:0 24px 80px #142b3e40; }
.worksheet-dialog::backdrop { background:#132b3eb8; backdrop-filter:blur(5px); }
.worksheet-modal-open { overflow:hidden; }
.worksheet-dialog h2 { font-size:clamp(1.6rem,3vw,2.2rem); margin:12px 24px 16px 0; }
.worksheet-dialog-close { position:absolute; right:16px; top:12px; width:44px; height:44px; border:0; border-radius:50%; background:transparent; color:inherit; font-size:28px; cursor:pointer; }
.worksheet-dialog-review { margin:20px 0; padding:16px; border:1px solid var(--rim-soft); border-radius:12px; }
.worksheet-dialog-review summary { cursor:pointer; font-weight:700; }
.worksheet-dialog-review pre { white-space:pre-wrap; font:inherit; font-size:.9rem; }
.worksheet-contact-fields { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.worksheet-contact-fields label:last-child { grid-column:1/-1; }
.worksheet-call { display:flex; align-items:center; gap:24px; margin-top:28px; padding-top:24px; border-top:1px solid var(--rim-soft); }
.worksheet-call img { flex-shrink:0; background:white; }
.worksheet-call p { margin:8px 0; }
.worksheet-actions { flex-wrap:wrap; }
@media(max-width:540px) { .worksheet-contact-fields { grid-template-columns:1fr; } .worksheet-call { gap:16px; } .worksheet-call img { width:88px; height:88px; } }
@media print { .worksheet-dialog { display:none; } }

.worksheet-dialog .c-form input, .worksheet-dialog .c-form textarea { background:#fff; color:var(--color-primary); border:1px solid var(--rim-soft); border-radius:8px; padding:12px; }
.worksheet-dialog .c-form label { font-size:14px; gap:8px; }
.worksheet-dialog .c-form__hint, .worksheet-dialog .c-form__hint a { color:var(--color-primary); font-size:12px; line-height:1.5; }
.worksheet-dialog .c-form { gap:14px; }
.worksheet-dialog .c-form > p { margin:0; }
.worksheet-dialog .c-form textarea { min-height:88px; }
.worksheet-dialog .c-form > p:not(.c-form__hint) { font-size:14px; }
.worksheet-dialog :focus-visible { outline:2px solid var(--color-primary); outline-offset:3px; }
